An ActivityPub Test

Background

ActivityPub §4.1 Actor Objects:

Actor objects MUST have... the following properties: inbox... outbox...

About this Test

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.

Identifier

The identifier of this test is urn:uuid:acaacb5f-8f7e-4f28-8d81-c7955070a767.

Test Subject

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.

Inputs

This test requires the following inputs:

Applicability

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.

Test Targets

Expectations

  1. actor JSON has a property whose name is inbox.

  2. actor JSON has a property whose name is outbox

Assumptions

1. How to Determine Whether Input is an Actor Object

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:

2. No property value expectations

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:

Test Cases

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.

simple valid actor

inputs

test targets

missing inbox

inputs

test targets

missing outbox

inputs

test targets

actor type, but no inbox nor outbox

inputs

test targets

not json

inputs

test targets

json with no properties

inputs

test targets

actor with no other properties

inputs

test targets

object with inbox but no type

inputs

test targets

Glossary

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:

Requirements Mapping

Change Log

Issues List