forked from GNUsocial/gnu-social
		
	wip2
This commit is contained in:
		| @@ -185,6 +185,7 @@ class Explorer | ||||
|         // Try standard ActivityPub route | ||||
|         // Is this a known filthy little mudblood? | ||||
|         $aprofile = DB::findOneBy(ActivitypubActor::class, ['uri' => $uri], return_null: true); | ||||
|         //dd($aprofile, DB::sql('select * from activitypub_actor;')); | ||||
|         if (!\is_null($aprofile)) { | ||||
|             Log::debug('ActivityPub Explorer: Found a known ActivityPub Actor for ' . $uri); | ||||
|             $this->discovered_actors[] = $aprofile->getActor(); | ||||
|   | ||||
| @@ -187,7 +187,7 @@ class Actor extends Model | ||||
|         } else { | ||||
|             // Delete existing avatar if any | ||||
|             try { | ||||
|                 $avatar = DB::findOneBy('avatar', ['actor_id' => $actor->getId()]); | ||||
|                 $avatar = DB::findOneBy(\Component\Avatar\Entity\Avatar::class, ['actor_id' => $actor->getId()]); | ||||
|                 $avatar->delete(); | ||||
|                 Event::handle('AvatarUpdate', [$actor->getId()]); | ||||
|             } catch (Exception) { | ||||
|   | ||||
							
								
								
									
										35
									
								
								plugins/ActivityPub/tests/ActivityPubTestCase.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								plugins/ActivityPub/tests/ActivityPubTestCase.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types = 1); | ||||
|  | ||||
| namespace Plugin\ActivityPub\tests; | ||||
|  | ||||
| use App\Core\DB\DB; | ||||
| use App\Util\GNUsocialTestCase; | ||||
| use Plugin\ActivityPub\Util\Model\Activity; | ||||
| use Plugin\ActivityPub\Util\Model\Actor; | ||||
| use Plugin\ActivityPub\Util\Model\Note; | ||||
|  | ||||
| class ActivityPubTestCase extends GNUsocialTestCase | ||||
| { | ||||
|     private static string $fixtures_path = INSTALLDIR . '/plugins/ActivityPub/tests/fixtures'; | ||||
|  | ||||
|     public static function loadFixtures(string $ontology = 'gnusocial'): void | ||||
|     { | ||||
|         static::bootKernel(); | ||||
|         // Load Actors | ||||
|         $person = Actor::fromJson(file_get_contents(self::$fixtures_path . "/{$ontology}/objects/person.jsonld")); | ||||
|         $group  = Actor::fromJson(file_get_contents(self::$fixtures_path . "/{$ontology}/objects/group.jsonld")); | ||||
|  | ||||
|         // Load Activities | ||||
|         $create_note = Activity::fromJson(file_get_contents(self::$fixtures_path . "/{$ontology}/activities/create_note.jsonld")); | ||||
|         $create_page = Activity::fromJson(file_get_contents(self::$fixtures_path . "/{$ontology}/activities/create_page.jsonld")); | ||||
|  | ||||
|         // Load Objects | ||||
|         $note  = Note::fromJson(file_get_contents(self::$fixtures_path . "/{$ontology}/objects/note.jsonld")); | ||||
|         $page  = Note::fromJson(file_get_contents(self::$fixtures_path . "/{$ontology}/objects/page.jsonld")); | ||||
|         $reply = Note::fromJson(file_get_contents(self::$fixtures_path . "/{$ontology}/objects/reply.jsonld")); | ||||
|  | ||||
|         DB::flush(); | ||||
|     } | ||||
| } | ||||
| @@ -24,18 +24,19 @@ declare(strict_types = 1); | ||||
| 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\tests\ActivityPubTestCase; | ||||
| use Plugin\ActivityPub\Util\Model\Actor; | ||||
| 
 | ||||
| class GroupTest extends GNUsocialTestCase | ||||
| class GSGroupTest extends ActivityPubTestCase | ||||
| { | ||||
|     use AssertThrows; | ||||
| 
 | ||||
|     public function testPersonFromJson() | ||||
|     { | ||||
|         static::bootKernel(); | ||||
|         static::loadFixtures(); | ||||
| 
 | ||||
|         $fixtures_path = INSTALLDIR . '/plugins/ActivityPub/tests/fixtures/gnusocial/'; | ||||
|         $person        = Actor::fromJson(file_get_contents($fixtures_path . 'objects/group.jsonld')); | ||||
							
								
								
									
										56
									
								
								plugins/ActivityPub/tests/Objects/GSPersonTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								plugins/ActivityPub/tests/Objects/GSPersonTest.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types = 1); | ||||
|  | ||||
| // {{{ License | ||||
|  | ||||
| // This file is part of GNU social - https://www.gnu.org/software/social | ||||
| // | ||||
| // GNU social is free software: you can redistribute it and/or modify | ||||
| // it under the terms of the GNU Affero General Public License as published by | ||||
| // the Free Software Foundation, either version 3 of the License, or | ||||
| // (at your option) any later version. | ||||
| // | ||||
| // GNU social is distributed in the hope that it will be useful, | ||||
| // but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| // GNU Affero General Public License for more details. | ||||
| // | ||||
| // You should have received a copy of the GNU Affero General Public License | ||||
| // along with GNU social.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| // }}} | ||||
|  | ||||
| namespace Plugin\ActivityPub\tests\Objects; | ||||
|  | ||||
| use Plugin\ActivityPub\tests\ActivityPubTestCase; | ||||
|  | ||||
| class GSPersonTest extends ActivityPubTestCase | ||||
| { | ||||
| //    public function testPersonFromJson() | ||||
| //    { | ||||
| //        static::bootKernel(); | ||||
| //        static::loadFixtures(); | ||||
| // | ||||
| //        $person = Explorer::getOneFromUri('https://testv3.gnusocial.rocks/actor/42', false); | ||||
| //        $ap_person = ActivitypubActor::getByPK(['actor_id' => $person->getId()]); | ||||
| //        static::assertSame('https://testv3.gnusocial.rocks/actor/42/inbox.json', $ap_person->getInboxUri()); | ||||
| //        static::assertSame('https://testv3.gnusocial.rocks/inbox.json', $ap_person->getInboxSharedUri()); | ||||
| //        $person = $ap_person->getActor(); | ||||
| //        static::assertSame('https://testv3.gnusocial.rocks/actor/42', $person->getUri()); | ||||
| //        static::assertSame(\App\Entity\Actor::PERSON, $person->getType()); | ||||
| //        static::assertSame('diogo', $person->getNickname()); | ||||
| //        static::assertSame('Diogo Cordeiro', $person->getFullname()); | ||||
| //        $public_key = ActivityPubRsa::getByActor($person)->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); | ||||
| //    } | ||||
|  | ||||
|     public function testPersonToJson() | ||||
|     { | ||||
|         static::loadFixtures(); | ||||
|  | ||||
|         //$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); | ||||
|     } | ||||
| } | ||||
| @@ -1,64 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types = 1); | ||||
|  | ||||
| // {{{ License | ||||
|  | ||||
| // This file is part of GNU social - https://www.gnu.org/software/social | ||||
| // | ||||
| // GNU social is free software: you can redistribute it and/or modify | ||||
| // it under the terms of the GNU Affero General Public License as published by | ||||
| // the Free Software Foundation, either version 3 of the License, or | ||||
| // (at your option) any later version. | ||||
| // | ||||
| // GNU social is distributed in the hope that it will be useful, | ||||
| // but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| // GNU Affero General Public License for more details. | ||||
| // | ||||
| // You should have received a copy of the GNU Affero General Public License | ||||
| // along with GNU social.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| // }}} | ||||
|  | ||||
| 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); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user