4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\HttpFoundation\Tests;
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\HttpFoundation\Request;
16 use Symfony\Component\HttpFoundation\RequestStack;
18 class RequestStackTest extends TestCase
20 public function testGetCurrentRequest()
22 $requestStack = new RequestStack();
23 $this->assertNull($requestStack->getCurrentRequest());
25 $request = Request::create('/foo');
27 $requestStack->push($request);
28 $this->assertSame($request, $requestStack->getCurrentRequest());
30 $this->assertSame($request, $requestStack->pop());
31 $this->assertNull($requestStack->getCurrentRequest());
33 $this->assertNull($requestStack->pop());
36 public function testGetMasterRequest()
38 $requestStack = new RequestStack();
39 $this->assertNull($requestStack->getMasterRequest());
41 $masterRequest = Request::create('/foo');
42 $subRequest = Request::create('/bar');
44 $requestStack->push($masterRequest);
45 $requestStack->push($subRequest);
47 $this->assertSame($masterRequest, $requestStack->getMasterRequest());
50 public function testGetParentRequest()
52 $requestStack = new RequestStack();
53 $this->assertNull($requestStack->getParentRequest());
55 $masterRequest = Request::create('/foo');
57 $requestStack->push($masterRequest);
58 $this->assertNull($requestStack->getParentRequest());
60 $firstSubRequest = Request::create('/bar');
62 $requestStack->push($firstSubRequest);
63 $this->assertSame($masterRequest, $requestStack->getParentRequest());
65 $secondSubRequest = Request::create('/baz');
67 $requestStack->push($secondSubRequest);
68 $this->assertSame($firstSubRequest, $requestStack->getParentRequest());