/** * override to allow redirect history recording * * @see parent::followRedirect */ public function followRedirect() { if (!empty($this->redirect)) { $this->redirect_list[] = $this->redirect; } //if return parent::followRedirect(); }
protected function login(Client $client, $username = '******', $password = '******') { $client->restart(); $crawler = $client->request('GET', '/login'); $this->assertTrue($client->getResponse()->isSuccessful(), 'Response should be successful'); $form = $crawler->selectButton('Login')->form(); $client->submit($form, array('_username' => $username, '_password' => $password)); $this->assertTrue($client->getResponse()->isRedirect(), 'Response should be redirect'); $crawler = $client->followRedirect(); $this->assertGreaterThan(0, $crawler->filter('html:contains("Benvenuto")')->count()); }
/** * @param $result * @return mixed */ protected function redirectIfNecessary($result, $maxRedirects, $redirectCount) { $locationHeader = $this->client->getInternalResponse()->getHeader('Location'); if ($locationHeader) { if ($redirectCount == $maxRedirects) { throw new \LogicException(sprintf('The maximum number (%d) of redirections was reached.', $maxRedirects)); } $this->debugSection('Redirecting to', $locationHeader); $result = $this->client->followRedirect(); $this->debugResponse($locationHeader); return $this->redirectIfNecessary($result, $maxRedirects, $redirectCount + 1); } $this->client->followRedirects(true); return $result; }
/** * @param Client $client * @param $editUri * @param $editData * @param $expectedNewTitle */ private function updatePage(Client $client, $editUri, $editData, $expectedNewTitle) { $crawler = $client->request('GET', $editUri . '?uniqid=page'); $this->assertTrue($client->getResponse()->isSuccessful()); $form = $crawler->selectButton('Update')->form(); $form->setValues($editData); $client->submit($form); $this->assertTrue($client->getResponse()->isRedirect()); $crawler = $client->followRedirect(); $this->assertRegExp('|/admin/cmf/page/page/cms/content/page/[A-z0-9]{13}/edit|', $client->getRequest()->getUri()); $this->assertContains('Item "' . $expectedNewTitle . '" has been successfully updated.', $crawler->filter('.alert.alert-success')->text()); }