diff --git a/src/Symfony/Component/BrowserKit/Client.php b/src/Symfony/Component/BrowserKit/Client.php index 2c16c858fc..799b3579f0 100644 --- a/src/Symfony/Component/BrowserKit/Client.php +++ b/src/Symfony/Component/BrowserKit/Client.php @@ -289,11 +289,11 @@ abstract class Client * * @return Crawler */ - public function submit(Form $form, array $values = array()) + public function submit(Form $form, array $values = array(), $serverParameters = array()) { $form->setValues($values); - return $this->request($form->getMethod(), $form->getUri(), $form->getPhpValues(), $form->getPhpFiles()); + return $this->request($form->getMethod(), $form->getUri(), $form->getPhpValues(), $form->getPhpFiles(), $serverParameters); } /** diff --git a/src/Symfony/Component/BrowserKit/Tests/ClientTest.php b/src/Symfony/Component/BrowserKit/Tests/ClientTest.php index 741b29b9c7..909bf3c67c 100644 --- a/src/Symfony/Component/BrowserKit/Tests/ClientTest.php +++ b/src/Symfony/Component/BrowserKit/Tests/ClientTest.php @@ -367,6 +367,20 @@ class ClientTest extends TestCase $this->assertEquals('bar', $server['PHP_AUTH_PW']); } + public function testSubmitPassthrewHeaders() + { + $client = new TestClient(); + $client->setNextResponse(new Response('
')); + $crawler = $client->request('GET', 'http://www.example.com/foo/foobar'); + $headers = array('Accept-Language' => 'de'); + + $client->submit($crawler->filter('input')->form(), array(), $headers); + + $server = $client->getRequest()->getServer(); + $this->assertArrayHasKey('Accept-Language', $server); + $this->assertEquals('de', $server['Accept-Language']); + } + public function testFollowRedirect() { $client = new TestClient();