activitypub-testing Implementation Guide
The goal of this document is to guide for ActivityPub testers on how to use the activitypub-testing
tool to test an ActivityPub Conformant Server
Prerequisites
- have
node
andnpm
on yourPATH
. If you don't have them, install node.js. - have
jq
on yourPATH
for processing JSON. If you don't have it, installjq
.
Optional:
tee
- this is part of the POSIX standard. You probably have it already.
Be aware:
- throughout this guide,
⚡
is used in code blocks to indicate a shell prompt. Copy the rest of the command after⚡
and paste in your shell to follow along.
Installing activitypub-testing
⚡ npm install -g activitypub-testing
If the previous command succeeds, then the following should work in your command prompt:
⚡ activitypub-testing help
If installation succeeded, this command will show documentation for how to use activitypub-testing
.
Testing an ActivityPub Conformant Server
Testing an ActivityPub Actor
-
Choose an ActivityPub Actor served by an ActivityPub Conformant Server that will be a test subject. Let
actor
be theid
of this Actor.-
if you are developing an ActivityPub Server locally, the Actor ID could look like
http://localhost:8000/actors/alyssa-p-hacker
-
For the rest of this guide, we'll use
⚡ actor="https://socialweb.coop/"
-
-
To test the actor, invoke the
test actor
command and passactor
as the argument.⚡ activitypub-testing test actor "$actor"
This will run many tests against
actor
and stream the results as JSON objects to stdout. It won't record any results, which can be useful for exploratory testing. -
When you are ready to record some test results, run the same command, but redirect stdout to append the results to a file
results.ndjson
using tee⚡ activitypub-testing test actor "$actor" | tee results.ndjson
-
Analyze the results
⚡ cat results.ndjson | jq .
-
See Appendix A: Example results.ndjson for example output
-
Every object in results is an Assertion with a result with an outcome.
-
You can use
jq
to show only the result of each test:⚡ cat results.ndjson | jq '{ result, test: .test | { url } }' { "result": { "outcome": "passed" }, "test": { "url": "https://socialweb.coop/activitypub/test-cases/following-collection-must-be-a-collection" } } # more JSONs omitted for brevity
-
Or only show results with outcomes other than
passed
:⚡ cat results.ndjson | jq 'select(.result.outcome != "passed")'
No output means every test
passed
.
-
In future releases of activitypub-testing
, there will be commands to test other parts of an ActivityPub Server. If you'd like to shape the roadmap, please file an issue
File an Issue
If you're having an issue using activitypub-testing
, you can report the issue by making a Pull Request into the /issues
folder of the activitypub-testing
repository at https://codeberg.org/socialweb.coop/activitypub-testing/issues.
Click here to start creating a new issue using the codeberg.org website.
Appendix A: Example results.ndjson
{ "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "following-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/following-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `following`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `following` Collection Must be a Collection", "uuid": "018c3e17-a1bd-7040-8007-4cd3b9063288" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "followers-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/followers-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `followers`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `followers` Collection Must be a Collection", "uuid": "018c3e08-611f-7e56-9f45-2fe5e4877d4e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "liked-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/liked-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a liked collection with an appropriate Collection type", "name": "An ActivityPub Object `liked` Collection Must be a Collection", "uuid": "018c3df2-d6d8-7f62-805b-b71a96cc6170" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "likes-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/likes-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a likes collection with an appropriate Collection type", "name": "An ActivityPub Object `likes` Collection Must be a Collection", "uuid": "200b9bc8-aae3-46f2-a6ab-5366042c0f6e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "shares-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/shares-collection-must-be-a-collection", "description": "This test case tests that an actor's shares collection is an expected kind of collection", "name": "shares collection MUST be either an OrderedCollection or a Collection", "uuid": "b03a5245-1072-426d-91b3-a3d412d45ae8" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "inputs": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "outcome": "passed", "source": [] }, "test": { "slug": "actor-objects-must-have-inbox-outbox-properties", "url": "https://socialweb.coop/activitypub/test-cases/actor-objects-must-have-inbox-outbox-properties", "description": "This rule checks whether a given Actor Object has the properties inbox and outbox.", "name": "Actor Objects Must Have Properties `inbox` and `outbox`", "uuid": "acaacb5f-8f7e-4f28-8d81-c7955070a767" }, "input": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "actor-must-serve-as2-object-to-get", "url": "https://socialweb.coop/activitypub/test-cases/actor-must-serve-as2-object-to-get", "description": "This rule checks that URLs of ActivityPub objects can be resolved to a representation with well-known media type for further processing.", "name": "ActivityPub Servers Must Serve Objects in Response to an HTTP GET Request Accepting ActivityStreams 2.0 Media Type", "uuid": "e7ee491d-88d7-4e67-80c8-f74781bb247c" }, "input": { "id": "https://socialweb.coop/", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "outbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/outbox-must-be-an-orderedcollection", "description": "This rule checks whether the outbox property of an object appears to be an OrderedCollection", "name": "outbox must be an OrderedCollection", "uuid": "4af549f4-3797-4d99-a151-67c3d8feaa46" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "inbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/inbox-must-be-an-orderedcollection", "description": "This rule checks whether the inbox property of an object appears to be an OrderedCollection", "name": "inbox must be an OrderedCollection", "uuid": "5e94d155-ed4a-4d71-b797-d7c387736ecf" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "outbox-post-servers-must-return-a-201-created-http-code", "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-servers-must-return-a-201-created-http-code", "description": "This test checks that an ActivityPub Outbox responds with a 201 status code when sent a POST request with an Activity submission.", "name": "Outbox Servers handling activity submissions MUST return a 201 created HTTP status code", "uuid": "723afcbb-118d-433e-8ab4-560ffca93582" }, "input": { "outbox": "https://socialweb.coop/outbox", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "following-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/following-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `following`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `following` Collection Must be a Collection", "uuid": "018c3e17-a1bd-7040-8007-4cd3b9063288" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "following-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/following-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `following`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `following` Collection Must be a Collection", "uuid": "018c3e17-a1bd-7040-8007-4cd3b9063288" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "followers-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/followers-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `followers`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `followers` Collection Must be a Collection", "uuid": "018c3e08-611f-7e56-9f45-2fe5e4877d4e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "followers-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/followers-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `followers`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `followers` Collection Must be a Collection", "uuid": "018c3e08-611f-7e56-9f45-2fe5e4877d4e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "liked-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/liked-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a liked collection with an appropriate Collection type", "name": "An ActivityPub Object `liked` Collection Must be a Collection", "uuid": "018c3df2-d6d8-7f62-805b-b71a96cc6170" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "liked-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/liked-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a liked collection with an appropriate Collection type", "name": "An ActivityPub Object `liked` Collection Must be a Collection", "uuid": "018c3df2-d6d8-7f62-805b-b71a96cc6170" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "likes-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/likes-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a likes collection with an appropriate Collection type", "name": "An ActivityPub Object `likes` Collection Must be a Collection", "uuid": "200b9bc8-aae3-46f2-a6ab-5366042c0f6e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "likes-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/likes-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a likes collection with an appropriate Collection type", "name": "An ActivityPub Object `likes` Collection Must be a Collection", "uuid": "200b9bc8-aae3-46f2-a6ab-5366042c0f6e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "shares-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/shares-collection-must-be-a-collection", "description": "This test case tests that an actor's shares collection is an expected kind of collection", "name": "shares collection MUST be either an OrderedCollection or a Collection", "uuid": "b03a5245-1072-426d-91b3-a3d412d45ae8" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "shares-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/shares-collection-must-be-a-collection", "description": "This test case tests that an actor's shares collection is an expected kind of collection", "name": "shares collection MUST be either an OrderedCollection or a Collection", "uuid": "b03a5245-1072-426d-91b3-a3d412d45ae8" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "inputs": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "outcome": "passed", "source": [] }, "test": { "slug": "actor-objects-must-have-inbox-outbox-properties", "url": "https://socialweb.coop/activitypub/test-cases/actor-objects-must-have-inbox-outbox-properties", "description": "This rule checks whether a given Actor Object has the properties inbox and outbox.", "name": "Actor Objects Must Have Properties `inbox` and `outbox`", "uuid": "acaacb5f-8f7e-4f28-8d81-c7955070a767" }, "input": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "inputs": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "outcome": "passed", "source": [] }, "test": { "slug": "actor-objects-must-have-inbox-outbox-properties", "url": "https://socialweb.coop/activitypub/test-cases/actor-objects-must-have-inbox-outbox-properties", "description": "This rule checks whether a given Actor Object has the properties inbox and outbox.", "name": "Actor Objects Must Have Properties `inbox` and `outbox`", "uuid": "acaacb5f-8f7e-4f28-8d81-c7955070a767" }, "input": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "actor-must-serve-as2-object-to-get", "url": "https://socialweb.coop/activitypub/test-cases/actor-must-serve-as2-object-to-get", "description": "This rule checks that URLs of ActivityPub objects can be resolved to a representation with well-known media type for further processing.", "name": "ActivityPub Servers Must Serve Objects in Response to an HTTP GET Request Accepting ActivityStreams 2.0 Media Type", "uuid": "e7ee491d-88d7-4e67-80c8-f74781bb247c" }, "input": { "id": "https://socialweb.coop/", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "actor-must-serve-as2-object-to-get", "url": "https://socialweb.coop/activitypub/test-cases/actor-must-serve-as2-object-to-get", "description": "This rule checks that URLs of ActivityPub objects can be resolved to a representation with well-known media type for further processing.", "name": "ActivityPub Servers Must Serve Objects in Response to an HTTP GET Request Accepting ActivityStreams 2.0 Media Type", "uuid": "e7ee491d-88d7-4e67-80c8-f74781bb247c" }, "input": { "id": "https://socialweb.coop/", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "inbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/inbox-must-be-an-orderedcollection", "description": "This rule checks whether the inbox property of an object appears to be an OrderedCollection", "name": "inbox must be an OrderedCollection", "uuid": "5e94d155-ed4a-4d71-b797-d7c387736ecf" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "inbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/inbox-must-be-an-orderedcollection", "description": "This rule checks whether the inbox property of an object appears to be an OrderedCollection", "name": "inbox must be an OrderedCollection", "uuid": "5e94d155-ed4a-4d71-b797-d7c387736ecf" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "outbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/outbox-must-be-an-orderedcollection", "description": "This rule checks whether the outbox property of an object appears to be an OrderedCollection", "name": "outbox must be an OrderedCollection", "uuid": "4af549f4-3797-4d99-a151-67c3d8feaa46" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "outbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/outbox-must-be-an-orderedcollection", "description": "This rule checks whether the outbox property of an object appears to be an OrderedCollection", "name": "outbox must be an OrderedCollection", "uuid": "4af549f4-3797-4d99-a151-67c3d8feaa46" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "outbox-post-servers-must-return-a-201-created-http-code", "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-servers-must-return-a-201-created-http-code", "description": "This test checks that an ActivityPub Outbox responds with a 201 status code when sent a POST request with an Activity submission.", "name": "Outbox Servers handling activity submissions MUST return a 201 created HTTP status code", "uuid": "723afcbb-118d-433e-8ab4-560ffca93582" }, "input": { "outbox": "https://socialweb.coop/outbox", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "outbox-post-servers-must-return-a-201-created-http-code", "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-servers-must-return-a-201-created-http-code", "description": "This test checks that an ActivityPub Outbox responds with a 201 status code when sent a POST request with an Activity submission.", "name": "Outbox Servers handling activity submissions MUST return a 201 created HTTP status code", "uuid": "723afcbb-118d-433e-8ab4-560ffca93582" }, "input": { "outbox": "https://socialweb.coop/outbox", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "following-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/following-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `following`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `following` Collection Must be a Collection", "uuid": "018c3e17-a1bd-7040-8007-4cd3b9063288" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "followers-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/followers-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `followers`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `followers` Collection Must be a Collection", "uuid": "018c3e08-611f-7e56-9f45-2fe5e4877d4e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "liked-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/liked-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a liked collection with an appropriate Collection type", "name": "An ActivityPub Object `liked` Collection Must be a Collection", "uuid": "018c3df2-d6d8-7f62-805b-b71a96cc6170" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "likes-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/likes-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a likes collection with an appropriate Collection type", "name": "An ActivityPub Object `likes` Collection Must be a Collection", "uuid": "200b9bc8-aae3-46f2-a6ab-5366042c0f6e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "shares-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/shares-collection-must-be-a-collection", "description": "This test case tests that an actor's shares collection is an expected kind of collection", "name": "shares collection MUST be either an OrderedCollection or a Collection", "uuid": "b03a5245-1072-426d-91b3-a3d412d45ae8" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "inputs": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "outcome": "passed", "source": [] }, "test": { "slug": "actor-objects-must-have-inbox-outbox-properties", "url": "https://socialweb.coop/activitypub/test-cases/actor-objects-must-have-inbox-outbox-properties", "description": "This rule checks whether a given Actor Object has the properties inbox and outbox.", "name": "Actor Objects Must Have Properties `inbox` and `outbox`", "uuid": "acaacb5f-8f7e-4f28-8d81-c7955070a767" }, "input": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "actor-must-serve-as2-object-to-get", "url": "https://socialweb.coop/activitypub/test-cases/actor-must-serve-as2-object-to-get", "description": "This rule checks that URLs of ActivityPub objects can be resolved to a representation with well-known media type for further processing.", "name": "ActivityPub Servers Must Serve Objects in Response to an HTTP GET Request Accepting ActivityStreams 2.0 Media Type", "uuid": "e7ee491d-88d7-4e67-80c8-f74781bb247c" }, "input": { "id": "https://socialweb.coop/", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "inbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/inbox-must-be-an-orderedcollection", "description": "This rule checks whether the inbox property of an object appears to be an OrderedCollection", "name": "inbox must be an OrderedCollection", "uuid": "5e94d155-ed4a-4d71-b797-d7c387736ecf" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "outbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/outbox-must-be-an-orderedcollection", "description": "This rule checks whether the outbox property of an object appears to be an OrderedCollection", "name": "outbox must be an OrderedCollection", "uuid": "4af549f4-3797-4d99-a151-67c3d8feaa46" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "outbox-post-servers-must-return-a-201-created-http-code", "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-servers-must-return-a-201-created-http-code", "description": "This test checks that an ActivityPub Outbox responds with a 201 status code when sent a POST request with an Activity submission.", "name": "Outbox Servers handling activity submissions MUST return a 201 created HTTP status code", "uuid": "723afcbb-118d-433e-8ab4-560ffca93582" }, "input": { "outbox": "https://socialweb.coop/outbox", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "following-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/following-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `following`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `following` Collection Must be a Collection", "uuid": "018c3e17-a1bd-7040-8007-4cd3b9063288" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "followers-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/followers-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `followers`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `followers` Collection Must be a Collection", "uuid": "018c3e08-611f-7e56-9f45-2fe5e4877d4e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "liked-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/liked-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a liked collection with an appropriate Collection type", "name": "An ActivityPub Object `liked` Collection Must be a Collection", "uuid": "018c3df2-d6d8-7f62-805b-b71a96cc6170" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "likes-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/likes-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a likes collection with an appropriate Collection type", "name": "An ActivityPub Object `likes` Collection Must be a Collection", "uuid": "200b9bc8-aae3-46f2-a6ab-5366042c0f6e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "shares-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/shares-collection-must-be-a-collection", "description": "This test case tests that an actor's shares collection is an expected kind of collection", "name": "shares collection MUST be either an OrderedCollection or a Collection", "uuid": "b03a5245-1072-426d-91b3-a3d412d45ae8" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "inputs": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "outcome": "passed", "source": [] }, "test": { "slug": "actor-objects-must-have-inbox-outbox-properties", "url": "https://socialweb.coop/activitypub/test-cases/actor-objects-must-have-inbox-outbox-properties", "description": "This rule checks whether a given Actor Object has the properties inbox and outbox.", "name": "Actor Objects Must Have Properties `inbox` and `outbox`", "uuid": "acaacb5f-8f7e-4f28-8d81-c7955070a767" }, "input": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "actor-must-serve-as2-object-to-get", "url": "https://socialweb.coop/activitypub/test-cases/actor-must-serve-as2-object-to-get", "description": "This rule checks that URLs of ActivityPub objects can be resolved to a representation with well-known media type for further processing.", "name": "ActivityPub Servers Must Serve Objects in Response to an HTTP GET Request Accepting ActivityStreams 2.0 Media Type", "uuid": "e7ee491d-88d7-4e67-80c8-f74781bb247c" }, "input": { "id": "https://socialweb.coop/", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "outbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/outbox-must-be-an-orderedcollection", "description": "This rule checks whether the outbox property of an object appears to be an OrderedCollection", "name": "outbox must be an OrderedCollection", "uuid": "4af549f4-3797-4d99-a151-67c3d8feaa46" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "inbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/inbox-must-be-an-orderedcollection", "description": "This rule checks whether the inbox property of an object appears to be an OrderedCollection", "name": "inbox must be an OrderedCollection", "uuid": "5e94d155-ed4a-4d71-b797-d7c387736ecf" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "outbox-post-servers-must-return-a-201-created-http-code", "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-servers-must-return-a-201-created-http-code", "description": "This test checks that an ActivityPub Outbox responds with a 201 status code when sent a POST request with an Activity submission.", "name": "Outbox Servers handling activity submissions MUST return a 201 created HTTP status code", "uuid": "723afcbb-118d-433e-8ab4-560ffca93582" }, "input": { "outbox": "https://socialweb.coop/outbox", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "following-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/following-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `following`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `following` Collection Must be a Collection", "uuid": "018c3e17-a1bd-7040-8007-4cd3b9063288" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "followers-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/followers-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a `followers`` collection with an appropriate Collection type", "name": "An ActivityPub Actor Object's `followers` Collection Must be a Collection", "uuid": "018c3e08-611f-7e56-9f45-2fe5e4877d4e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "liked-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/liked-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a liked collection with an appropriate Collection type", "name": "An ActivityPub Object `liked` Collection Must be a Collection", "uuid": "018c3df2-d6d8-7f62-805b-b71a96cc6170" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "likes-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/likes-collection-must-be-a-collection", "description": "tests whether an ActivityPub Object has a likes collection with an appropriate Collection type", "name": "An ActivityPub Object `likes` Collection Must be a Collection", "uuid": "200b9bc8-aae3-46f2-a6ab-5366042c0f6e" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "shares-collection-must-be-a-collection", "url": "https://socialweb.coop/activitypub/test-cases/shares-collection-must-be-a-collection", "description": "This test case tests that an actor's shares collection is an expected kind of collection", "name": "shares collection MUST be either an OrderedCollection or a Collection", "uuid": "b03a5245-1072-426d-91b3-a3d412d45ae8" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "inputs": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "outcome": "passed", "source": [] }, "test": { "slug": "actor-objects-must-have-inbox-outbox-properties", "url": "https://socialweb.coop/activitypub/test-cases/actor-objects-must-have-inbox-outbox-properties", "description": "This rule checks whether a given Actor Object has the properties inbox and outbox.", "name": "Actor Objects Must Have Properties `inbox` and `outbox`", "uuid": "acaacb5f-8f7e-4f28-8d81-c7955070a767" }, "input": { "actor": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "actor-must-serve-as2-object-to-get", "url": "https://socialweb.coop/activitypub/test-cases/actor-must-serve-as2-object-to-get", "description": "This rule checks that URLs of ActivityPub objects can be resolved to a representation with well-known media type for further processing.", "name": "ActivityPub Servers Must Serve Objects in Response to an HTTP GET Request Accepting ActivityStreams 2.0 Media Type", "uuid": "e7ee491d-88d7-4e67-80c8-f74781bb247c" }, "input": { "id": "https://socialweb.coop/", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "inbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/inbox-must-be-an-orderedcollection", "description": "This rule checks whether the inbox property of an object appears to be an OrderedCollection", "name": "inbox must be an OrderedCollection", "uuid": "5e94d155-ed4a-4d71-b797-d7c387736ecf" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "type": "TestResult", "outcome": "passed" }, "test": { "slug": "outbox-must-be-an-orderedcollection", "url": "https://socialweb.coop/activitypub/test-cases/outbox-must-be-an-orderedcollection", "description": "This rule checks whether the outbox property of an object appears to be an OrderedCollection", "name": "outbox must be an OrderedCollection", "uuid": "4af549f4-3797-4d99-a151-67c3d8feaa46" }, "input": { "object": "{\n \"type\": [\n \"Organization\"\n ],\n \"inbox\": \"https://socialweb.coop/inbox\",\n \"outbox\": \"https://socialweb.coop/outbox\",\n \"followers\": {\n \"type\": \"OrderedCollection\"\n },\n \"following\": {\n \"type\": \"OrderedCollection\"\n },\n \"liked\": {\n \"type\": \"OrderedCollection\"\n },\n \"likes\": {\n \"type\": \"OrderedCollection\"\n },\n \"shares\": {\n \"type\": \"OrderedCollection\"\n },\n \"id\": \"https://socialweb.coop/\",\n \"@context\": [\n \"https://www.w3.org/ns/activitystreams\"\n ]\n}", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] } { "type": [ "Assertion" ], "result": { "outcome": "passed" }, "test": { "slug": "outbox-post-servers-must-return-a-201-created-http-code", "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-servers-must-return-a-201-created-http-code", "description": "This test checks that an ActivityPub Outbox responds with a 201 status code when sent a POST request with an Activity submission.", "name": "Outbox Servers handling activity submissions MUST return a 201 created HTTP status code", "uuid": "723afcbb-118d-433e-8ab4-560ffca93582" }, "input": { "outbox": "https://socialweb.coop/outbox", "time": "T10S" }, "@context": [ "https://www.w3.org/ns/activitystreams", "https://socialweb.coop/ns/testing/context.json" ] }