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 inbox
actor
JSON has a property whose name is outbox
outbox
property, the outcome is failed
for test target outbox
For 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
passed
outbox
: present
passed
inputs
actor
{
"type": "Person",
"outbox": "https://bengo.is/outbox"
}
test targets
inbox
: not present
failed
outbox
: present
passed
inputs
actor
{
"type": "Person",
"inbox": "https://bengo.is/inbox",
}
test targets
inbox
: present
passed
outbox
: not present
failed
inputs
actor
{
"type": "Person"
}
test targets
inbox
: not present
failed
outbox
: not present
failed
inputs
actor
abc
test targets
inbox
: not present
inapplicable
outbox
: not present
inapplicable
inputs
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 type
inputs
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.outcome
An 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