forked from GNUsocial/gnu-social
wip2
This commit is contained in:
parent
5ddc6b0c34
commit
d91bc5ec66
@ -185,6 +185,7 @@ class Explorer
|
|||||||
// Try standard ActivityPub route
|
// Try standard ActivityPub route
|
||||||
// Is this a known filthy little mudblood?
|
// Is this a known filthy little mudblood?
|
||||||
$aprofile = DB::findOneBy(ActivitypubActor::class, ['uri' => $uri], return_null: true);
|
$aprofile = DB::findOneBy(ActivitypubActor::class, ['uri' => $uri], return_null: true);
|
||||||
|
//dd($aprofile, DB::sql('select * from activitypub_actor;'));
|
||||||
if (!\is_null($aprofile)) {
|
if (!\is_null($aprofile)) {
|
||||||
Log::debug('ActivityPub Explorer: Found a known ActivityPub Actor for ' . $uri);
|
Log::debug('ActivityPub Explorer: Found a known ActivityPub Actor for ' . $uri);
|
||||||
$this->discovered_actors[] = $aprofile->getActor();
|
$this->discovered_actors[] = $aprofile->getActor();
|
||||||
|
@ -187,7 +187,7 @@ class Actor extends Model
|
|||||||
} else {
|
} else {
|
||||||
// Delete existing avatar if any
|
// Delete existing avatar if any
|
||||||
try {
|
try {
|
||||||
$avatar = DB::findOneBy('avatar', ['actor_id' => $actor->getId()]);
|
$avatar = DB::findOneBy(\Component\Avatar\Entity\Avatar::class, ['actor_id' => $actor->getId()]);
|
||||||
$avatar->delete();
|
$avatar->delete();
|
||||||
Event::handle('AvatarUpdate', [$actor->getId()]);
|
Event::handle('AvatarUpdate', [$actor->getId()]);
|
||||||
} catch (Exception) {
|
} 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;
|
namespace Plugin\ActivityPub\tests\Objects;
|
||||||
|
|
||||||
use App\Core\DB\DB;
|
use App\Core\DB\DB;
|
||||||
use App\Util\GNUsocialTestCase;
|
|
||||||
use Jchook\AssertThrows\AssertThrows;
|
use Jchook\AssertThrows\AssertThrows;
|
||||||
use Plugin\ActivityPub\Entity\ActivitypubRsa;
|
use Plugin\ActivityPub\Entity\ActivitypubRsa;
|
||||||
|
use Plugin\ActivityPub\tests\ActivityPubTestCase;
|
||||||
use Plugin\ActivityPub\Util\Model\Actor;
|
use Plugin\ActivityPub\Util\Model\Actor;
|
||||||
|
|
||||||
class GroupTest extends GNUsocialTestCase
|
class GSGroupTest extends ActivityPubTestCase
|
||||||
{
|
{
|
||||||
use AssertThrows;
|
use AssertThrows;
|
||||||
|
|
||||||
public function testPersonFromJson()
|
public function testPersonFromJson()
|
||||||
{
|
{
|
||||||
static::bootKernel();
|
static::bootKernel();
|
||||||
|
static::loadFixtures();
|
||||||
|
|
||||||
$fixtures_path = INSTALLDIR . '/plugins/ActivityPub/tests/fixtures/gnusocial/';
|
$fixtures_path = INSTALLDIR . '/plugins/ActivityPub/tests/fixtures/gnusocial/';
|
||||||
$person = Actor::fromJson(file_get_contents($fixtures_path . 'objects/group.jsonld'));
|
$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);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user