[FrameworkBundle] Add tests to prove functional testing works with simultaneous clients.
This commit is contained in:
parent
ff0412a2bd
commit
ce66548782
@ -64,6 +64,59 @@ class SessionTest extends WebTestCase
|
||||
$this->assertContains('No flash was set.', $crawler->text());
|
||||
}
|
||||
|
||||
/**
|
||||
* See if two separate insulated clients can run without
|
||||
* polluting eachother's session data.
|
||||
*
|
||||
* @dataProvider getConfigs
|
||||
*/
|
||||
public function testTwoClients($config)
|
||||
{
|
||||
// start first client
|
||||
$client1 = $this->createClient(array('test_case' => 'Session', 'root_config' => $config));
|
||||
$client1->insulate();
|
||||
|
||||
// start second client
|
||||
$client2 = $this->createClient(array('test_case' => 'Session', 'root_config' => $config));
|
||||
$client2->insulate();
|
||||
|
||||
// new session, so no name set.
|
||||
$crawler1 = $client1->request('GET', '/session');
|
||||
$this->assertContains('You are new here and gave no name.', $crawler1->text());
|
||||
|
||||
// set name of client1
|
||||
$crawler1 = $client1->request('GET', '/session/client1');
|
||||
$this->assertContains('Hello client1, nice to meet you.', $crawler1->text());
|
||||
|
||||
// no session for client2
|
||||
$crawler2 = $client2->request('GET', '/session');
|
||||
$this->assertContains('You are new here and gave no name.', $crawler2->text());
|
||||
|
||||
// remember name client2
|
||||
$crawler2 = $client2->request('GET', '/session/client2');
|
||||
$this->assertContains('Hello client2, nice to meet you.', $crawler2->text());
|
||||
|
||||
// prove remembered name of client1
|
||||
$crawler1 = $client1->request('GET', '/session');
|
||||
$this->assertContains('Welcome back client1, nice to meet you.', $crawler1->text());
|
||||
|
||||
// prove remembered name of client2
|
||||
$crawler2 = $client2->request('GET', '/session');
|
||||
$this->assertContains('Welcome back client2, nice to meet you.', $crawler2->text());
|
||||
|
||||
// clear client1
|
||||
$crawler1 = $client1->request('GET', '/session_logout');
|
||||
$this->assertContains('Session cleared.', $crawler1->text());
|
||||
|
||||
// prove client1 data is cleared
|
||||
$crawler1 = $client1->request('GET', '/session');
|
||||
$this->assertContains('You are new here and gave no name.', $crawler1->text());
|
||||
|
||||
// prove remembered name of client2 remains untouched.
|
||||
$crawler2 = $client2->request('GET', '/session');
|
||||
$this->assertContains('Welcome back client2, nice to meet you.', $crawler2->text());
|
||||
}
|
||||
|
||||
public function getConfigs()
|
||||
{
|
||||
return array(
|
||||
|
Reference in New Issue
Block a user