8000 fixed Client implementation to return the right Response (closes #4475) · norberttech/symfony@1005fd1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1005fd1

Browse files
committed
fixed Client implementation to return the right Response (closes symfony#4475)
1 parent 902aa4b commit 1005fd1

File tree

14 files changed

+168
-46
lines changed

14 files changed

+168
-46
lines changed

UPGRADE-2.3.md

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
UPGRADE FROM 2.2 to 2.3
22
=======================
33

4-
### Form
4+
Form
5+
----
56

67
* Although this was not officially supported nor documented, it was possible to
78
set the option "validation_groups" to false, resulting in the group "Default"
@@ -109,7 +110,8 @@
109110
}
110111
```
111112

112-
### PropertyAccess
113+
PropertyAccess
114+
--------------
113115

114116
* PropertyAccessor was changed to continue its search for a property or method
115117
even if a non-public match was found. This means that the property "author"
@@ -161,7 +163,8 @@
161163
}
162164
```
163165

164-
### DomCrawler
166+
DomCrawler
167+
----------
165168

166169
* `Crawler::each()` and `Crawler::reduce()` now return Crawler instances
167170
instead of DomElement instances:
@@ -181,3 +184,31 @@
181184
return $crawler->text();
182185
});
183186
```
187+
188+
BrowserKit
189+
----------
190+
191+
* The `Symfony\Component\BrowserKit\Client::getResponse()` method now
192+
**always** returns a `Symfony\Component\BrowserKit\Response` instance. To
193+
get the response from the code that handled the request, use the new
194+
`getOriginResponse()` method instead of `getResponse()`.
195+
196+
* The `Symfony\Component\BrowserKit\Client::getRequest()` method now
197+
**always** returns a `Symfony\Component\BrowserKit\Request` instance. To
198+
get the response from the code that handled the request, use the new
199+
`getOriginRequest()` method instead of `getRequest()`.
200+
201+
HttpKernel
202+
----------
203+
204+
* The `Symfony\Component\HttpKernel\Client::getResponse()` now returns a
205+
`Symfony\Component\BrowserKit\Response` instance instead of a
206+
`Symfony\Component\HttpFoundation\Response` one (because of a change in
207+
BrowserKit -- see above). You can still get the `HttpFoundation` response
208+
by using `getOriginResponse()` instead of `getResponse()`.
209+
210+
* The `Symfony\Component\HttpKernel\Client::getRequest()` now returns a
211+
`Symfony\Component\BrowserKit\Request` instance instead of a
212+
`Symfony\Component\HttpFoundation\Request` one (because of a change in
213+
BrowserKit -- see above). You can still get the `HttpFoundation` response
214+
by using `getOriginRequest()` instead of `getRequest()`.

src/Symfony/Bundle/FrameworkBundle/Client.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public function getProfile()
6969
return false;
7070
}
7171

72-
return $this->kernel->getContainer()->get('profiler')->loadProfileFromResponse($this->response);
72+
return $this->kernel->getContainer()->get('profiler')->loadProfileFromResponse($this->originResponse);
7373
}
7474

7575
/**

src/Symfony/Bundle/FrameworkBundle/Tests/Functional/SubRequestsTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ public function testStateAfterSubRequest()
2121
$client = $this->createClient(array('test_case' => 'Session', 'root_config' => 'config.yml'));
2222
$client->request('GET', 'https://localhost/subrequest/en');
2323

24-
$this->assertEquals('--fr/json--en/html--fr/json--http://localhost/subrequest/fragment/en', $client->getResponse()->getContent());
24+
$this->assertEquals('--fr/json--en/html--fr/json--http://localhost/subrequest/fragment/en', $client->getOriginResponse()->getContent());
2525
}
2626
}

src/Symfony/Bundle/SecurityBundle/Tests/Functional/AuthenticationCommencingTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ public function testAuthenticationIsCommencingIfAccessDeniedExceptionIsWrapped()
1919
$client->insulate();
2020

2121
$client->request('GET', '/secure-but-not-covered-by-access-control');
22-
$this->assertRedirect($client->getResponse(), '/login');
22+
$this->assertRedirect($client->getOriginResponse(), '/login');
2323
}
2424
}

src/Symfony/Bundle/SecurityBundle/Tests/Functional/CsrfFormLoginTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function testFormLoginAndLogoutWithCsrfTokens($config)
2929
$form['user_login[password]'] = 'test';
3030
$client->submit($form);
3131

32-
$this->assertRedirect($client->getResponse(), '/profile');
32+
$this->assertRedirect($client->getOriginResponse(), '/profile');
3333

3434
$crawler = $client->followRedirect();
3535

@@ -44,7 +44,7 @@ public function testFormLoginAndLogoutWithCsrfTokens($config)
4444

4545
$client->click($logoutLinks[0]);
4646

47-
$this->assertRedirect($client->getResponse(), '/');
47+
$this->assertRedirect($client->getOriginResponse(), '/');
4848
}
4949

5050
/**
@@ -59,7 +59,7 @@ public function testFormLoginWithInvalidCsrfToken($config)
5959
$form['user_login[_token]'] = '';
6060
$client->submit($form);
6161

62-
$this->assertRedirect($client->getResponse(), '/login');
62+
$this->assertRedirect($client->getOriginResponse(), '/login');
6363

6464
$text = $client->followRedirect()->text();
6565
$this->assertContains('Invalid CSRF token.', $text);
@@ -79,7 +79,7 @@ public function testFormLoginWithCustomTargetPath($config)
7979
$form['user_login[_target_path]'] = '/foo';
8080
$client->submit($form);
8181

82-
$this->assertRedirect($client->getResponse(), '/foo');
82+
$this->assertRedirect($client->getOriginResponse(), '/foo');
8383

8484
$text = $client->followRedirect()->text();
8585
$this->assertContains('Hello johannes!', $text);
@@ -95,13 +95,13 @@ public function testFormLoginRedirectsToProtectedResourceAfterLogin($config)
9595
$client->insulate();
9696

9797
$client->request('GET', '/protected-resource');
98-
$this->assertRedirect($client->getResponse(), '/login');
98+
$this->assertRedirect($client->getOriginResponse(), '/login');
9999

100100
$form = $client->followRedirect()->selectButton('login')->form();
101101
$form['user_login[username]'] = 'johannes';
102102
$form['user_login[password]'] = 'test';
103103
$client->submit($form);
104-
$this->assertRedirect($client->getResponse(), '/protected-resource');
104+
$this->assertRedirect($client->getOriginResponse(), '/protected-resource');
105105

106106
$text = $client->followRedirect()->text();
107107
$this->assertContains('Hello johannes!', $text);

src/Symfony/Bundle/SecurityBundle/Tests/Functional/FormLoginTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function testFormLogin($config)
2929
$form['_password'] = 'test';
3030
$client->submit($form);
3131

32-
$this->assertRedirect($client->getResponse(), '/profile');
32+
$this->assertRedirect($client->getOriginResponse(), '/profile');
3333

3434
$text = $client->followRedirect()->text();
3535
$this->assertContains('Hello johannes!', $text);
@@ -50,7 +50,7 @@ public function testFormLoginWithCustomTargetPath($config)
5050
$form['_target_path'] = '/foo';
5151
$client->submit($form);
5252

53-
$this->assertRedirect($client->getResponse(), '/foo');
53+
$this->assertRedirect($client->getOriginResponse(), '/foo');
5454

5555
$text = $client->followRedirect()->text();
5656
$this->assertContains('Hello johannes!', $text);
@@ -66,13 +66,13 @@ public function testFormLoginRedirectsToProtectedResourceAfterLogin($config)
6666
$client->insulate();
6767

6868
$client->request('GET', '/protected_resource');
69-
$this->assertRedirect($client->getResponse(), '/login');
69+
$this->assertRedirect($client->getOriginResponse(), '/login');
7070

7171
$form = $client->followRedirect()->selectButton('login')->form();
7272
$form['_username'] = 'johannes';
7373
$form['_password'] = 'test';
7474
$client->submit($form);
75-
$this->assertRedirect($client->getResponse(), '/protected_resource');
75+
$this->assertRedirect($client->getOriginResponse(), '/protected_resource');
7676

7777
$text = $client->followRedirect()->text();
7878
$this->assertContains('Hello johannes!', $text);

src/Symfony/Bundle/SecurityBundle/Tests/Functional/LocalizedRoutesAsPathTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ public function testLoginLogoutProcedure($locale)
2727
$form['_password'] = 'test';
2828
$client->submit($form);
2929

30-
$this->assertRedirect($client->getResponse(), '/'.$locale.'/profile');
30+
$this->assertRedirect($client->getOriginResponse(), '/'.$locale.'/profile');
3131
$this->assertEquals('Profile', $client->followRedirect()->text());
3232

3333
$client->request('GET', '/'.$locale.'/logout');
34-
$this->assertRedirect($client->getResponse(), '/'.$locale.'/');
34+
$this->assertRedirect($client->getOriginResponse(), '/'.$locale.'/');
3535
$this->assertEquals('Homepage', $client->followRedirect()->text());
3636
}
3737

@@ -49,7 +49,7 @@ public function testLoginFailureWithLocalizedFailurePath($locale)
4949
$form['_password'] = 'foobar';
5050
$client->submit($form);
5151

52-
$this->assertRedirect($client->getResponse(), '/'.$locale.'/login');
52+
$this->assertRedirect($client->getOriginResponse(), '/'.$locale.'/login');
5353
}
5454

5555
/**
@@ -61,7 +61,7 @@ public function testAccessRestrictedResource($locale)
6161
$client->insulate();
6262

6363
$client->request('GET', '/'.$locale.'/secure/');
64-
$this->assertRedirect($client->getResponse(), '/'.$locale.'/login');
64+
$this->assertRedirect($client->getOriginResponse(), '/'.$locale.'/login');
6565
}
6666

6767
/**
@@ -73,7 +73,7 @@ public function testAccessRestrictedResourceWithForward($locale)
7373
$client->insulate();
7474

7575
$crawler = $client->request('GET', '/'.$locale.'/secure/');
76-
$this->assertCount(1, $crawler->selectButton('login'), (string) $client->getResponse());
76+
$this->assertCount(1, $crawler->selectButton('login'), (string) $client->getOriginResponse());
7777
}
7878

7979
public function getLocales()

src/Symfony/Bundle/SecurityBundle/Tests/Functional/SecurityRoutingIntegrationTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function testRoutingErrorIsNotExposedForProtectedResourceWhenAnonymous($c
2222
$client->insulate();
2323
$client->request('GET', '/protected_resource');
2424

25-
$this->assertRedirect($client->getResponse(), '/login');
25+
$this->assertRedirect($client->getOriginResponse(), '/login');
2626
}
2727

2828
/**
@@ -38,7 +38,7 @@ public function testRoutingErrorIsExposedWhenNotProtected($config)
3838
$client->insulate();
3939
$client->request('GET', '/unprotected_resource');
4040

41-
$this->assertEquals(404, $client->getResponse()->getStatusCode(), (string) $client->getResponse());
41+
$this->assertEquals(404, $client->getOriginResponse()->getStatusCode(), (string) $client->getOriginResponse());
4242
}
4343

4444
/**
@@ -60,7 +60,7 @@ public function testRoutingErrorIsNotExposedForProtectedResourceWhenLoggedInWith
6060

6161
$client->request('GET', '/highly_protected_resource');
6262

63-
$this->assertNotEquals(404, $client->getResponse()->getStatusCode());
63+
$this->assertNotEquals(404, $client->getOriginResponse()->getStatusCode());
6464
}
6565

6666
/**
@@ -93,12 +93,12 @@ public function testSecurityConfigurationForMultipleIPAddresses($config)
9393

9494
private function assertAllowed($client, $path) {
9595
$client->request('GET', $path);
96-
$this->assertEquals(404, $client->getResponse()->getStatusCode());
96+
$this->assertEquals(404, $client->getOriginResponse()->getStatusCode());
9797
}
9898

9999
private function assertRestricted($client, $path) {
100100
$client->request('GET', $path);
101-
$this->assertEquals(302, $client->getResponse()->getStatusCode());
101+
$this->assertEquals(302, $client->getOriginResponse()->getStatusCode());
102102
}
103103

104104
public function getConfigs()

src/Symfony/Bundle/SecurityBundle/Tests/Functional/SwitchUserTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function testSwitchUser($originalUser, $targetUser, $expectedUser, $expec
2525

2626
$client->request('GET', '/profile?_switch_user='.$targetUser);
2727

28-
$this->assertEquals($expectedStatus, $client->getResponse()->getStatusCode());
28+
$this->assertEquals($expectedStatus, $client->getOriginResponse()->getStatusCode());
2929
$this->assertEquals($expectedUser, $client->getProfile()->getCollector('security')->getUser());
3030
}
3131

@@ -36,7 +36,7 @@ public function testSwitchedUserCannotSwitchToOther()
3636
$client->request('GET', '/profile?_switch_user=user_cannot_switch_1');
3737
$client->request('GET', '/profile?_switch_user=user_cannot_switch_2');
3838

39-
$this->assertEquals(500, $client->getResponse()->getStatusCode());
39+
$this->assertEquals(500, $client->getOriginResponse()->getStatusCode());
4040
$this->assertEquals('user_cannot_switch_1', $client->getProfile()->getCollector('security')->getUser());
4141
}
4242

@@ -47,7 +47,7 @@ public function testSwitchedUserExit()
4747
$client->request('GET', '/profile?_switch_user=user_cannot_switch_1');
4848
$client->request('GET', '/profile?_switch_user=_exit');
4949

50-
$this->assertEquals(200, $client->getResponse()->getStatusCode());
50+
$this->assertEquals(200, $client->getOriginResponse()->getStatusCode());
5151
$this->assertEquals('user_can_switch', $client->getProfile()->getCollector('security')->getUser());
5252
}
5353

src/Symfony/Component/BrowserKit/CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
CHANGELOG
22
=========
33

4+
2.3.0
5+
-----
6+
7+
* added `Client::getOriginRequest()` and `Client::getOriginResponse()` to
8+
have access to the origin request and response objects
9+
* [BC BREAK] The `Symfony\Component\HttpKernel\Client::getRequest()` method now
10+
returns a `Symfony\Component\BrowserKit\Request` instance
11+
* [BC BREAK] The `Symfony\Component\HttpKernel\Client::request()` method now
12+
always returns a `Symfony\Component\BrowserKit\Response` instance
13+
414
2.1.0
515
-----
616

0 commit comments

Comments
 (0)
0