‪TYPO3CMS  ‪main
UriTest.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 
21 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
22 
23 final class ‪UriTest extends UnitTestCase
24 {
28  public function ‪constructorSetsAllProperties(): void
29  {
30  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
31  self::assertEquals('https', $uri->getScheme());
32  self::assertEquals('user:pass', $uri->getUserInfo());
33  self::assertEquals('local.example.com', $uri->getHost());
34  self::assertEquals(3001, $uri->getPort());
35  self::assertEquals('user:pass@local.example.com:3001', $uri->getAuthority());
36  self::assertEquals('/foo', $uri->getPath());
37  self::assertEquals('bar=baz', $uri->getQuery());
38  self::assertEquals('quz', $uri->getFragment());
39  }
40 
41  public static function ‪canSerializeToStringDataProvider(): array
42  {
43  return [
44  'full uri' => [ 'https://user:pass@local.example.com:3001/foo?bar=baz#quz' ],
45  'double slash' => [ 'https://user:pass@local.example.com:3001//' ],
46  ];
47  }
48 
53  public function ‪canSerializeToString(string $uri): void
54  {
55  self::assertEquals($uri, (string)(new ‪Uri($uri)));
56  }
57 
62  {
63  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
64  $new = $uri->withScheme('http');
65  self::assertNotSame($uri, $new);
66  self::assertEquals('http', $new->getScheme());
67  self::assertEquals('http://user:pass@local.example.com:3001/foo?bar=baz#quz', (string)$new);
68  }
69 
74  {
75  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
76  $new = $uri->withUserInfo('matthew');
77  self::assertNotSame($uri, $new);
78  self::assertEquals('matthew', $new->getUserInfo());
79  self::assertEquals('https://matthew@local.example.com:3001/foo?bar=baz#quz', (string)$new);
80  }
81 
86  {
87  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
88  $new = $uri->withUserInfo('matthew', 'zf2');
89  self::assertNotSame($uri, $new);
90  self::assertEquals('matthew:zf2', $new->getUserInfo());
91  self::assertEquals('https://matthew:zf2@local.example.com:3001/foo?bar=baz#quz', (string)$new);
92  }
93 
98  {
99  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
100  $new = $uri->withHost('framework.zend.com');
101  self::assertNotSame($uri, $new);
102  self::assertEquals('framework.zend.com', $new->getHost());
103  self::assertEquals('https://user:pass@framework.zend.com:3001/foo?bar=baz#quz', (string)$new);
104  }
105 
110  {
111  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
112  $new = $uri->withPort(null);
113  self::assertEquals(
114  'https://user:pass@local.example.com/foo?bar=baz#quz',
115  (string)$new
116  );
117  }
118  public static function ‪validPortsDataProvider(): array
119  {
120  return [
121  'int 1' => [1],
122  'int 3000' => [3000],
123  'int 65535' => [65535],
124  ];
125  }
126 
132  {
133  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
134  $new = $uri->withPort($port);
135  self::assertNotSame($uri, $new);
136  self::assertEquals($port, $new->getPort());
137  self::assertEquals(
138  sprintf('https://user:pass@local.example.com:%d/foo?bar=baz#quz', $port),
139  (string)$new
140  );
141  }
142 
143  public static function ‪invalidPortsDataProviderRange(): array
144  {
145  return [
146  'zero' => [0],
147  'too-small' => [-1],
148  'too-big' => [65536],
149  ];
150  }
151 
157  {
158  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
159  $this->expectException(\InvalidArgumentException::class);
160  $this->expectExceptionCode(1436717326);
161  $uri->withPort($port);
162  }
163 
168  {
169  $subject = new ‪Uri('http://www.example.com:80');
170  self::assertEquals('http://www.example.com', (string)$subject);
171  }
172 
177  {
178  $subject = new ‪Uri('www.example.com:80');
179  self::assertEquals('//www.example.com:80', (string)$subject);
180  }
181 
186  {
187  $subject = new ‪Uri('www.example.com');
188  self::assertEquals('/www.example.com', (string)$subject);
189  }
190 
195  {
196  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
197  $new = $uri->withPath('/bar/baz');
198  self::assertNotSame($uri, $new);
199  self::assertEquals('/bar/baz', $new->getPath());
200  self::assertEquals('https://user:pass@local.example.com:3001/bar/baz?bar=baz#quz', (string)$new);
201  }
202 
207  {
208  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
209  $this->expectException(\InvalidArgumentException::class);
210  $this->expectExceptionCode(1436717330);
211  $uri->withPath('/bar/baz?bat=quz');
212  }
213 
218  {
219  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
220  $this->expectException(\InvalidArgumentException::class);
221  $this->expectExceptionCode(1436717332);
222  $uri->withPath('/bar/baz#bat');
223  }
224 
229  {
230  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
231  $new = $uri->withQuery('baz=bat');
232  self::assertNotSame($uri, $new);
233  self::assertEquals('baz=bat', $new->getQuery());
234  self::assertEquals('https://user:pass@local.example.com:3001/foo?baz=bat#quz', (string)$new);
235  }
236 
241  {
242  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
243  $this->expectException(\InvalidArgumentException::class);
244  $this->expectExceptionCode(1436717336);
245  $uri->withQuery('baz=bat#quz');
246  }
247 
252  {
253  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
254  $new = $uri->withFragment('qat');
255  self::assertNotSame($uri, $new);
256  self::assertEquals('qat', $new->getFragment());
257  self::assertEquals('https://user:pass@local.example.com:3001/foo?bar=baz#qat', (string)$new);
258  }
259 
260  public static function ‪authorityInfoDataProvider(): array
261  {
262  return [
263  'host-only' => ['http://foo.com/bar', 'foo.com'],
264  'host-port' => ['http://foo.com:3000/bar', 'foo.com:3000'],
265  'user-host' => ['http://me@foo.com/bar', 'me@foo.com'],
266  'user-host-port' => ['http://me@foo.com:3000/bar', 'me@foo.com:3000'],
267  ];
268  }
269 
274  public function ‪getAuthorityReturnsExpectedValues(‪$url, $expected): void
275  {
276  $uri = new ‪Uri(‪$url);
277  self::assertEquals($expected, $uri->getAuthority());
278  }
279 
283  public function ‪canEmitOriginFormUrl(): void
284  {
285  ‪$url = '/foo/bar?baz=bat';
286  $uri = new ‪Uri(‪$url);
287  self::assertEquals(‪$url, (string)$uri);
288  }
289 
294  {
295  $uri = new ‪Uri('http://example.com/foo');
296  $new = $uri->withPath('');
297  self::assertEquals('', $new->getPath());
298  }
299 
304  {
305  $uri = new ‪Uri('http://example.com');
306  self::assertEquals('http://example.com', (string)$uri);
307  }
308 
313  {
314  $uri = new ‪Uri('?foo=bar');
315  self::assertEquals('', $uri->getPath());
316  }
317 
322  {
323  $uri = new ‪Uri('?foo=bar');
324  self::assertEquals('?foo=bar', (string)$uri);
325  }
326 
327  public static function ‪invalidConstructorUrisDataProvider(): array
328  {
329  return [
330  'null' => [null],
331  'true' => [true],
332  'false' => [false],
333  'int' => [1],
334  'float' => [1.1],
335  'array' => [['http://example.com/']],
336  'object' => [(object)['uri' => 'http://example.com/']],
337  ];
338  }
339 
344  {
345  $this->expectException(\InvalidArgumentException::class);
346  new ‪Uri($uri);
347  }
348 
353  {
354  $this->expectException(\InvalidArgumentException::class);
355  new ‪Uri('http:///www.php-fig.org/');
356  }
357 
361  public function ‪withSchemeStripsOffDelimiter(): void
362  {
363  $uri = new ‪Uri('http://example.com');
364  $new = $uri->withScheme('https://');
365  self::assertEquals('https', $new->getScheme());
366  }
367 
368  public static function ‪invalidSchemesDataProvider(): array
369  {
370  return [
371  'mailto' => ['mailto'],
372  'ftp' => ['ftp'],
373  'telnet' => ['telnet'],
374  'ssh' => ['ssh'],
375  'git' => ['git'],
376  ];
377  }
378 
384  {
385  $this->expectException(\InvalidArgumentException::class);
386  $this->expectExceptionCode(1436717338);
387  new ‪Uri($scheme . '://example.com');
388  }
389 
395  {
396  $uri = new ‪Uri('http://example.com');
397  $this->expectException(\InvalidArgumentException::class);
398  $this->expectExceptionCode(1436717338);
399  $uri->withScheme($scheme);
400  }
401 
406  {
407  $uri = new ‪Uri('http://example.com');
408  $new = $uri->withPath('foo/bar');
409  self::assertEquals('foo/bar', $new->getPath());
410  }
411 
416  {
417  $uri = new ‪Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz');
418  $new = $uri->withScheme('');
419  self::assertNotSame($uri, $new);
420  self::assertNotSame((string)$uri, (string)$new);
421  self::assertEquals('', $new->getScheme());
422  self::assertEquals('//user:pass@local.example.com:3001/foo?bar=baz#quz', (string)$new);
423  }
424 
429  {
430  $uri = new ‪Uri('http://example.com');
431  $new = $uri->withPath('foo/bar');
432  self::assertEquals('http://example.com/foo/bar', $new->__toString());
433  }
434 
439  {
440  $uri = new ‪Uri('http://example.com');
441  $new = $uri->withQuery('?foo=bar');
442  self::assertEquals('foo=bar', $new->getQuery());
443  }
444 
449  {
450  $uri = new ‪Uri('http://example.com');
451  $new = $uri->withFragment('#/foo/bar');
452  self::assertEquals('/foo/bar', $new->getFragment());
453  }
454 
455  public static function ‪standardSchemePortCombinationsDataProvider(): array
456  {
457  return [
458  'http' => ['http', 80],
459  'https' => ['https', 443],
460  ];
461  }
462 
467  public function ‪getAuthorityOmitsPortForStandardSchemePortCombinations($scheme, $port): void
468  {
469  $uri = (new ‪Uri())
470  ->withHost('example.com')
471  ->withScheme($scheme)
472  ->withPort($port);
473  self::assertEquals('example.com', $uri->getAuthority());
474  }
475 
479  public function ‪getPathIsProperlyEncoded(): void
480  {
481  $uri = (new ‪Uri())->withPath('/foo^bar');
482  $expected = '/foo%5Ebar';
483  self::assertEquals($expected, $uri->getPath());
484  }
485 
489  public function ‪getPathDoesNotBecomeDoubleEncoded(): void
490  {
491  $uri = (new ‪Uri())->withPath('/foo%5Ebar');
492  $expected = '/foo%5Ebar';
493  self::assertEquals($expected, $uri->getPath());
494  }
495 
496  public static function ‪queryStringsForEncodingDataProvider(): array
497  {
498  return [
499  'key-only' => ['k^ey', 'k%5Eey'],
500  'key-value' => ['k^ey=valu`', 'k%5Eey=valu%60'],
501  'array-key-only' => ['key[]', 'key%5B%5D'],
502  'array-key-value' => ['key[]=valu`', 'key%5B%5D=valu%60'],
503  'complex' => ['k^ey&key[]=valu`&f<>=`bar', 'k%5Eey&key%5B%5D=valu%60&f%3C%3E=%60bar'],
504  ];
505  }
506 
511  public function ‪getQueryIsProperlyEncoded($query, $expected): void
512  {
513  $uri = (new ‪Uri())->withQuery($query);
514  self::assertEquals($expected, $uri->getQuery());
515  }
516 
521  public function ‪getQueryIsNotDoubleEncoded($query, $expected): void
522  {
523  $uri = (new ‪Uri())->withQuery($expected);
524  self::assertEquals($expected, $uri->getQuery());
525  }
526 
530  public function ‪getFragmentIsProperlyEncoded(): void
531  {
532  $uri = (new ‪Uri())->withFragment('/p^th?key^=`bar#b@z');
533  $expected = '/p%5Eth?key%5E=%60bar%23b@z';
534  self::assertEquals($expected, $uri->getFragment());
535  }
536 
540  public function ‪getFragmentIsNotDoubleEncoded(): void
541  {
542  $expected = '/p%5Eth?key%5E=%60bar%23b@z';
543  $uri = (new ‪Uri())->withFragment($expected);
544  self::assertEquals($expected, $uri->getFragment());
545  }
546 }
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\settingEmptyPathOnAbsoluteUriReturnsAnEmptyPath
‪settingEmptyPathOnAbsoluteUriReturnsAnEmptyPath()
Definition: UriTest.php:293
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\invalidSchemesDataProvider
‪static invalidSchemesDataProvider()
Definition: UriTest.php:368
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withHostReturnsNewInstanceWithProvidedHost
‪withHostReturnsNewInstanceWithProvidedHost()
Definition: UriTest.php:97
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPathRaisesExceptionForInvalidPathsWithQuery
‪withPathRaisesExceptionForInvalidPathsWithQuery()
Definition: UriTest.php:206
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withFragmentStripsFragmentPrefixIfPresent
‪withFragmentStripsFragmentPrefixIfPresent()
Definition: UriTest.php:448
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPathIsNotPrefixedWithSlashIfSetWithoutOne
‪withPathIsNotPrefixedWithSlashIfSetWithoutOne()
Definition: UriTest.php:405
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\invalidConstructorUrisDataProvider
‪static invalidConstructorUrisDataProvider()
Definition: UriTest.php:327
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getFragmentIsProperlyEncoded
‪getFragmentIsProperlyEncoded()
Definition: UriTest.php:530
‪TYPO3\CMS\Core\Tests\Unit\Http
Definition: ApplicationTypeTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\noPortAndNoSchemeDoesNotRenderPort
‪noPortAndNoSchemeDoesNotRenderPort()
Definition: UriTest.php:185
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withSchemeUsingUnsupportedSchemeRaisesAnException
‪withSchemeUsingUnsupportedSchemeRaisesAnException($scheme)
Definition: UriTest.php:394
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\standardSchemePortCombinationsDataProvider
‪static standardSchemePortCombinationsDataProvider()
Definition: UriTest.php:455
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\canEmitOriginFormUrl
‪canEmitOriginFormUrl()
Definition: UriTest.php:283
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\invalidPortsDataProviderRange
‪static invalidPortsDataProviderRange()
Definition: UriTest.php:143
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPathReturnsNewInstanceWithProvidedPath
‪withPathReturnsNewInstanceWithProvidedPath()
Definition: UriTest.php:194
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getQueryIsProperlyEncoded
‪getQueryIsProperlyEncoded($query, $expected)
Definition: UriTest.php:511
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\standardPortAndSchemeDoesNotRenderPort
‪standardPortAndSchemeDoesNotRenderPort()
Definition: UriTest.php:167
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\constructorRaisesExceptionForSeriouslyMalformedURI
‪constructorRaisesExceptionForSeriouslyMalformedURI()
Definition: UriTest.php:352
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\constructorRaisesExceptionForNonStringURI
‪constructorRaisesExceptionForNonStringURI($uri)
Definition: UriTest.php:343
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getPathIsProperlyEncoded
‪getPathIsProperlyEncoded()
Definition: UriTest.php:479
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\stringRepresentationOfOriginFormWithNoPathRetainsEmptyPath
‪stringRepresentationOfOriginFormWithNoPathRetainsEmptyPath()
Definition: UriTest.php:321
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withSchemeReturnsNewInstanceWithNewScheme
‪withSchemeReturnsNewInstanceWithNewScheme()
Definition: UriTest.php:61
‪TYPO3\CMS\Core\Http\Uri
Definition: Uri.php:30
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withSchemeStripsOffDelimiter
‪withSchemeStripsOffDelimiter()
Definition: UriTest.php:361
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getAuthorityReturnsExpectedValues
‪getAuthorityReturnsExpectedValues($url, $expected)
Definition: UriTest.php:274
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getQueryIsNotDoubleEncoded
‪getQueryIsNotDoubleEncoded($query, $expected)
Definition: UriTest.php:521
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPathNotSlashPrefixedIsEmittedWithSlashDelimiterWhenUriIsCastToString
‪withPathNotSlashPrefixedIsEmittedWithSlashDelimiterWhenUriIsCastToString()
Definition: UriTest.php:428
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\canSerializeToString
‪canSerializeToString(string $uri)
Definition: UriTest.php:53
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\authorityInfoDataProvider
‪static authorityInfoDataProvider()
Definition: UriTest.php:260
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPathRaisesExceptionForInvalidPathsWithFragment
‪withPathRaisesExceptionForInvalidPathsWithFragment()
Definition: UriTest.php:217
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getPathOnOriginFormRemainsAnEmptyPath
‪getPathOnOriginFormRemainsAnEmptyPath()
Definition: UriTest.php:312
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\canSerializeToStringDataProvider
‪static canSerializeToStringDataProvider()
Definition: UriTest.php:41
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\standardPortAndNoSchemeDoesRenderPort
‪standardPortAndNoSchemeDoesRenderPort()
Definition: UriTest.php:176
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getAuthorityOmitsPortForStandardSchemePortCombinations
‪getAuthorityOmitsPortForStandardSchemePortCombinations($scheme, $port)
Definition: UriTest.php:467
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\constructorSetsAllProperties
‪constructorSetsAllProperties()
Definition: UriTest.php:28
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withQueryRaisesExceptionForInvalidQueryStringsByFragment
‪withQueryRaisesExceptionForInvalidQueryStringsByFragment()
Definition: UriTest.php:240
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\queryStringsForEncodingDataProvider
‪static queryStringsForEncodingDataProvider()
Definition: UriTest.php:496
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getPathDoesNotBecomeDoubleEncoded
‪getPathDoesNotBecomeDoubleEncoded()
Definition: UriTest.php:489
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withEmptySchemeReturnsNewInstanceWithAbsoluteUri
‪withEmptySchemeReturnsNewInstanceWithAbsoluteUri()
Definition: UriTest.php:415
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\getFragmentIsNotDoubleEncoded
‪getFragmentIsNotDoubleEncoded()
Definition: UriTest.php:540
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withUserInfoReturnsNewInstanceWithProvidedUserAndPassword
‪withUserInfoReturnsNewInstanceWithProvidedUserAndPassword()
Definition: UriTest.php:85
‪TYPO3\CMS\Webhooks\Message\$url
‪identifier readonly UriInterface $url
Definition: LoginErrorOccurredMessage.php:36
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\stringRepresentationOfAbsoluteUriWithNoPathSetsAnEmptyPath
‪stringRepresentationOfAbsoluteUriWithNoPathSetsAnEmptyPath()
Definition: UriTest.php:303
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\validPortsDataProvider
‪static validPortsDataProvider()
Definition: UriTest.php:118
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPortRaisesExceptionForInvalidPortsByRange
‪withPortRaisesExceptionForInvalidPortsByRange($port)
Definition: UriTest.php:156
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withQueryReturnsNewInstanceWithProvidedQuery
‪withQueryReturnsNewInstanceWithProvidedQuery()
Definition: UriTest.php:228
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPortAndNullValueReturnsInstanceWithProvidedPort
‪withPortAndNullValueReturnsInstanceWithProvidedPort()
Definition: UriTest.php:109
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withQueryStripsQueryPrefixIfPresent
‪withQueryStripsQueryPrefixIfPresent()
Definition: UriTest.php:438
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withUserInfoReturnsNewInstanceWithProvidedUser
‪withUserInfoReturnsNewInstanceWithProvidedUser()
Definition: UriTest.php:73
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withPortReturnsNewInstanceWithProvidedPort
‪withPortReturnsNewInstanceWithProvidedPort($port)
Definition: UriTest.php:131
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\withFragmentReturnsNewInstanceWithProvidedFragment
‪withFragmentReturnsNewInstanceWithProvidedFragment()
Definition: UriTest.php:251
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest
Definition: UriTest.php:24
‪TYPO3\CMS\Core\Tests\Unit\Http\UriTest\constructWithUnsupportedSchemeRaisesAnException
‪constructWithUnsupportedSchemeRaisesAnException($scheme)
Definition: UriTest.php:383