8000 [BrowserKit] added a test to make sure HTTP authentication is preserv… · symfony/symfony@b240d1f · GitHub
[go: up one dir, main page]

Skip to content

Commit b240d1f

Browse files
committed
[BrowserKit] added a test to make sure HTTP authentication is preserved when submitting a form
1 parent b38ab51 commit b240d1f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/Symfony/Component/BrowserKit/Tests/ClientTest.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,37 @@ public function testSubmit()
262262
$this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms');
263263
}
264264

265+
public function testSubmitPreserveAuth()
266+
{
267+
if (!class_exists('Symfony\Component\DomCrawler\Crawler')) {
268+
$this->markTestSkipped('The "DomCrawler" component is not available');
269+
}
270+
271+
if (!class_exists('Symfony\Component\CssSelector\CssSelector')) {
272+
$this->markTestSkipped('The "CssSelector" component is not available');
273+
}
274+
275+
$client = new TestClient();
276+
$client->setNextResponse(new Response('<html><form action="/foo"><input type="submit" /></form></html>'));
277+
$crawler = $client->request('GET', 'http://www.example.com/foo/foobar', array(), array(), array('PHP_AUTH_USER' => 'foo', 'PHP_AUTH_PW' => 'bar'));
278+
279+
$server = $client->getRequest()->getServer();
280+
$this->assertArrayHasKey('PHP_AUTH_USER', $server);
281+
$this->assertEquals('foo', $server['PHP_AUTH_USER']);
282+
$this->assertArrayHasKey('PHP_AUTH_PW', $server);
283+
$this->assertEquals('bar', $server['PHP_AUTH_PW']);
284+
285+
$client->submit($crawler->filter('input')->form());
286+
287+
$this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms');
288+
289+
$server = $client->getRequest()->getServer();
290+
$this->assertArrayHasKey('PHP_AUTH_USER', $server);
291+
$this->assertEquals('foo', $server['PHP_AUTH_USER']);
292+
$this->assertArrayHasKey('PHP_AUTH_PW', $server);
293+
$this->assertEquals('bar', $server['PHP_AUTH_PW']);
294+
}
295+
265296
public function testFollowRedirect()
266297
{
267298
$client = new TestClient();

0 commit comments

Comments
 (0)
0