‪TYPO3CMS  ‪main
ServerRequestTest.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 
20 use PHPUnit\Framework\Attributes\Test;
24 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
25 
31 final class ‪ServerRequestTest extends UnitTestCase
32 {
34 
35  protected function ‪setUp(): void
36  {
37  parent::setUp();
38  $this->request = new ‪ServerRequest();
39  }
40 
41  #[Test]
42  public function ‪getServerParamsAreEmptyByDefault(): void
43  {
44  self::assertEmpty($this->request->getServerParams());
45  }
46 
47  #[Test]
48  public function ‪getQueryParamsAreEmptyByDefault(): void
49  {
50  self::assertEmpty($this->request->getQueryParams());
51  }
52 
53  #[Test]
55  {
56  $value = ['foo' => 'bar'];
57  ‪$request = $this->request->‪withQueryParams($value);
58  self::assertNotSame($this->request, ‪$request);
59  self::assertEquals($value, ‪$request->‪getQueryParams());
60  }
61 
62  #[Test]
63  public function ‪getCookieParamsAreEmptyByDefault(): void
64  {
65  self::assertEmpty($this->request->getCookieParams());
66  }
67 
68  #[Test]
70  {
71  $value = ['foo' => 'bar'];
72  ‪$request = $this->request->‪withCookieParams($value);
73  self::assertNotSame($this->request, ‪$request);
74  self::assertEquals($value, ‪$request->‪getCookieParams());
75  }
76 
77  #[Test]
78  public function ‪getUploadedFilesAreEmptyByDefault(): void
79  {
80  self::assertEmpty($this->request->getUploadedFiles());
81  }
82 
83  #[Test]
84  public function ‪getParsedBodyIsEmptyByDefault(): void
85  {
86  self::assertEmpty($this->request->getParsedBody());
87  }
88 
89  #[Test]
91  {
92  $value = ['foo' => 'bar'];
93  ‪$request = $this->request->‪withParsedBody($value);
94  self::assertNotSame($this->request, ‪$request);
95  self::assertEquals($value, ‪$request->‪getParsedBody());
96  }
97 
98  #[Test]
99  public function ‪getAttributesAreEmptyByDefault(): void
100  {
101  self::assertEmpty($this->request->getAttributes());
102  }
103 
104  #[Test]
106  {
107  ‪$request = $this->request->‪withAttribute('foo', 'bar');
108  self::assertNotSame($this->request, ‪$request);
109  self::assertEquals('bar', ‪$request->‪getAttribute('foo'));
110 
111  return ‪$request;
112  }
113 
114  #[Test]
116  {
118  $new = ‪$request->‪withoutAttribute('foo');
119  self::assertNotSame(‪$request, $new);
120  self::assertNull($new->getAttribute('foo', null));
121  }
122 
123  #[Test]
124  public function ‪constructorUsesProvidedArguments(): void
125  {
126  $server = [
127  'foo' => 'bar',
128  'baz' => 'bat',
129  ];
130 
131  $server['server'] = true;
132 
133  $files = [
134  'files' => new ‪UploadedFile('php://temp', 0, 0),
135  ];
136 
137  $uri = new ‪Uri('http://example.com');
138  $method = 'POST';
139  $headers = [
140  'host' => ['example.com'],
141  ];
142 
144  $uri,
145  $method,
146  'php://memory',
147  $headers,
148  $server,
149  $files
150  );
151 
152  self::assertEquals($server, ‪$request->‪getServerParams());
153  self::assertEquals($files, ‪$request->‪getUploadedFiles());
154 
155  self::assertSame($uri, ‪$request->‪getUri());
156  self::assertEquals($method, ‪$request->‪getMethod());
157  self::assertEquals($headers, ‪$request->‪getHeaders());
158 
159  $body = ‪$request->‪getBody();
160  $r = new \ReflectionProperty($body, 'stream');
161  $stream = $r->getValue($body);
162  self::assertEquals('php://memory', $stream);
163  }
164 }
‪TYPO3\CMS\Core\Http\Message\getBody
‪StreamInterface getBody()
Definition: Message.php:287
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\withQueryParamsMutatorReturnsCloneWithChanges
‪withQueryParamsMutatorReturnsCloneWithChanges()
Definition: ServerRequestTest.php:54
‪TYPO3\CMS\Core\Http\ServerRequest\withQueryParams
‪static withQueryParams(array $query)
Definition: ServerRequest.php:159
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\$request
‪ServerRequest $request
Definition: ServerRequestTest.php:33
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest
Definition: ServerRequestTest.php:32
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\setUp
‪setUp()
Definition: ServerRequestTest.php:35
‪TYPO3\CMS\Core\Tests\Unit\Http
Definition: ApplicationTypeTest.php:18
‪TYPO3\CMS\Core\Http\ServerRequest\getCookieParams
‪getCookieParams()
Definition: ServerRequest.php:93
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\constructorUsesProvidedArguments
‪constructorUsesProvidedArguments()
Definition: ServerRequestTest.php:124
‪TYPO3\CMS\Core\Http\ServerRequest\getParsedBody
‪array object null getParsedBody()
Definition: ServerRequest.php:217
‪TYPO3\CMS\Core\Http\Request\getUri
‪UriInterface getUri()
Definition: Request.php:285
‪TYPO3\CMS\Core\Http\Request\getMethod
‪getMethod()
Definition: Request.php:250
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\withoutAttributeReturnsCloneWithoutAttribute
‪withoutAttributeReturnsCloneWithoutAttribute()
Definition: ServerRequestTest.php:115
‪TYPO3\CMS\Core\Http\Uri
Definition: Uri.php:30
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\getQueryParamsAreEmptyByDefault
‪getQueryParamsAreEmptyByDefault()
Definition: ServerRequestTest.php:48
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\withCookieParamsMutatorReturnsCloneWithChanges
‪withCookieParamsMutatorReturnsCloneWithChanges()
Definition: ServerRequestTest.php:69
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\getParsedBodyIsEmptyByDefault
‪getParsedBodyIsEmptyByDefault()
Definition: ServerRequestTest.php:84
‪TYPO3\CMS\Core\Http\ServerRequest\getQueryParams
‪getQueryParams()
Definition: ServerRequest.php:132
‪TYPO3\CMS\Core\Http\ServerRequest\withoutAttribute
‪static withoutAttribute(string $name)
Definition: ServerRequest.php:332
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:39
‪TYPO3\CMS\Core\Http\ServerRequest\withCookieParams
‪static withCookieParams(array $cookies)
Definition: ServerRequest.php:115
‪TYPO3\CMS\Core\Http\Request\getHeaders
‪array getHeaders()
Definition: Request.php:145
‪TYPO3\CMS\Core\Http\ServerRequest\getUploadedFiles
‪array getUploadedFiles()
Definition: ServerRequest.php:178
‪TYPO3\CMS\Core\Http\ServerRequest\withParsedBody
‪static withParsedBody($data)
Definition: ServerRequest.php:250
‪TYPO3\CMS\Core\Http\ServerRequest\getServerParams
‪getServerParams()
Definition: ServerRequest.php:80
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\getAttributesAreEmptyByDefault
‪getAttributesAreEmptyByDefault()
Definition: ServerRequestTest.php:99
‪TYPO3\CMS\Core\Http\UploadedFile
Definition: UploadedFile.php:34
‪TYPO3\CMS\Core\Http\ServerRequest\getAttribute
‪mixed getAttribute(string $name, $default=null)
Definition: ServerRequest.php:289
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\getServerParamsAreEmptyByDefault
‪getServerParamsAreEmptyByDefault()
Definition: ServerRequestTest.php:42
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\getCookieParamsAreEmptyByDefault
‪getCookieParamsAreEmptyByDefault()
Definition: ServerRequestTest.php:63
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\withAttributeMutatorReturnsCloneWithChanges
‪withAttributeMutatorReturnsCloneWithChanges()
Definition: ServerRequestTest.php:105
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\getUploadedFilesAreEmptyByDefault
‪getUploadedFilesAreEmptyByDefault()
Definition: ServerRequestTest.php:78
‪TYPO3\CMS\Core\Tests\Unit\Http\ServerRequestTest\withParsedBodyMutatorReturnsCloneWithChanges
‪withParsedBodyMutatorReturnsCloneWithChanges()
Definition: ServerRequestTest.php:90
‪TYPO3\CMS\Core\Http\ServerRequest\withAttribute
‪static withAttribute(string $name, $value)
Definition: ServerRequest.php:310