# activitypub-testing should interoperate with onepage.pub

## Context

* https://onepage.pub/
* https://github.com/evanp/onepage.pub#one-page-pub

    > A compliant, robust ActivityPub server in one page
    > 
    > This project has multiple goals. First, it's a demonstration of how to build an ActivityPub server, with most of the important parts implemented. It should be useful for implementers who want to know how ActivityPub works in the real world. Second, it's a platform for testing and experimentation with new client apps and new server features.

## Run 0

```shell
npx activitypub-testing test actor https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS | jq .
```

<details>
<summary>test assertions as JSON</summary>
<pre>
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "inapplicable",
    "info": "object has no `likes` property",
    "pointer": {
      "object": {
        "name": "bengo",
        "id": "https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
        "type": "Person",
        "preferredUsername": "bengo",
        "attributedTo": {
          "id": "https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
          "type": "Person",
          "name": "bengo"
        },
        "to": [
          {
            "id": "https://www.w3.org/ns/activitystreams#Public",
            "type": "Collection",
            "nameMap": {
              "en": "Public"
            }
          }
        ],
        "inbox": "https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs",
        "outbox": "https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7",
        "followers": "https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF",
        "following": "https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg",
        "liked": "https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ",
        "blocked": {
          "id": "https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z",
          "type": "OrderedCollection",
          "nameMap": {
            "en": "bengo's blocked"
          },
          "first": "https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ"
        },
        "pendingFollowers": {
          "id": "https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II",
          "type": "OrderedCollection",
          "nameMap": {
            "en": "bengo's pendingFollowers"
          },
          "first": "https://onepage.pub/orderedcollectionpage/GEu8aDT7PqcKPpwwAf6XU"
        },
        "pendingFollowing": {
          "id": "https://onepage.pub/orderedcollection/q895Ovw1fsxQize95bsfF",
          "type": "OrderedCollection",
          "nameMap": {
            "en": "bengo's pendingFollowing"
          },
          "first": "https://onepage.pub/orderedcollectionpage/YSuGY5WNQkYN1doWv_2dW"
        },
        "publicKey": {
          "id": "https://onepage.pub/key/_OwWedcpCyewH0Sv2DGsb",
          "type": "Key",
          "owner": "https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
          "publicKeyPem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEApXIhEGpfydBb39yy1gSSKHzDNqnwOFdOalE9v7JazrSVeuKVMXyQ\nINATn3Q7fIPfEDqjUnsLNkVsRv5rusLq5Zpt62bdJV9P4ORXMnXGl//rzVAAJkaO\nt6hq7FTSnRdl7ytbWGcwq2JaYLIpGrW+PGv2HVTDD+pj9RG7GnxrNMoV4ySi74J3\nP6bseqwv4uEc0GL/nlYcaZCfScAtz2Rd1fsgnIPhdZGjcOL/S9BtZtYYsa6AFOfE\n7EuDGzKofDqQCSMYjBNdZbJ8tPzCecdb/eziL6AqdtUn/x3wsLb+7SQTSVjrOxi0\nRKMyVZtzy6y/T9WkNik+VuGO42BL7sxzdQIDAQAB\n-----END RSA PUBLIC KEY-----\n"
        },
        "updated": "2024-01-06T19:29:02.385Z",
        "published": "2024-01-06T19:29:02.385Z",
        "endpoints": {
          "proxyUrl": "https://onepage.pub/endpoint/proxyUrl",
          "oauthAuthorizationEndpoint": "https://onepage.pub/endpoint/oauth/authorize",
          "oauthTokenEndpoint": "https://onepage.pub/endpoint/oauth/token",
          "uploadMedia": "https://onepage.pub/endpoint/upload"
        },
        "@context": [
          "https://www.w3.org/ns/activitystreams",
          "https://w3id.org/security",
          "https://purl.archive.org/socialweb/blocked",
          "https://purl.archive.org/socialweb/pending"
        ]
      }
    }
  },
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "inapplicable",
    "info": "inputs.object does not have a shares property to test"
  },
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "type": [
    "Assertion"
  ],
  "result": {
    "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "cantTell",
    "info": "response status is 403 indicating we did not provide sufficient proof of authorization.",
    "pointer": {
      "response": {}
    }
  },
  "test": {
    "slug": "outbox-post-must-accept-non-activity-object",
    "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-must-accept-non-activity-object",
    "description": "This test checks that an ActivityPub Outbox accepts submission of an ActivityPub Object that is not an Activity, e.g. a Note, which it should then wrap in a Create activity.",
    "name": "Outbox Servers handling submissions MUST accept a valid object that isn't a subtype of Activity",
    "uuid": "77748b50-f58c-49e7-8986-98e520b0e890"
  },
  "input": {
    "outbox": "https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "failed",
    "info": "outbox POST response status MUST be 201, but got 403",
    "pointer": {
      "request": {
        "url": "https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7"
      },
      "response": {
        "status": 403,
        "statusText": "Forbidden",
        "body": "{\"message\":\"You cannot post to this outbox\"}"
      }
    }
  },
  "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://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
</pre>
</details>

### Analysis

There are several tests whose outcome is `passed`. Great! Several tests are `inapplicable`. This is normal.

There is only one test whose outcome is `failed`. And guess what? That's not a fair outcome here. It should be neither `failed` nor `passed`, but more like `cantTell`.

This is because here the outbox server has responded with a 403 HTTP status code. Sure, that is different than the 201 status code mentioned in the requirement from the spec. But this requirement only applies to the scenario where the outbox has *accepted* the submission that was sent to it.

Here the 403 status code explicitly communicates that the outbox could not accept the submission because the client (the test runner) did not provide sufficient proof of authorization.

<details>
<summary>JSON showing the test run with outcome failed (unfairly)</summary>
<pre>
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "failed",
    "info": "outbox POST response status MUST be 201, but got 403",
    "pointer": {
      "request": {
        "url": "https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7"
      },
      "response": {
        "status": 403,
        "statusText": "Forbidden",
        "body": "{\"message\":\"You cannot post to this outbox\"}"
      }
    }
  },
  "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://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
</pre>
</details>

### Improvements Derived from this Test Run 0

* [x] the test [outbox-post-servers-must-return-a-201-created-http-code](https://socialweb.coop/activitypub/test-cases/outbox-post-servers-must-return-a-201-created-http-code/) should be improved such that responses with http status code 403 do not result in a `failed` outcome, but instead result in a [`cantTell` outcome](https://www.w3.org/TR/EARL10-Schema/#CannotTell).
  * [x] there should be a test case for a response like this in the test cases for that test specification
* [x] Same change for 401 responses, which will be common.
* [x] add an affordance to provide outbox authorization to the `test actor` command, e.g. with a flag like `--input.authorization`
  * note: this also involved adding a feature where security parameters like `input.authorization` here can be tagged by the test author as having type `https://activitypub-testing.socialweb.coop/ns/HiddenInTestResults`. The raw values provided for these input properties will not be shown in the Assertions that yield from `ActorUrlTestRun`

## Run 1


```shell
⚡ activitypub-testing test actor https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS --input.authorization="Bearer `cat ~/.activitypub-testing/bengo_onepagepub_token`" | jq .
```

<details>
<summary>test assertions as JSON</summary>
<pre>
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "inapplicable",
    "info": "object has no `likes` property",
    "pointer": {
      "object": {
        "name": "bengo",
        "id": "https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
        "type": "Person",
        "preferredUsername": "bengo",
        "attributedTo": {
          "id": "https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
          "type": "Person",
          "name": "bengo"
        },
        "to": [
          {
            "id": "https://www.w3.org/ns/activitystreams#Public",
            "type": "Collection",
            "nameMap": {
              "en": "Public"
            }
          }
        ],
        "inbox": "https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs",
        "outbox": "https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7",
        "followers": "https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF",
        "following": "https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg",
        "liked": "https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ",
        "blocked": {
          "id": "https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z",
          "type": "OrderedCollection",
          "nameMap": {
            "en": "bengo's blocked"
          },
          "first": "https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ"
        },
        "pendingFollowers": {
          "id": "https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II",
          "type": "OrderedCollection",
          "nameMap": {
            "en": "bengo's pendingFollowers"
          },
          "first": "https://onepage.pub/orderedcollectionpage/GEu8aDT7PqcKPpwwAf6XU"
        },
        "pendingFollowing": {
          "id": "https://onepage.pub/orderedcollection/q895Ovw1fsxQize95bsfF",
          "type": "OrderedCollection",
          "nameMap": {
            "en": "bengo's pendingFollowing"
          },
          "first": "https://onepage.pub/orderedcollectionpage/YSuGY5WNQkYN1doWv_2dW"
        },
        "publicKey": {
          "id": "https://onepage.pub/key/_OwWedcpCyewH0Sv2DGsb",
          "type": "Key",
          "owner": "https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
          "publicKeyPem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEApXIhEGpfydBb39yy1gSSKHzDNqnwOFdOalE9v7JazrSVeuKVMXyQ\nINATn3Q7fIPfEDqjUnsLNkVsRv5rusLq5Zpt62bdJV9P4ORXMnXGl//rzVAAJkaO\nt6hq7FTSnRdl7ytbWGcwq2JaYLIpGrW+PGv2HVTDD+pj9RG7GnxrNMoV4ySi74J3\nP6bseqwv4uEc0GL/nlYcaZCfScAtz2Rd1fsgnIPhdZGjcOL/S9BtZtYYsa6AFOfE\n7EuDGzKofDqQCSMYjBNdZbJ8tPzCecdb/eziL6AqdtUn/x3wsLb+7SQTSVjrOxi0\nRKMyVZtzy6y/T9WkNik+VuGO42BL7sxzdQIDAQAB\n-----END RSA PUBLIC KEY-----\n"
        },
        "updated": "2024-01-06T19:29:02.385Z",
        "published": "2024-01-06T19:29:02.385Z",
        "endpoints": {
          "proxyUrl": "https://onepage.pub/endpoint/proxyUrl",
          "oauthAuthorizationEndpoint": "https://onepage.pub/endpoint/oauth/authorize",
          "oauthTokenEndpoint": "https://onepage.pub/endpoint/oauth/token",
          "uploadMedia": "https://onepage.pub/endpoint/upload"
        },
        "@context": [
          "https://www.w3.org/ns/activitystreams",
          "https://w3id.org/security",
          "https://purl.archive.org/socialweb/blocked",
          "https://purl.archive.org/socialweb/pending"
        ]
      }
    }
  },
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "inapplicable",
    "info": "inputs.object does not have a shares property to test"
  },
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "type": [
    "Assertion"
  ],
  "result": {
    "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "type": [
    "Assertion"
  ],
  "result": {
    "outcome": "cantTell",
    "info": "response status is 403 indicating we did not provide sufficient proof of authorization.",
    "pointer": {
      "response": {}
    }
  },
  "test": {
    "slug": "outbox-post-must-accept-non-activity-object",
    "url": "https://socialweb.coop/activitypub/test-cases/outbox-post-must-accept-non-activity-object",
    "description": "This test checks that an ActivityPub Outbox accepts submission of an ActivityPub Object that is not an Activity, e.g. a Note, which it should then wrap in a Create activity.",
    "name": "Outbox Servers handling submissions MUST accept a valid object that isn't a subtype of Activity",
    "uuid": "77748b50-f58c-49e7-8986-98e520b0e890"
  },
  "input": {
    "outbox": "https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7",
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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": "{\"name\":\"bengo\",\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"preferredUsername\":\"bengo\",\"attributedTo\":{\"id\":\"https://onepage.pub/person/qfU45YyW4aDIG-lN_lHSS\",\"type\":\"Person\",\"name\":\"bengo\"},\"to\":[{\"id\":\"https://www.w3.org/ns/activitystreams#Public\",\"type\":\"Collection\",\"nameMap\":{\"en\":\"Public\"}}],\"inbox\":\"https://onepage.pub/orderedcollection/afWhdD8XKWBW-QID-suHs\",\"outbox\":\"https://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7\",\"followers\":\"https://onepage.pub/orderedcollection/eLAAFQ52NjTtVYDrT4iNF\",\"following\":\"https://onepage.pub/orderedcollection/k0_0WpbZEYaXHod8Xbhgg\",\"liked\":\"https://onepage.pub/orderedcollection/KmjpizbQVagB9E05QrfFZ\",\"blocked\":{\"id\":\"https://onepage.pub/orderedcollection/z_XqNkN2F06GZJ_vr259z\",\"type\":\"OrderedCollection\",\"nameMap\":{\"en\":\"bengo's blocked\"},\"first\":\"https://onepage.pub/orderedcollectionpage/xVlqxrG89kz4o66vCcuoQ\"},\"pendingFollowers\":{\"id\":\"https://onepage.pub/orderedcollection/X-1CGEyuhcv8Z-stJE5II\",\"type\":\"OrderedCollection\",\"nameMap\"…"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
{
  "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://onepage.pub/orderedcollection/VXH9LQd6l8pm015WyWyA7",
    "authorization": {
      "@type": [
        "https://activitypub-testing.socialweb.coop/ns/HiddenInTestResults"
      ]
    },
    "time": "T10S"
  },
  "@context": [
    "https://socialweb.coop/ns/testing/context.json",
    "https://www.w3.org/ns/activitystreams"
  ]
}
</pre>
</details>

### Analysis of Run 1

result outcomes

* 0 `failed`
* 8 `passed`
* 2 `inapplicable`
    * these are for tests about an actor object's "likes" and "shares" properties, which I believe onepage.pub does not implement, so `inapplicable` is a good outcome
