merged branch stloyd/bugfix/issue7929 (PR #8697)

This PR was merged into the 2.2 branch.

Discussion
----------

[2.2] [BrowserKit] Pass headers when `followRedirect()` is called

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Tests pass?   | yes
| Fixed tickets | #7929
| License       | MIT

Commits
-------

0d07af8 [BrowserKit] Pass headers when `followRedirect()` is called
This commit is contained in:
Fabien Potencier 2013-08-30 20:27:38 +02:00
commit 7e06905ec0
2 changed files with 28 additions and 1 deletions

View File

@ -420,7 +420,7 @@ abstract class Client
throw new \LogicException('The request was not redirected.');
}
return $this->request('get', $this->redirect);
return $this->request('get', $this->redirect, array(), array(), $this->history->current()->getServer());
}
/**

View File

@ -342,6 +342,33 @@ class ClientTest extends \PHPUnit_Framework_TestCase
$this->assertEquals(array('foo' => 'bar'), $client->getRequest()->getCookies());
}
public function testFollowRedirectWithHeaders()
{
$headers = array(
'HTTP_HOST' => 'www.example.com',
'HTTP_USER_AGENT' => 'Symfony2 BrowserKit',
'CONTENT_TYPE' => 'application/vnd.custom+xml',
'HTTPS' => false,
);
$client = new TestClient();
$client->followRedirects(false);
$client->setNextResponse(new Response('', 302, array(
'Location' => 'http://www.example.com/redirected',
)));
$client->request('GET', 'http://www.example.com/', array(), array(), array(
'CONTENT_TYPE' => 'application/vnd.custom+xml',
));
$this->assertEquals($headers, $client->getRequest()->getServer());
$client->followRedirect();
$headers['HTTP_REFERER'] = 'http://www.example.com/';
$this->assertEquals($headers, $client->getRequest()->getServer());
}
public function testBack()
{
$client = new TestClient();