ActivityPub §4.1 Actor Objects:
Actor objects MUST have... the following properties: inbox... outbox...
This is a Test Case describing a rule to determine whether an ActivityPub Object is in partial conformance with the following behaviors required by ActivityPub.
The identifier of this test is urn:uuid:acaacb5f-8f7e-4f28-8d81-c7955070a767.
The subject of this test is any data claiming to conform to the specification of an ActivityPub Actor Object.
This test is not directly applicable to an ActivityPub Server. An ActivityPub Server serves 0 or more Actor Objects. An ActivityPub Server for a big community might serve hundreds of ActivityPub Actor Objects. An ActivityPub Server for a single human may serve only that person's ActivityPub Actor Object.
This test applies to Actor Objects, but not all Actor Object are addressable by an HTTPS URL. The URI that addresses an Actor Object is not the same as the Actor Object. A given URL may resolve to different Actor Objects in different contexts, and a given Actor Object may not be universally addressable across context by any one URL.
This test requires the following inputs:
actor - the actor object that should be tested
inapplicable.This test applies directly to the actor input.
If actor is not an Actor Object, the outcome MUST be inapplicable.
If actor JSON does not have a type property, the outcome MUST be inapplicable.
inbox - the inbox property (or lack thereof) in the input actor JSON objectoutbox - the outbox property (or lack thereof) in the input actor JSON objectactor JSON has a property whose name is inbox.
inbox property, the outcome is failed for test target inboxactor JSON has a property whose name is outbox
outbox property, the outcome is failed for test target outboxFor the purposes of determining whether the input actor is in fact an actor object and whether this test is applicable to that input,
this test assumes that a valid way of determining whether the input is an Actor Object is:
type propertytype property value that is either a string or array of stringstype value strings is one of Application, Group, Organization, Person, Service
The Activity Vocabulary provides the normative definition of five specific types of Actors: Application | Group | Organization | Person | Service.
This test does not assert any expectations about the values of these required properties. The requirement being tested only requires that they are present.
For test cases about the values of these properties, see:
These are test cases for this test case, and can be used to verify that an implementation of this test case specification will be consistent with other implementations.
inputs
actor
{
"type": "Person",
"inbox": "https://bengo.is/inbox",
"outbox": "https://bengo.is/outbox"
}
test targets
inbox: present
passedoutbox: present
passedinputs
actor
{
"type": "Person",
"outbox": "https://bengo.is/outbox"
}
test targets
inbox: not present
failedoutbox: present
passedinputs
actor
{
"type": "Person",
"inbox": "https://bengo.is/inbox",
}
test targets
inbox: present
passedoutbox: not present
failedinputs
actor
{
"type": "Person"
}
test targets
inbox: not present
failedoutbox: not present
failedinputs
actor
abc
test targets
inbox: not present
inapplicableoutbox: not present
inapplicableinputs
actor
{}
test targets
inbox: not present
inapplicable
outbox: not present
inapplicable
inputs
actor
{
"type": "Person"
}
test targets
inbox: not present
failed
outbox: not present
failed
inbox but no typeinputs
actor
{
"inbox": "https://bengo.is/inbox"
}
test targets
inbox: present
inapplicable
type property indicating this is an Actor Object.outbox: not present
inapplicable
type property indicating this is an Actor Object.outcomeAn outcome is a conclusion that comes from evaluating a test on a test subject. An outcome can be one of the three following types:
inapplicable: No part of the test subject matches the applicabilitypassed: A test target meets all expectationsfailed: A test target does not meet all expectationsActivityPub requirement cc3f730a-37a9-4af9-948f-7c8a0b7f6c41 - actor objects must have an inbox property
inbox has outcome passed, requirement is satisfiedinbox has outcome failed, requirement is not satisfiedinbox has outcome inapplicable, further testing is needed to determine requirement satisfactionActivityPub requirement b8647b47-defb-483c-b468-8602d1124169 - actor objects must have an outbox property
outbox
outbox has outcome passed, requirement is satisfiedoutbox has outcome failed, requirement is not satisfiedoutbox has outcome inapplicable, further testing is needed to determine requirement satisfaction