‪TYPO3CMS  11.5
RequestTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
23 
27 class ‪RequestTest extends UnitTestCase
28 {
33  {
34  $request = new ‪Request();
35  $request->setArgument('someArgumentName', 'theValue');
36  self::assertEquals('theValue', $request->getArgument('someArgumentName'));
37  }
38 
43  {
44  $this->expectException(InvalidArgumentNameException::class);
45  $this->expectExceptionCode(1210858767);
46  $request = new ‪Request();
47  $request->setArgument('', 'theValue');
48  }
49 
54  {
55  $arguments = ['key1' => 'value1', 'key2' => 'value2'];
56  $request = new ‪Request();
57  $request->setArgument('someKey', 'shouldBeOverridden');
58  $request->setArguments($arguments);
59  $actualResult = $request->getArguments();
60  self::assertEquals($arguments, $actualResult);
61  }
62 
67  {
68  $request = $this->getMockBuilder(Request::class)
69  ->onlyMethods(['setControllerExtensionName'])
70  ->getMock();
71  $request->method('setControllerExtensionName')->with('MyExtension');
72  $request->setArgument('@extension', 'MyExtension');
73  self::assertFalse($request->hasArgument('@extension'));
74  }
75 
80  {
81  $request = $this->getMockBuilder(Request::class)
82  ->onlyMethods(['setControllerName'])
83  ->getMock();
84  $request->method('setControllerName')->with('MyController');
85  $request->setArgument('@controller', 'MyController');
86  self::assertFalse($request->hasArgument('@controller'));
87  }
88 
93  {
94  $request = $this->getMockBuilder(Request::class)
95  ->onlyMethods(['setControllerActionName'])
96  ->getMock();
97  $request->method('setControllerActionName')->with('foo');
98  $request->setArgument('@action', 'foo');
99  self::assertFalse($request->hasArgument('@action'));
100  }
101 
106  {
107  $request = $this->getMockBuilder(Request::class)
108  ->onlyMethods(['setFormat'])
109  ->getMock();
110  $request->method('setFormat')->with('txt');
111  $request->setArgument('@format', 'txt');
112  self::assertFalse($request->hasArgument('@format'));
113  }
114 
119  {
120  $request = new ‪Request();
121  $request->setArgument('__referrer', 'foo');
122  self::assertFalse($request->hasArgument('__referrer'));
123  }
124 
129  {
130  $request = new ‪Request();
131  $request->setArgument('__referrer', 'foo');
132  self::assertSame('foo', $request->getInternalArgument('__referrer'));
133  }
134 
139  {
140  $request = new ‪Request();
141  self::assertNull($request->getInternalArgument('__nonExistingInternalArgument'));
142  }
143 
148  {
149  $request = new ‪Request();
150  $object = new \stdClass();
151  $request->setArgument('__theKey', $object);
152  self::assertSame($object, $request->getInternalArgument('__theKey'));
153  }
154 
159  {
160  $arguments = [
161  'firstArgument' => 'firstValue',
162  'dænishÅrgument' => 'görman välju',
163  '3a' => '3v',
164  ];
165  $request = new ‪Request();
166  $request->setArguments($arguments);
167  self::assertEquals($arguments, $request->getArguments());
168  }
169 
174  {
175  $request = new ‪Request();
176  $request->setArgument('existingArgument', 'theValue');
177  self::assertTrue($request->hasArgument('existingArgument'));
178  self::assertFalse($request->hasArgument('notExistingArgument'));
179  }
180 
184  public function ‪theActionNameCanBeSetAndRetrieved(): void
185  {
186  $request = new ‪Request();
187  $request->setControllerActionName('theAction');
188  self::assertEquals('theAction', $request->getControllerActionName());
189  }
190 
195  {
196  $request = new ‪Request();
197  $request->setFormat('html');
198  self::assertEquals('html', $request->getFormat());
199  }
200 
205  {
206  $request = new ‪Request();
207  self::assertFalse($request->isDispatched());
208  $request->setDispatched(true);
209  self::assertTrue($request->isDispatched());
210  }
211 
218  {
219  return [
220  'Vendor TYPO3\CMS, extension, controller given' => [
221  [
222  'extensionName' => 'Ext',
223  'controllerName' => 'Foo',
224  ],
225  'TYPO3\\CMS\\Ext\\Controller\\FooController',
226  ],
227  'Vendor TYPO3\CMS, extension, subpackage, controller given' => [
228  [
229  'extensionName' => 'Fluid',
230  'controllerName' => 'Paginate',
231  ],
232  'TYPO3\\CMS\\Fluid\\ViewHelpers\\Widget\\Controller\\PaginateController',
233  ],
234  'Vendor VENDOR, extension, controller given' => [
235  [
236  'extensionName' => 'Ext',
237  'controllerName' => 'Foo',
238  ],
239  'VENDOR\\Ext\\Controller\\FooController',
240  ],
241  'Vendor VENDOR, extension subpackage, controller given' => [
242  [
243  'extensionName' => 'Ext',
244  'controllerName' => 'Foo',
245  ],
246  'VENDOR\\Ext\\ViewHelpers\\Widget\\Controller\\FooController',
247  ],
248  ];
249  }
250 
258  public function ‪setControllerObjectNameResolvesControllerObjectNameArgumentsCorrectly($controllerArguments, $controllerObjectName): void
259  {
260  $request = new ‪Request();
261  $request->setControllerObjectName($controllerObjectName);
262 
263  $actualControllerArguments = [
264  'extensionName' => $request->getControllerExtensionName(),
265  'controllerName' => $request->getControllerName(),
266  ];
267 
268  self::assertSame($controllerArguments, $actualControllerArguments);
269  }
270 }
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\internalArgumentsShouldNotBeReturnedAsNormalArgument
‪internalArgumentsShouldNotBeReturnedAsNormalArgument()
Definition: RequestTest.php:118
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\theRepresentationFormatCanBeSetAndRetrieved
‪theRepresentationFormatCanBeSetAndRetrieved()
Definition: RequestTest.php:194
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\aSingleArgumentCanBeSetWithSetArgumentAndRetrievedWithGetArgument
‪aSingleArgumentCanBeSetWithSetArgumentAndRetrievedWithGetArgument()
Definition: RequestTest.php:32
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setArgumentShouldSetControllerNameIfControllerIsGiven
‪setArgumentShouldSetControllerNameIfControllerIsGiven()
Definition: RequestTest.php:79
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest
Definition: RequestTest.php:28
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setArgumentShouldSetControllerExtensionNameIfPackageKeyIsGiven
‪setArgumentShouldSetControllerExtensionNameIfPackageKeyIsGiven()
Definition: RequestTest.php:66
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setArgumentShouldSetControllerActionNameIfActionIsGiven
‪setArgumentShouldSetControllerActionNameIfActionIsGiven()
Definition: RequestTest.php:92
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\internalArgumentsShouldBeStoredAsInternalArguments
‪internalArgumentsShouldBeStoredAsInternalArguments()
Definition: RequestTest.php:128
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setArgumentShouldSetFormatIfFormatIsGiven
‪setArgumentShouldSetFormatIfFormatIsGiven()
Definition: RequestTest.php:105
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setArgumentsOverridesAllExistingArguments
‪setArgumentsOverridesAllExistingArguments()
Definition: RequestTest.php:53
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\multipleArgumentsCanBeSetWithSetArgumentsAndRetrievedWithGetArguments
‪multipleArgumentsCanBeSetWithSetArgumentsAndRetrievedWithGetArguments()
Definition: RequestTest.php:158
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setArgumentAcceptsObjectIfArgumentIsInternal
‪setArgumentAcceptsObjectIfArgumentIsInternal()
Definition: RequestTest.php:147
‪TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentNameException
Definition: InvalidArgumentNameException.php:25
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\hasArgumentTellsIfAnArgumentExists
‪hasArgumentTellsIfAnArgumentExists()
Definition: RequestTest.php:173
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\controllerArgumentsAndExpectedObjectName
‪array controllerArgumentsAndExpectedObjectName()
Definition: RequestTest.php:217
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setArgumentThrowsExceptionIfTheGivenArgumentNameIsAnEmptyString
‪setArgumentThrowsExceptionIfTheGivenArgumentNameIsAnEmptyString()
Definition: RequestTest.php:42
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\setControllerObjectNameResolvesControllerObjectNameArgumentsCorrectly
‪setControllerObjectNameResolvesControllerObjectNameArgumentsCorrectly($controllerArguments, $controllerObjectName)
Definition: RequestTest.php:258
‪TYPO3\CMS\Extbase\Mvc\Request
Definition: Request.php:39
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\hasInternalArgumentShouldReturnNullIfArgumentNotFound
‪hasInternalArgumentShouldReturnNullIfArgumentNotFound()
Definition: RequestTest.php:138
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\theActionNameCanBeSetAndRetrieved
‪theActionNameCanBeSetAndRetrieved()
Definition: RequestTest.php:184
‪TYPO3\CMS\Extbase\Tests\Unit\Mvc\RequestTest\aFlagCanBeSetIfTheRequestNeedsToBeDispatchedAgain
‪aFlagCanBeSetIfTheRequestNeedsToBeDispatchedAgain()
Definition: RequestTest.php:204