public function testThatAuthenticationIsFiredWithFacebookData() { $container = $this->getContainer(); $username = uniqid(); $getResponseEvent = $this->getGetResponseEvent(); $request = $getResponseEvent->getRequest(); // these two are required to mock facebook authentication response $request->query->set('code', uniqid()); $request->query->set('state', uniqid()); // this one is required to mock user with this test username $container->get('laelaps.security.facebook.authentication_provider.main.facebook')->getUserProvider()->setPredefinedUser($username, $this->getUserMock($username)); // this block of code is required to mock Facebook SDK user $firewallListener = $this->getFacebookFirewallListener(); $facebook = $firewallListener->getFacebookAdapter(); $facebook = FacebookAdapterMock::fromFacebookAdapter($facebook); $facebook->setUser($username); $firewallListener->setFacebookAdapter($facebook); // ...and now some assertions $securityContext = $container->get('security.context'); $token = $securityContext->getToken(); $this->assertNull($token, 'failed asserting that security context has no token before authentication'); $firewallListener->handle($getResponseEvent); $token = $securityContext->getToken(); $this->assertInstanceof('Laelaps\\Bundle\\FacebookAuthentication\\Security\\FacebookUserToken', $token, 'failed asserting that security context token is a Facebook user token'); $this->assertSame($username, $token->getUsername(), 'failed asserting that security context token username is correct username'); $this->assertTrue($token->isAuthenticated(), 'failed asserting that token is authenticated'); }
public function testThatMockedAdapterCanBeCreatedFromOtherAdapter() { $container = $this->getContainer(); $config = ['appId' => $applicationId = uniqid(), 'secret' => $secret = uniqid()]; $session = $container->get('session'); $sessionNamespace = uniqid(); $request = new Request(); $facebookAdapter = new FacebookAdapter($config, $session, $sessionNamespace, $request, $container); $facebookAdapterMock = FacebookAdapterMock::fromFacebookAdapter($facebookAdapter); $this->assertInstanceOf('Laelaps\\Bundle\\Facebook\\FacebookAdapter\\FacebookAdapterMock', $facebookAdapterMock); $this->assertSame($applicationId, $facebookAdapterMock->getAppId()); $this->assertSame($container, $facebookAdapterMock->getContainer()); $this->assertSame($request, $facebookAdapterMock->getRequest()); $this->assertSame($secret, $facebookAdapterMock->getAppSecret()); $this->assertSame($session, $facebookAdapterMock->getSession()); }