Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 34915f6

Browse files
minor #53500 do not mock RequestStack in tests (xabbuh)
This PR was merged into the 7.1 branch. Discussion ---------- do not mock `RequestStack` in tests | Q | A | ------------- | --- | Branch? | 7.1 | Bug fix? | no | New feature? | no | Deprecations? | no | Issues | | License | MIT Commits ------- 527ef4a do not mock the RequestStack class
2 parents 2974ce7 + 527ef4a commit 34915f6

File tree

12 files changed

+70
-97
lines changed

12 files changed

+70
-97
lines changed

src/Symfony/Bridge/Twig/Tests/AppVariableTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -291,12 +291,15 @@ public function testGetCurrentRouteParametersWithRequestStackNotSet()
291291
$this->appVariable->getCurrent_route_parameters();
292292
}
293293

294-
protected function setRequestStack($request)
294+
protected function setRequestStack(?Request $request)
295295
{
296-
$requestStackMock = $this->createMock(RequestStack::class);
297-
$requestStackMock->method('getCurrentRequest')->willReturn($request);
296+
$requestStack = new RequestStack();
298297

299-
$this->appVariable->setRequestStack($requestStackMock);
298+
if (null !== $request) {
299+
$requestStack->push($request);
300+
}
301+
302+
$this->appVariable->setRequestStack($requestStack);
300303
}
301304

302305
protected function setTokenStorage($user)

src/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ public function testRenderFragment()
4848

4949
public function testUnknownFragmentRenderer()
5050
{
51-
$context = $this->createMock(RequestStack::class);
52-
$renderer = new FragmentHandler($context);
51+
$renderer = new FragmentHandler(new RequestStack());
5352

5453
$this->expectException(\InvalidArgumentException::class);
5554
$this->expectExceptionMessage('The "inline" renderer does not exist.');
@@ -90,9 +89,9 @@ protected function getFragmentHandler($return)
9089
$strategy->expects($this->once())->method('getName')->willReturn('inline');
9190
$strategy->expects($this->once())->method('render')->will($return);
9291

93-
$context = $this->createMock(RequestStack::class);
92+
$context = new RequestStack();
9493

95-
$context->expects($this->any())->method('getCurrentRequest')->willReturn(Request::create('/'));
94+
$context->push(Request::create('/'));
9695

9796
return new FragmentHandler($context, [$strategy], false);
9897
}

src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -243,11 +243,6 @@ private function getKernel(array $bundles, $useDispatcher = false)
243243
{
244244
$container = $this->createMock(ContainerInterface::class);
245245

246-
$requestStack = $this->createMock(RequestStack::class);
247-
$requestStack->expects($this->any())
248-
->method('push')
249-
;
250-
251246
if ($useDispatcher) {
252247
$dispatcher = $this->createMock(EventDispatcherInterface::class);
253248
$dispatcher
@@ -258,7 +253,7 @@ private function getKernel(array $bundles, $useDispatcher = false)
258253
$container->expects($this->atLeastOnce())
259254
->method('get')
260255
->willReturnMap([
261-
['.virtual_request_stack', 2, $requestStack],
256+
['.virtual_request_stack', 2, new RequestStack()],
262257
['event_dispatcher', 1, $dispatcher],
263258
])
264259
;

src/Symfony/Bundle/SecurityBundle/Tests/SecurityTest.php

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ public function testLogin()
127127
{
128128
$request = new Request();
129129
$authenticator = $this->createMock(AuthenticatorInterface::class);
130-
$requestStack = $this->createMock(RequestStack::class);
130+
$requestStack = new RequestStack();
131+
$requestStack->push($request);
131132
$firewallMap = $this->createMock(FirewallMap::class);
132133
$firewall = new FirewallConfig('main', 'main');
133134
$userAuthenticator = $this->createMock(UserAuthenticatorInterface::class);
@@ -146,7 +147,6 @@ public function testLogin()
146147
])
147148
;
148149

149-
$requestStack->expects($this->once())->method('getCurrentRequest')->willReturn($request);
150150
$firewallMap->expects($this->once())->method('getFirewallConfig')->willReturn($firewall);
151151
$userAuthenticator->expects($this->once())->method('authenticateUser')->with($user, $authenticator, $request);
152152
$userChecker->expects($this->once())->method('checkPreAuth')->with($user);
@@ -173,7 +173,8 @@ public function testLoginReturnsAuthenticatorResponse()
173173
{
174174
$request = new Request();
175175
$authenticator = $this->createMock(AuthenticatorInterface::class);
176-
$requestStack = $this->createMock(RequestStack::class);
176+
$requestStack = new RequestStack();
177+
$requestStack->push($request);
177178
$firewallMap = $this->createMock(FirewallMap::class);
178179
$firewall = new FirewallConfig('main', 'main');
179180
$user = $this->createMock(UserInterface::class);
@@ -192,7 +193,6 @@ public function testLoginReturnsAuthenticatorResponse()
192193
])
193194
;
194195

195-
$requestStack->expects($this->once())->method('getCurrentRequest')->willReturn($request);
196196
$firewallMap->expects($this->once())->method('getFirewallConfig')->willReturn($firewall);
197197
$userChecker->expects($this->once())->method('checkPreAuth')->with($user);
198198
$userAuthenticator->expects($this->once())->method('authenticateUser')
@@ -223,8 +223,8 @@ public function testLoginReturnsAuthenticatorResponse()
223223
public function testLoginWithoutAuthenticatorThrows()
224224
{
225225
$request = new Request();
226-
$authenticator = $this->createMock(AuthenticatorInterface::class);
227-
$requestStack = $this->createMock(RequestStack::class);
226+
$requestStack = new RequestStack();
227+
$requestStack->push($request);
228228
$firewallMap = $this->createMock(FirewallMap::class);
229229
$firewall = new FirewallConfig('main', 'main');
230230
$user = $this->createMock(UserInterface::class);
@@ -241,7 +241,6 @@ public function testLoginWithoutAuthenticatorThrows()
241241
])
242242
;
243243

244-
$requestStack->expects($this->once())->method('getCurrentRequest')->willReturn($request);
245244
$firewallMap->expects($this->once())->method('getFirewallConfig')->willReturn($firewall);
246245

247246
$security = new Security($container, ['main' => null]);
@@ -277,8 +276,8 @@ public function testLoginWithoutRequestContext()
277276
public function testLogout()
278277
{
279278
$request = new Request();
280-
$requestStack = $this->createMock(RequestStack::class);
281-
$requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
279+
$requestStack = new RequestStack();
280+
$requestStack->push($request);
282281

283282
$token = $this->createMock(TokenInterface::class);
284283
$token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));
@@ -328,8 +327,8 @@ public function testLogout()
328327
public function testLogoutWithoutFirewall()
329328
{
330329
$request = new Request();
331-
$requestStack = $this->createMock(RequestStack::class);
332-
$requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
330+
$requestStack = new RequestStack();
331+
$requestStack->push($request);
333332

334333
$token = $this->createMock(TokenInterface::class);
335334
$token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));
@@ -366,8 +365,8 @@ public function testLogoutWithoutFirewall()
366365
public function testLogoutWithResponse()
367366
{
368367
$request = new Request();
369-
$requestStack = $this->createMock(RequestStack::class);
370-
$requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
368+
$requestStack = new RequestStack();
369+
$requestStack->push($request);
371370

372371
$token = $this->createMock(TokenInterface::class);
373372
$token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));
@@ -422,8 +421,8 @@ public function testLogoutWithResponse()
422421
public function testLogoutWithValidCsrf()
423422
{
424423
$request = new Request(['_csrf_token' => 'dummytoken']);
425-
$requestStack = $this->createMock(RequestStack::class);
426-
$requestStack->expects($this->once())->method('getMainRequest')->willReturn($request);
424+
$requestStack = new RequestStack();
425+
$requestStack->push($request);
427426

428427
$token = $this->createMock(TokenInterface::class);
429428
$token->method('getUser')->willReturn(new InMemoryUser('foo', 'bar'));

src/Symfony/Component/Asset/Tests/Context/RequestStackContextTest.php

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ class RequestStackContextTest extends TestCase
2020
{
2121
public function testGetBasePathEmpty()
2222
{
23-
$requestStack = $this->createMock(RequestStack::class);
24-
$requestStackContext = new RequestStackContext($requestStack);
23+
$requestStackContext = new RequestStackContext(new RequestStack());
2524

2625
$this->assertEmpty($requestStackContext->getBasePath());
2726
}
@@ -33,9 +32,8 @@ public function testGetBasePathSet()
3332
$request = $this->createMock(Request::class);
3433
$request->method('getBasePath')
3534
->willReturn($testBasePath);
36-
$requestStack = $this->createMock(RequestStack::class);
37-
$requestStack->method('getMainRequest')
38-
->willReturn($request);
35+
$requestStack = new RequestStack();
36+
$requestStack->push($request);
3937

4038
$requestStackContext = new RequestStackContext($requestStack);
4139

@@ -44,8 +42,7 @@ public function testGetBasePathSet()
4442

4543
public function testIsSecureFalse()
4644
{
47-
$requestStack = $this->createMock(RequestStack::class);
48-
$requestStackContext = new RequestStackContext($requestStack);
45+
$requestStackContext = new RequestStackContext(new RequestStack());
4946

5047
$this->assertFalse($requestStackContext->isSecure());
5148
}
@@ -55,9 +52,8 @@ public function testIsSecureTrue()
5552
$request = $this->createMock(Request::class);
5653
$request->method('isSecure')
5754
->willReturn(true);
58-
$requestStack = $this->createMock(RequestStack::class);
59-
$requestStack->method('getMainRequest')
60-
->willReturn($request);
55+
$requestStack = new RequestStack();
56+
$requestStack->push($request);
6157

6258
$requestStackContext = new RequestStackContext($requestStack);
6359

@@ -66,8 +62,7 @@ public function testIsSecureTrue()
6662

6763
public function testDefaultContext()
6864
{
69-
$requestStack = $this->createMock(RequestStack::class);
70-
$requestStackContext = new RequestStackContext($requestStack, 'default-path', true);
65+
$requestStackContext = new RequestStackContext(new RequestStack(), 'default-path', true);
7166

7267
$this->assertSame('default-path', $requestStackContext->getBasePath());
7368
$this->assertTrue($requestStackContext->isSecure());

src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public function testRender()
2727
$renderer->expects($this->once())->method('getName')->willReturn('foo');
2828
$renderer->expects($this->any())->method('render')->willReturn(new Response());
2929

30-
$requestStack = $this->createMock(RequestStack::class);
31-
$requestStack->expects($this->any())->method('getCurrentRequest')->willReturn(Request::create('/'));
30+
$requestStack = new RequestStack();
31+
$requestStack->push(Request::create('/'));
3232

3333
$container = $this->createMock(ContainerInterface::class);
3434
$container->expects($this->once())->method('has')->with('foo')->willReturn(true);

src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Component\HttpKernel\Tests\EventListener;
1313

14-
use PHPUnit\Framework\MockObject\MockObject;
1514
use PHPUnit\Framework\TestCase;
1615
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1716
use Symfony\Component\HttpFoundation\Request;
@@ -26,16 +25,9 @@
2625

2726
class LocaleListenerTest extends TestCase
2827
{
29-
private MockObject&RequestStack $requestStack;
30-
31-
protected function setUp(): void
32-
{
33-
$this->requestStack = $this->createMock(RequestStack::class);
34-
}
35-
3628
public function testIsAnEventSubscriber()
3729
{
38-
$this->assertInstanceOf(EventSubscriberInterface::class, new LocaleListener($this->requestStack));
30+
$this->assertInstanceOf(EventSubscriberInterface::class, new LocaleListener(new RequestStack()));
3931
}
4032

4133
public function testRegisteredEvent()
@@ -51,7 +43,7 @@ public function testRegisteredEvent()
5143

5244
public function testDefaultLocale()
5345
{
54-
$listener = new LocaleListener($this->requestStack, 'fr');
46+
$listener = new LocaleListener(new RequestStack(), 'fr');
5547
$event = $this->getEvent($request = Request::create('/'));
5648

5749
$listener->setDefaultLocale($event);
@@ -64,7 +56,7 @@ public function testLocaleFromRequestAttribute()
6456
$request->cookies->set(session_name(), 'value');
6557

6658
$request->attributes->set('_locale', 'es');
67-
$listener = new LocaleListener($this->requestStack, 'fr');
59+
$listener = new LocaleListener(new RequestStack(), 'fr');
6860
$event = $this->getEvent($request);
6961

7062
$listener->onKernelRequest($event);
@@ -83,7 +75,7 @@ public function testLocaleSetForRoutingContext()
8375
$request = Request::create('/');
8476

8577
$request->attributes->set('_locale', 'es');
86-
$listener = new LocaleListener($this->requestStack, 'fr', $router);
78+
$listener = new LocaleListener(new RequestStack(), 'fr', $router);
8779
$listener->onKernelRequest($this->getEvent($request));
8880
}
8981

@@ -99,19 +91,23 @@ public function testRouterResetWithParentRequestOnKernelFinishRequest()
9991
$parentRequest = Request::create('/');
10092
$parentRequest->setLocale('es');
10193

102-
$this->requestStack->expects($this->once())->method('getParentRequest')->willReturn($parentRequest);
94+
$requestStack = new RequestStack();
95+
$requestStack->push($parentRequest);
96+
97+
$subRequest = new Request();
98+
$requestStack->push($subRequest);
10399

104-
$event = new FinishRequestEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST);
100+
$event = new FinishRequestEvent($this->createMock(HttpKernelInterface::class), $subRequest, HttpKernelInterface::MAIN_REQUEST);
105101

106-
$listener = new LocaleListener($this->requestStack, 'fr', $router);
102+
$listener = new LocaleListener($requestStack, 'fr', $router);
107103
$listener->onKernelFinishRequest($event);
108104
}
109105

110106
public function testRequestLocaleIsNotOverridden()
111107
{
112108
$request = Request::create('/');
113109
$request->setLocale('de');
114-
$listener = new LocaleListener($this->requestStack, 'fr');
110+
$listener = new LocaleListener(new RequestStack(), 'fr');
115111
$event = $this->getEvent($request);
116112

117113
$listener->onKernelRequest($event);
@@ -123,7 +119,7 @@ public function testRequestPreferredLocaleFromAcceptLanguageHeader()
123119
$request = Request::create('/');
124120
$request->headers->set('Accept-Language', 'fr-FR,fr;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6,es;q=0.5');
125121

126-
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['de', 'fr']);
122+
$listener = new LocaleListener(new RequestStack(), 'de', null, true, ['de', 'fr']);
127123
$event = $this->getEvent($request);
128124

129125
$listener->setDefaultLocale($event);
@@ -134,7 +130,7 @@ public function testRequestPreferredLocaleFromAcceptLanguageHeader()
134130
public function testRequestDefaultLocaleIfNoAcceptLanguageHeaderIsPresent()
135131
{
136132
$request = new Request();
137-
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['lt', 'de']);
133+
$listener = new LocaleListener(new RequestStack(), 'de', null, true, ['lt', 'de']);
138134
$event = $this->getEvent($request);
139135

140136
$listener->setDefaultLocale($event);
@@ -145,7 +141,7 @@ public function testRequestDefaultLocaleIfNoAcceptLanguageHeaderIsPresent()
145141
public function testRequestVaryByLanguageAttributeIsSetIfUsingAcceptLanguageHeader()
146142
{
147143
$request = new Request();
148-
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['lt', 'de']);
144+
$listener = new LocaleListener(new RequestStack(), 'de', null, true, ['lt', 'de']);
149145
$event = $this->getEvent($request);
150146

151147
$listener->setDefaultLocale($event);
@@ -158,7 +154,7 @@ public function testRequestSecondPreferredLocaleFromAcceptLanguageHeader()
158154
$request = Request::create('/');
159155
$request->headers->set('Accept-Language', 'fr-FR,fr;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6,es;q=0.5');
160156

161-
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['de', 'en']);
157+
$listener = new LocaleListener(new RequestStack(), 'de', null, true, ['de', 'en']);
162158
$event = $this->getEvent($request);
163159

164160
$listener->setDefaultLocale($event);
@@ -171,7 +167,7 @@ public function testDontUseAcceptLanguageHeaderIfNotEnabled()
171167
$request = Request::create('/');
172168
$request->headers->set('Accept-Language', 'fr-FR,fr;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6,es;q=0.5');
173169

174-
$listener = new LocaleListener($this->requestStack, 'de', null, false, ['de', 'en']);
170+
$listener = new LocaleListener(new RequestStack(), 'de', null, false, ['de', 'en']);
175171
$event = $this->getEvent($request);
176172

177173
$listener->setDefaultLocale($event);
@@ -184,7 +180,7 @@ public function testRequestUnavailablePreferredLocaleFromAcceptLanguageHeader()
184180
$request = Request::create('/');
185181
$request->headers->set('Accept-Language', 'fr-FR,fr;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6,es;q=0.5');
186182

187-
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['de', 'it']);
183+
$listener = new LocaleListener(new RequestStack(), 'de', null, true, ['de', 'it']);
188184
$event = $this->getEvent($request);
189185

190186
$listener->setDefaultLocale($event);
@@ -197,7 +193,7 @@ public function testRequestNoLocaleFromAcceptLanguageHeader()
197193
$request = Request::create('/');
198194
$request->headers->set('Accept-Language', 'fr-FR,fr;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6,es;q=0.5');
199195

200-
$listener = new LocaleListener($this->requestStack, 'de', null, true);
196+
$listener = new LocaleListener(new RequestStack(), 'de', null, true);
201197
$event = $this->getEvent($request);
202198

203199
$listener->setDefaultLocale($event);
@@ -211,7 +207,7 @@ public function testRequestAttributeLocaleNotOverridenFromAcceptLanguageHeader()
211207
$request->attributes->set('_locale', 'it');
212208
$request->headers->set('Accept-Language', 'fr-FR,fr;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6,es;q=0.5');
213209

214-
$listener = new LocaleListener($this->requestStack, 'de', null, true, ['fr', 'en']);
210+
$listener = new LocaleListener(new RequestStack(), 'de', null, true, ['fr', 'en']);
215211
$event = $this->getEvent($request);
216212

217213
$listener->setDefaultLocale($event);

0 commit comments

Comments
 (0)