public function testRememberMeAuthentication() { $app = $this->createApplication(); $client = new Client($app); $client->request('get', '/'); $client->request('post', '/login_check', array('_username' => 'fabien', '_password' => 'foo', '_remember_me' => 'true')); $client->followRedirect(); $this->assertEquals('AUTHENTICATED_FULLY', $client->getResponse()->getContent()); $this->assertNotNull($client->getCookiejar()->get('REMEMBERME'), 'The REMEMBERME cookie is set'); $client->getCookiejar()->expire('MOCKSESSID'); $client->request('get', '/'); $this->assertEquals('AUTHENTICATED_REMEMBERED', $client->getResponse()->getContent()); $client->request('get', '/logout'); $client->followRedirect(); $this->assertNull($client->getCookiejar()->get('REMEMBERME'), 'The REMEMBERME cookie has been removed'); }
public function testLogin() { $loginUrl = $this->urlGenerator->generate('login'); $crawler = $this->client->request('GET', $loginUrl); $this->assertTrue($this->client->getResponse()->isOk()); $form = $crawler->filter('#form-signin')->form(); $form['key'] = 'foo'; $form['secret'] = 'bar'; $this->client->submit($form); // setup cookie and redirect to referer $this->assertTrue($this->client->getResponse()->isRedirect('http://localhost' . $loginUrl)); $cookies = $this->client->getResponse()->headers->getCookies(); $this->assertCount(1, $cookies); $this->assertEquals($this->app['amazon_s3_credentials_cookie_name'], $cookies[0]->getName()); $this->assertEquals(json_encode(array_map(function ($field) { return $field->getValue(); }, $form->all())), $cookies[0]->getValue()); // redirect to homepage $this->client->followRedirect(); $this->assertTrue($this->client->getResponse()->isRedirect($this->urlGenerator->generate('list'))); }
public function testRememberMeAuthentication() { $app = $this->createApplication(); $interactiveLogin = new InteractiveLoginTriggered(); $app->on(SecurityEvents::INTERACTIVE_LOGIN, array($interactiveLogin, 'onInteractiveLogin')); $client = new Client($app); $client->request('get', '/'); $this->assertFalse($interactiveLogin->triggered, 'The interactive login has not been triggered yet'); $client->request('post', '/login_check', array('_username' => 'fabien', '_password' => 'foo', '_remember_me' => 'true')); $client->followRedirect(); $this->assertEquals('AUTHENTICATED_FULLY', $client->getResponse()->getContent()); $this->assertTrue($interactiveLogin->triggered, 'The interactive login has been triggered'); $this->assertNotNull($client->getCookiejar()->get('REMEMBERME'), 'The REMEMBERME cookie is set'); $event = false; $client->getCookiejar()->expire('MOCKSESSID'); $client->request('get', '/'); $this->assertEquals('AUTHENTICATED_REMEMBERED', $client->getResponse()->getContent()); $this->assertTrue($interactiveLogin->triggered, 'The interactive login has been triggered'); $client->request('get', '/logout'); $client->followRedirect(); $this->assertNull($client->getCookiejar()->get('REMEMBERME'), 'The REMEMBERME cookie has been removed'); }