diff --git a/plugins/ActivityPub/tests/Objects/GroupTest.php b/plugins/ActivityPub/tests/Objects/GroupTest.php new file mode 100644 index 0000000000..ba572fa053 --- /dev/null +++ b/plugins/ActivityPub/tests/Objects/GroupTest.php @@ -0,0 +1,53 @@ +. + +// }}} + +namespace Plugin\ActivityPub\tests\Objects; + +use App\Core\DB\DB; +use App\Util\GNUsocialTestCase; +use Jchook\AssertThrows\AssertThrows; +use Plugin\ActivityPub\Entity\ActivitypubRsa; +use Plugin\ActivityPub\Util\Model\Actor; + +class GroupTest extends GNUsocialTestCase +{ + use AssertThrows; + + public function testPersonFromJson() + { + static::bootKernel(); + + $fixtures_path = INSTALLDIR . '/plugins/ActivityPub/tests/fixtures/gnusocial/'; + $person = Actor::fromJson(file_get_contents($fixtures_path . 'objects/group.jsonld')); + static::assertSame('https://testv3.gnusocial.rocks/actor/2/inbox.json', $person->getInboxUri()); + static::assertSame('https://testv3.gnusocial.rocks/inbox.json', $person->getInboxSharedUri()); + DB::flush(); + $person_actor = $person->getActor(); + static::assertSame('https://testv3.gnusocial.rocks/actor/2', $person_actor->getUri()); + static::assertSame(\App\Entity\Actor::GROUP, $person_actor->getType()); + static::assertSame('hackers', $person_actor->getNickname()); + static::assertSame('Hackers!', $person_actor->getFullname()); + $public_key = ActivityPubRsa::getByActor($person_actor)->getPublicKey(); + static::assertSame("-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZyKL+GyJbTV/ilVBlzz\n8OL/UwNi3KpfV5kQwXU0pPcBbw6y2JOfWnKUT1CfiHG3ntiOFnc+wQfHZk4hRSE8\n9Xe/G5Y215xW+gqx/kjt2GOENqzSzYXdEZ5Qsx6yumZD/yb6VZK9Og0HjX2mpRs9\nbactY76w4BQVntjZ17gSkMhYcyPFZTAIe7QDkeSPk5lkXfTwtaB3YcJSbQ3+s7La\npeEgukQDkrLUIP6cxayKrgUl4fhHdpx1Yk4Bzd/1XkZCjeBca94lP1p2M12amI+Z\nOLSTuLyEiCcku8aN+Ms9plwATmIDaGvKFVk0YVtBHdIJlYXV0yIscab3bqyhsLBK\njwIDAQAB\n-----END PUBLIC KEY-----\n", $public_key); + } +} diff --git a/plugins/ActivityPub/tests/Objects/PersonTest.php b/plugins/ActivityPub/tests/Objects/PersonTest.php new file mode 100644 index 0000000000..8f93d2b980 --- /dev/null +++ b/plugins/ActivityPub/tests/Objects/PersonTest.php @@ -0,0 +1,64 @@ +. + +// }}} + +namespace Plugin\ActivityPub\tests\Objects; + +use App\Core\DB\DB; +use App\Util\GNUsocialTestCase; +use Jchook\AssertThrows\AssertThrows; +use Plugin\ActivityPub\Entity\ActivitypubActor; +use Plugin\ActivityPub\Entity\ActivitypubRsa; +use Plugin\ActivityPub\Util\Explorer; +use Plugin\ActivityPub\Util\Model\Actor; + +class PersonTest extends GNUsocialTestCase +{ + use AssertThrows; + public string $fixtures_path = INSTALLDIR . '/plugins/ActivityPub/tests/fixtures/gnusocial/'; + + public function testPersonFromJson() + { + static::bootKernel(); + + $person = Actor::fromJson(file_get_contents($this->fixtures_path . 'objects/person.jsonld')); + static::assertSame('https://testv3.gnusocial.rocks/actor/42/inbox.json', $person->getInboxUri()); + static::assertSame('https://testv3.gnusocial.rocks/inbox.json', $person->getInboxSharedUri()); + DB::flush(); + $person_actor = $person->getActor(); + static::assertSame('https://testv3.gnusocial.rocks/actor/42', $person_actor->getUri()); + static::assertSame(\App\Entity\Actor::PERSON, $person_actor->getType()); + static::assertSame('diogo', $person_actor->getNickname()); + static::assertSame('Diogo Cordeiro', $person_actor->getFullname()); + $public_key = ActivityPubRsa::getByActor($person_actor)->getPublicKey(); + static::assertSame("-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArBB+3ldwA2qC1hQTtIho\n9KYhvvMlPdydn8dA6OlyIQ3Jy57ADt2e144jDSY5RQ3esmzWm2QqsI8rAsZsAraO\nl2+855y7Fw35WH4GBc7PJ6MLAEvMk1YWeS/rttXaDzh2i4n/AXkMuxDjS1IBqw2w\nn0qTz2sdGcBJ+mop6AB9Qt2lseBc5IW040jSnfLEDDIaYgoc5m2yRsjGKItOh3BG\njGHDb6JB9FySToSMGIt0/tE5k06wfvAxtkxX5dfGeKtciBpC2MGT169iyMIOM8DN\nFhSl8mowtV1NJQ7nN692USrmNvSJjqe9ugPCDPPvwQ5A6A61Qrgpz5pav/o5Sz69\nzQIDAQAB\n-----END PUBLIC KEY-----\n", $public_key); + dd(ActivitypubActor::getByPK(['uri' => 'https://testv3.gnusocial.rocks/actor/42'])); + } + + public function testPersonToJson() + { + //static::bootKernel(); + //$actor = Explorer::getOneFromUri('https://testv3.gnusocial.rocks/actor/42', false); + //$actual = Actor::toJson($actor); + //static::assertSame(file_get_contents($this->fixtures_path . 'objects/person.jsonld'), $actual); + } +}