From decf69e8b4270e064b9dcd6441750832073008d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Mon, 22 Dec 2025 23:10:19 +0900 Subject: [PATCH] =?UTF-8?q?ActivityPub=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=81=AE=E8=BF=BD=E5=8A=A0=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E3=83=BB=E3=83=BB=E3=83=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Site/Test/LibActivitypub.php | 79 ++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/Site/Test/LibActivitypub.php diff --git a/src/Site/Test/LibActivitypub.php b/src/Site/Test/LibActivitypub.php new file mode 100644 index 0000000..255cc7c --- /dev/null +++ b/src/Site/Test/LibActivitypub.php @@ -0,0 +1,79 @@ + true, + 'verboseOutput' => true + ]); + + /* + postInbox(array $activity): void + update(): string + sendActorUpdate(array $params): void + */ + + $test->describe('ActivityPub情報の受け取り', function($test): void { + $test->it('このインスタンスのユーザーを受け取れるはず', function($test): void { + $ap = new Activitypub(); + $res = $ap->getActor(); + $test->assertNotNull($res); + $json = json_decode($res, true); + + $expect = 'Person'; + $test->assertEquals($json['type'], $expect); + + $expect = 'http://127.0.0.1:8000'; + $test->assertEquals($json['url'], $expect); + + $expect = 'http://127.0.0.1:8000/ap/actor'; + $test->assertEquals($json['id'], $expect); + + $expect = 'http://127.0.0.1:8000/ap/inbox'; + $test->assertEquals($json['inbox'], $expect); + + $expect = 'http://127.0.0.1:8000/ap/outbox'; + $test->assertEquals($json['outbox'], $expect); + + $expect = 'http://127.0.0.1:8000/ap/followers'; + $test->assertEquals($json['followers'], $expect); + + $expect = 'http://127.0.0.1:8000/ap/following'; + $test->assertEquals($json['following'], $expect); + }); + + $test->it('アクティビティを受け取れるはず', function($test): void { + $blog = new BlogPost; + $posts = $blog->getPosts('/blog/'); + $ap = new Activitypub($posts); + $res = $ap->getActivity('a8c04518-4181-4ec6-9ef0-3f88f23b84b6'); // /blog/feature-test + $test->assertNotNull($res); + $json = json_decode($res, true); + + $expect = 'Create'; + $test->assertEquals($json['type'], $expect); + + $expect = '【マークダウン】関数'; + $test->assertEquals($json['object']['name'], $expect); + + $expect = 'https://www.w3.org/ns/activitystreams#Public'; + $test->assertEquals($json['object']['to'][0], $expect); + + $expect = 'zBbw7K7L1dEwr6htZX5JevRv3oLtHwXQU4o5jT8jn9RKF'; + $test->assertEquals($json['attachment'][0]['digestMultibase'], $expect); + + $expect = 'http://127.0.0.1:8000/static/article/o_53803618dc1691.28179609-orig.jpg'; + $test->assertEquals($json['attachment'][0]['url'], $expect); + }); + }); + + // TODO: 未完了 + + $test->printSummary(); +} \ No newline at end of file