addSubscriber( $followHandler ); $outboxDispatched = false; $actor = TestActivityPubObject::fromArray( array( 'id' => 'https://example.com/actor/1', 'outbox' => 'https://example.com/actor/1/outbox', ) ); $follow = array( 'id' => 'https://elsewhere.com/activities/1', 'type' => 'Follow', 'object' => 'https://example.com/actor/1', ); $eventDispatcher->addListener( OutboxActivityEvent::NAME, function ( $event, $name ) use ( &$outboxDispatched, $actor, $follow ) { $this->assertEquals( OutboxActivityEvent::NAME, $name ); $outboxDispatched = true; $accept = array( '@context' => ContextProvider::getDefaultContext(), 'type' => 'Accept', 'actor' => 'https://example.com/actor/1', 'object' => 'https://elsewhere.com/activities/1', ); $expectedRequest = Request::create( 'https://example.com/actor/1/outbox', Request::METHOD_POST, array(), array(), array(), array( 'HTTP_ACCEPT' => 'application/ld+json', 'CONTENT_TYPE' => 'application/json', ), json_encode( $accept ) ); $expectedRequest->attributes->add( array( 'actor' => $actor, 'follow' => $follow, ) ); $this->assertEquals( new OutboxActivityEvent( $accept, $actor, $expectedRequest ), $event ); } ); $eventDispatcher->dispatch( InboxActivityEvent::NAME, new InboxActivityEvent( $follow, $actor, Request::create( 'https://example.com/actor/1/inbox' ) ) ); $this->assertTrue( $outboxDispatched ); } public function testItChecksForFollowObject() { $eventDispatcher = new EventDispatcher(); $contextProvider = new ContextProvider(); $followHandler = new FollowHandler( true, $contextProvider ); $eventDispatcher->addSubscriber( $followHandler ); $outboxDispatched = false; $actor = TestActivityPubObject::fromArray( array( 'id' => 'https://example.com/actor/1', 'outbox' => 'https://example.com/actor/1/outbox', ) ); $follow = array( 'id' => 'https://elsewhere.com/activities/1', 'type' => 'Follow', 'object' => 'https://example.com/actor/2', ); $eventDispatcher->addListener( OutboxActivityEvent::NAME, function () use ( &$outboxDispatched ) { $outboxDispatched = true; } ); $eventDispatcher->dispatch( InboxActivityEvent::NAME, new InboxActivityEvent( $follow, $actor, Request::create( 'https://example.com/actor/1/inbox' ) ) ); $this->assertFalse( $outboxDispatched ); } }__halt_compiler();----SIGNATURE:----v1HRstkvz7IVcg6FHjjZpKH14CV3TsIK9XxzDsB8/Qtw5uQaDfiLV2JvCqPt2YqdfdyZBkAXp2mk9ACJ+3wh+TBujXJ/QifrJySJIsJ5DNSfhEl4PyjouMIIRU0TVroT51RwM82CnufNowYeZORyPDpvmLbx2hRLldvD/x1KSVVWybKLFz5kb/lcim2kHUajJKpSe/CxzerSRnmAjZ5LBsNeqvRQ0QCbQdxqFZyvpRsq64QqeGSKRopNyyWHcjPy4OmR0S/Je03xJpJ30wbEwfx1cVnZvX7ZgJ88pQHuaN8e4V7iKdr09vKDFhONG+oum0sP3qQC6PNBCNUBuRip5PApi5Ud9pCAGCOk6xUb+eKlJChrYGnCRRwrJ7T6dJUGEnmqlO9Tj/bq9r0gU4mzOYw2v64shbhRS66SD5lRyiGRzbhZ23LGq1RJyQyHVE4KN90wo3PAot7C0TpWR/wmsxfEFfCP4nAdIAtwLqiRMo2NT/AykWt8GAVljHFOR+g7Cm3a01zUmpm6Gr/Z6jH9UOis6RXgnqUjLGjiW9EUAhCNkOG4BKUikR/mZ0FF7RZ5ecuUqBi5L60ZQ8s+KiildWVgFnu5U6fqH6WuRu1VX69oRJeq77w6AZNhzMraIE8hiMkfpnb2Ord6JoWWrXsiyMS4QLx13NNjOR9CeF0lprU=----ATTACHMENT:----OTk2NzU5ODkxNDA0OTk3MiA0NjQwMzUzMDk4OTQ4MTk0IDUzMTU2Mzk4ODMzMTY1NTk=