19 declare(strict_types=1);
21 require_once(
"libs/composer/vendor/autoload.php");
28 private const URI_COMPLETE =
'g+it://github.com:8080/someaccount/somerepo/somerepo.git?query_par_1=val_1&query_par_2=val_2#fragment';
30 private const URI_COMPLETE_IPV4 =
'g+it://10.0.0.86:8080/someaccount/somerepo/somerepo.git/?query_par_1=val_1&query_par_2=val_2#fragment';
32 private const URI_COMPLETE_LOCALHOST =
'g+it://localhost:8080/someaccount/somerepo/somerepo.git/?query_par_1=val_1&query_par_2=val_2#fragment';
35 private const URI_NO_PATH_1 =
'g-it://ilias%2Da.de:8080?query_par_1=val_1&query_par_2=val_2#fragment';
36 private const URI_NO_PATH_2 =
'g.it://amaz;on.co.uk:8080/?query_par_1=val_1&query_par_2=val_2#fragment';
38 private const URI_NO_QUERY_1 =
'git://one-letter-top-level.a:8080/someaccount/somerepo/somerepo.git/#fragment';
39 private const URI_NO_QUERY_2 =
'git://github.com:8080/someaccount/somerepo/somerepo.git#fragment';
48 private const URI_PATH =
'git://git$,;hub.com:8080/someacc$,;ount/somerepo/somerepo.git/';
52 private const URI_NO_SCHEMA =
'git$,;hub.com:8080/someacc$,;ount/somerepo/somerepo.git/';
54 private const URI_NO_AUTHORITY =
'git://:8080/someaccount/somerepo/somerepo.git/?query_par_1=val_1&query_par_2=val_2#fragment';
62 private const URI_INVALID =
'https://host.de/ilias.php/"><script>alert(1)</script>?baseClass=ilObjChatroomGUI&cmd=getOSDNotifications&cmdMode=asynch&max_age=15192913';
64 private const URI_FAKEPCENC =
'g+it://github.com:8080/someaccoun%t/somerepo/somerepo.git/?query_par_1=val_1&query_par_2=val_2#fragment';
66 private const URI_REALPCTENC =
'g+it://github.com:8080/someaccount%2Fsomerepo/som%2brepo.git/?par_lower=val_%2b&par_upper=val_%C3%A1#fragment';
69 'par_lower' =>
'val_+',
70 'par_upper' =>
'val_á' 79 private const URI_BASE =
'git://github.com:8080/someaccount/somerepo/somerepo.git';
100 $this->assertEquals(
'g+it', $uri->getSchema());
101 $this->assertEquals(
'10.0.0.86:8080', $uri->getAuthority());
102 $this->assertEquals(
'10.0.0.86', $uri->getHost());
103 $this->assertEquals(8080, $uri->getPort());
104 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
105 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
106 $this->assertEquals(
'fragment', $uri->getFragment());
116 $this->assertEquals(
'http', $uri->getSchema());
117 $this->assertEquals($host, $uri->getAuthority());
118 $this->assertEquals($host, $uri->getHost());
119 $this->assertEquals(null, $uri->getPort());
120 $this->assertEquals(null, $uri->getPath());
121 $this->assertEquals(null, $uri->getQuery());
122 $this->assertEquals(null, $uri->getFragment());
129 [
'[1234:5678:9ABC:DEF0:1234:5678:9ABC:DEF0]'],
130 [
'[1:2:3:4:5:6:7:8]'],
140 [
'[1234:5678:9ABC:DEF0:1234:5678:123.123.123.123]'],
142 [
'[::123.123.123.123]'],
143 [
'[1::123.123.123.123]'],
144 [
'[1:3:4::123.123.123.123]'],
145 [
'[::f:a:123.123.123.123]'],
155 $this->assertEquals(
'g+it', $uri->getSchema());
156 $this->assertEquals(
'localhost:8080', $uri->getAuthority());
157 $this->assertEquals(
'localhost', $uri->getHost());
158 $this->assertEquals(8080, $uri->getPort());
159 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
160 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
161 $this->assertEquals(
'fragment', $uri->getFragment());
170 $this->assertEquals(
'g+it', $uri->getSchema());
171 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
172 $this->assertEquals(
'github.com', $uri->getHost());
173 $this->assertEquals(
'8080', $uri->getPort());
174 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
175 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
176 $this->assertEquals(
'fragment', $uri->getFragment());
184 $this->assertEquals(
'g+it://github.com:8080/someaccount/somerepo/somerepo.git', $uri->getBaseURI());
192 $base_uri = $uri->getBaseURI();
193 $this->assertEquals(
'g+it://github.com:8080/someaccount/somerepo/somerepo.git', $base_uri);
194 $this->assertEquals(
'g+it', $uri->getSchema());
195 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
196 $this->assertEquals(
'github.com', $uri->getHost());
197 $this->assertEquals(
'8080', $uri->getPort());
198 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
199 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
200 $this->assertEquals(
'fragment', $uri->getFragment());
203 $this->assertEquals($base_uri, $uri->getBaseURI());
204 $this->assertEquals(
'g+it', $uri->getSchema());
205 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
206 $this->assertEquals(
'github.com', $uri->getHost());
207 $this->assertEquals(
'8080', $uri->getPort());
208 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
209 $this->assertNull($uri->getQuery());
210 $this->assertNull($uri->getFragment());
220 $this->assertEquals(
'g-it', $uri->getSchema());
221 $this->assertEquals(
'ilias%2Da.de:8080', $uri->getAuthority());
222 $this->assertEquals(
'ilias%2Da.de', $uri->getHost());
223 $this->assertEquals(
'8080', $uri->getPort());
224 $this->assertNull($uri->getPath());
225 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
226 $this->assertEquals(
'fragment', $uri->getFragment());
229 $this->assertEquals(
'g.it', $uri->getSchema());
230 $this->assertEquals(
'amaz;on.co.uk:8080', $uri->getAuthority());
231 $this->assertEquals(
'amaz;on.co.uk', $uri->getHost());
232 $this->assertEquals(
'8080', $uri->getPort());
233 $this->assertNull($uri->getPath());
234 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
235 $this->assertEquals(
'fragment', $uri->getFragment());
244 $this->assertEquals(
'git', $uri->getSchema());
245 $this->assertEquals(
'one-letter-top-level.a:8080', $uri->getAuthority());
246 $this->assertEquals(
'one-letter-top-level.a', $uri->getHost());
247 $this->assertEquals(
'8080', $uri->getPort());
248 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
249 $this->assertNull($uri->getQuery());
250 $this->assertEquals(
'fragment', $uri->getFragment());
253 $this->assertEquals(
'git', $uri->getSchema());
254 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
255 $this->assertEquals(
'github.com', $uri->getHost());
256 $this->assertEquals(
'8080', $uri->getPort());
257 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
258 $this->assertNull($uri->getQuery());
259 $this->assertEquals(
'fragment', $uri->getFragment());
268 $this->assertEquals(
'git', $uri->getSchema());
269 $this->assertEquals(
'github.com', $uri->getAuthority());
270 $this->assertEquals(
'github.com', $uri->getHost());
271 $this->assertNull($uri->getPort());
272 $this->assertNull($uri->getPath());
273 $this->assertEquals(
'query_p$,;:A!\'*+()ar_1=val_1&quer?y_par_2=val_2', $uri->getQuery());
274 $this->assertNull($uri->getFragment());
277 $this->assertEquals(
'git', $uri->getSchema());
278 $this->assertEquals(
'github.com', $uri->getAuthority());
279 $this->assertEquals(
'github.com', $uri->getHost());
280 $this->assertNull($uri->getPort());
281 $this->assertNull($uri->getPath());
282 $this->assertEquals(
'qu/ery_p$,;:A!\'*+()ar_1=val_1&quer?y_par_2=val_2', $uri->getQuery());
283 $this->assertNull($uri->getFragment());
292 $this->assertEquals(
'git', $uri->getSchema());
293 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
294 $this->assertEquals(
'github.com', $uri->getHost());
295 $this->assertEquals(
'8080', $uri->getPort());
296 $this->assertNull($uri->getPath());
297 $this->assertNull($uri->getQuery());
298 $this->assertEquals(
'fragment$,;:A!\'*+()ar_1=val_1&', $uri->getFragment());
306 $this->assertEquals(
'git', $uri->getSchema());
307 $this->assertEquals(
'git$,;hub.com:8080', $uri->getAuthority());
308 $this->assertEquals(
'git$,;hub.com', $uri->getHost());
309 $this->assertEquals(
'8080', $uri->getPort());
310 $this->assertEquals(
'someacc$,;ount/somerepo/somerepo.git', $uri->getPath());
311 $this->assertNull($uri->getQuery());
312 $this->assertEquals(
'frag:A!\'*+()arment', $uri->getFragment());
321 $this->assertEquals(
'git', $uri->getSchema());
322 $this->assertEquals(
'git$,;hub.com:8080', $uri->getAuthority());
323 $this->assertEquals(
'git$,;hub.com', $uri->getHost());
324 $this->assertEquals(
'8080', $uri->getPort());
325 $this->assertEquals(
'someacc$,;ount/somerepo/somerepo.git', $uri->getPath());
326 $this->assertNull($uri->getQuery());
327 $this->assertNull($uri->getFragment());
328 $this->assertEquals(
'git://git$,;hub.com:8080/someacc$,;ount/somerepo/somerepo.git', $uri->getBaseURI());
337 $this->assertEquals(
'git', $uri->getSchema());
338 $this->assertEquals(
'git$,;hub.com', $uri->getAuthority());
339 $this->assertEquals(
'git$,;hub.com', $uri->getHost());
340 $this->assertNull($uri->getPort());
341 $this->assertNull($uri->getPath());
342 $this->assertNull($uri->getQuery());
343 $this->assertNull($uri->getFragment());
344 $this->assertEquals(
'git://git$,;hub.com', $uri->getBaseURI());
352 $this->expectException(TypeError::class);
361 $this->expectException(TypeError::class);
370 $this->expectException(TypeError::class);
379 $this->expectException(InvalidArgumentException::class);
388 $this->expectException(InvalidArgumentException::class);
397 $this->expectException(InvalidArgumentException::class);
407 $this->assertEquals(self::PATH_REALPCTENC, $uri->getPath());
408 $this->assertEquals(self::PARAMS_REALPCTENC, $uri->getParameters());
416 $this->expectException(InvalidArgumentException::class);
425 $this->expectException(InvalidArgumentException::class);
434 $this->expectException(InvalidArgumentException::class);
443 $this->expectException(InvalidArgumentException::class);
452 $this->expectException(InvalidArgumentException::class);
461 $this->expectException(InvalidArgumentException::class);
470 $this->assertEquals(
'g+it', $uri->getSchema());
471 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
472 $this->assertEquals(
'github.com', $uri->getHost());
473 $this->assertEquals(
'8080', $uri->getPort());
474 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
475 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
476 $this->assertEquals(
'fragment', $uri->getFragment());
477 $uri = $uri->withSchema(
'http');
478 $this->assertEquals(
'http', $uri->getSchema());
479 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
480 $this->assertEquals(
'github.com', $uri->getHost());
481 $this->assertEquals(
'8080', $uri->getPort());
482 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
483 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
484 $this->assertEquals(
'fragment', $uri->getFragment());
492 $this->expectException(InvalidArgumentException::class);
494 $uri->withSchema(
'');
502 $this->expectException(InvalidArgumentException::class);
504 $uri->withSchema(
'1aa');
512 $this->assertEquals(
'g+it', $uri->getSchema());
513 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
514 $this->assertEquals(
'github.com', $uri->getHost());
515 $this->assertEquals(
'8080', $uri->getPort());
516 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
517 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
518 $this->assertEquals(
'fragment', $uri->getFragment());
519 $uri = $uri->withPort(80);
520 $this->assertEquals(
'g+it', $uri->getSchema());
521 $this->assertEquals(
'github.com:80', $uri->getAuthority());
522 $this->assertEquals(
'github.com', $uri->getHost());
523 $this->assertEquals(
'80', $uri->getPort());
524 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
525 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
526 $this->assertEquals(
'fragment', $uri->getFragment());
527 $uri = $uri->withPort();
528 $this->assertEquals(
'g+it', $uri->getSchema());
529 $this->assertEquals(
'github.com', $uri->getAuthority());
530 $this->assertEquals(
'github.com', $uri->getHost());
531 $this->assertNull($uri->getPort());
532 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
533 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
534 $this->assertEquals(
'fragment', $uri->getFragment());
543 $this->expectException(TypeError::class);
545 $uri->withPort(
'a111');
553 $this->expectException(TypeError::class);
555 $uri->withPort(
'foo');
563 $this->assertEquals(
'g+it', $uri->getSchema());
564 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
565 $this->assertEquals(
'github.com', $uri->getHost());
566 $this->assertEquals(
'8080', $uri->getPort());
567 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
568 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
569 $this->assertEquals(
'fragment', $uri->getFragment());
570 $uri = $uri->withHost(
'ilias.de');
571 $this->assertEquals(
'g+it', $uri->getSchema());
572 $this->assertEquals(
'ilias.de:8080', $uri->getAuthority());
573 $this->assertEquals(
'ilias.de', $uri->getHost());
574 $this->assertEquals(
'8080', $uri->getPort());
575 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
576 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
577 $this->assertEquals(
'fragment', $uri->getFragment());
586 $this->expectException(InvalidArgumentException::class);
588 $uri->withHost(
'-foo-.de');
596 $this->expectException(InvalidArgumentException::class);
606 $this->expectException(InvalidArgumentException::class);
608 $uri->withHost(
'ilias.de"><script');
616 $this->assertEquals(
'g+it', $uri->getSchema());
617 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
618 $this->assertEquals(
'github.com', $uri->getHost());
619 $this->assertEquals(
'8080', $uri->getPort());
620 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
621 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
622 $this->assertEquals(
'fragment', $uri->getFragment());
623 $uri = $uri->withAuthority(
'www1.ilias.de');
624 $this->assertEquals(
'g+it', $uri->getSchema());
625 $this->assertEquals(
'www1.ilias.de', $uri->getAuthority());
626 $this->assertEquals(
'www1.ilias.de', $uri->getHost());
627 $this->assertNull($uri->getPort());
628 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
629 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
630 $this->assertEquals(
'fragment', $uri->getFragment());
631 $uri = $uri->withAuthority(
'ilias.de:80');
632 $this->assertEquals(
'g+it', $uri->getSchema());
633 $this->assertEquals(
'ilias.de:80', $uri->getAuthority());
634 $this->assertEquals(
'ilias.de', $uri->getHost());
635 $this->assertEquals(
'80', $uri->getPort());
636 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
637 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
638 $this->assertEquals(
'fragment', $uri->getFragment());
639 $uri = $uri->withAuthority(
'a:1');
640 $this->assertEquals(
'g+it', $uri->getSchema());
641 $this->assertEquals(
'a:1', $uri->getAuthority());
642 $this->assertEquals(
'a', $uri->getHost());
643 $this->assertEquals(1, $uri->getPort());
644 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
645 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
646 $this->assertEquals(
'fragment', $uri->getFragment());
647 $uri = $uri->withAuthority(
'a');
648 $this->assertEquals(
'g+it', $uri->getSchema());
649 $this->assertEquals(
'a', $uri->getAuthority());
650 $this->assertEquals(
'a', $uri->getHost());
651 $this->assertNull($uri->getPort());
652 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
653 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
654 $this->assertEquals(
'fragment', $uri->getFragment());
655 $uri = $uri->withAuthority(
'1.2.3.4');
656 $this->assertEquals(
'g+it', $uri->getSchema());
657 $this->assertEquals(
'1.2.3.4', $uri->getAuthority());
658 $this->assertEquals(
'1.2.3.4', $uri->getHost());
659 $this->assertNull($uri->getPort());
660 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
661 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
662 $this->assertEquals(
'fragment', $uri->getFragment());
663 $uri = $uri->withAuthority(
'1.2.3.4:5');
664 $this->assertEquals(
'g+it', $uri->getSchema());
665 $this->assertEquals(
'1.2.3.4:5', $uri->getAuthority());
666 $this->assertEquals(
'1.2.3.4', $uri->getHost());
667 $this->assertEquals(5, $uri->getPort());
668 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
669 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
670 $this->assertEquals(
'fragment', $uri->getFragment());
671 $uri = $uri->withAuthority(
'localhost1');
672 $this->assertEquals(
'g+it', $uri->getSchema());
673 $this->assertEquals(
'localhost1', $uri->getAuthority());
674 $this->assertEquals(
'localhost1', $uri->getHost());
675 $this->assertNull($uri->getPort());
676 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
677 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
678 $this->assertEquals(
'fragment', $uri->getFragment());
679 $uri = $uri->withAuthority(
'localhost1:10');
680 $this->assertEquals(
'g+it', $uri->getSchema());
681 $this->assertEquals(
'localhost1:10', $uri->getAuthority());
682 $this->assertEquals(
'localhost1', $uri->getHost());
683 $this->assertEquals(10, $uri->getPort());
684 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
685 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
686 $this->assertEquals(
'fragment', $uri->getFragment());
694 $this->expectException(InvalidArgumentException::class);
696 $uri->withAuthority(
'-foo-.de');
704 $this->expectException(InvalidArgumentException::class);
706 $uri->withAuthority(
'-bar-.de:6060');
715 $this->expectException(InvalidArgumentException::class);
717 $uri->withHost(
'ilias.de:');
725 $this->expectException(InvalidArgumentException::class);
727 $uri->withHost(
'ilias.de: ');
735 $this->expectException(InvalidArgumentException::class);
737 $uri->withHost(
'ilias.de:aaa');
745 $this->expectException(InvalidArgumentException::class);
747 $uri->withAuthority(
'foo.de&<script>');
756 $this->expectException(InvalidArgumentException::class);
758 $uri->withAuthority(
'foo.de"><script>alert');
767 $this->expectException(InvalidArgumentException::class);
769 $uri->withAuthority(
' :80');
777 $this->assertEquals(
'g+it', $uri->getSchema());
778 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
779 $this->assertEquals(
'github.com', $uri->getHost());
780 $this->assertEquals(
'8080', $uri->getPort());
781 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
782 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
783 $this->assertEquals(
'fragment', $uri->getFragment());
784 $uri = $uri->withPath(
'a/b');
785 $this->assertEquals(
'g+it', $uri->getSchema());
786 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
787 $this->assertEquals(
'github.com', $uri->getHost());
788 $this->assertEquals(
'8080', $uri->getPort());
789 $this->assertEquals(
'a/b', $uri->getPath());
790 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
791 $this->assertEquals(
'fragment', $uri->getFragment());
792 $uri = $uri->withPath();
793 $this->assertEquals(
'g+it', $uri->getSchema());
794 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
795 $this->assertEquals(
'github.com', $uri->getHost());
796 $this->assertEquals(
'8080', $uri->getPort());
797 $this->assertNull($uri->getPath());
798 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
799 $this->assertEquals(
'fragment', $uri->getFragment());
807 $this->expectException(InvalidArgumentException::class);
809 $uri->withPath(
'/<script>/a');
817 $this->expectException(InvalidArgumentException::class);
819 $uri->withPath(
'//a/b');
827 $this->expectException(InvalidArgumentException::class);
829 $uri->withPath(
':a/b');
837 $this->assertEquals(
'g+it', $uri->getSchema());
838 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
839 $this->assertEquals(
'github.com', $uri->getHost());
840 $this->assertEquals(
'8080', $uri->getPort());
841 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
842 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
843 $this->assertEquals(
'fragment', $uri->getFragment());
844 $uri = $uri->withQuery(
'query_par_a1=val_a1');
845 $this->assertEquals(
'g+it', $uri->getSchema());
846 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
847 $this->assertEquals(
'github.com', $uri->getHost());
848 $this->assertEquals(
'8080', $uri->getPort());
849 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
850 $this->assertEquals(
'query_par_a1=val_a1', $uri->getQuery());
851 $this->assertEquals(
'fragment', $uri->getFragment());
852 $uri = $uri->withQuery();
853 $this->assertEquals(
'g+it', $uri->getSchema());
854 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
855 $this->assertEquals(
'github.com', $uri->getHost());
856 $this->assertEquals(
'8080', $uri->getPort());
857 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
858 $this->assertNull($uri->getQuery());
859 $this->assertEquals(
'fragment', $uri->getFragment());
867 $this->expectException(InvalidArgumentException::class);
869 $uri->withQuery(
'<script>a');
877 $this->expectException(InvalidArgumentException::class);
879 $uri->withQuery(
'aa[]');
887 $this->assertEquals(
'g+it', $uri->getSchema());
888 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
889 $this->assertEquals(
'github.com', $uri->getHost());
890 $this->assertEquals(
'8080', $uri->getPort());
891 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
892 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
893 $this->assertEquals(
'fragment', $uri->getFragment());
894 $uri = $uri->withFragment(
'someFragment');
895 $this->assertEquals(
'g+it', $uri->getSchema());
896 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
897 $this->assertEquals(
'github.com', $uri->getHost());
898 $this->assertEquals(
'8080', $uri->getPort());
899 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
900 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
901 $this->assertEquals(
'someFragment', $uri->getFragment());
902 $uri = $uri->withFragment();
903 $this->assertEquals(
'g+it', $uri->getSchema());
904 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
905 $this->assertEquals(
'github.com', $uri->getHost());
906 $this->assertEquals(
'8080', $uri->getPort());
907 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
908 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
909 $this->assertNull($uri->getFragment());
917 $this->expectException(InvalidArgumentException::class);
919 $uri->withFragment(
'aaa[]');
927 $this->expectException(InvalidArgumentException::class);
929 $uri->withFragment(
'script>');
943 $url = self::URI_BASE .
'?' . http_build_query(self::PARAMS);
947 $uri->getParameters()
957 $k = array_keys(self::PARAMS)[0];
960 $uri->getParameter($k)
969 $params = [
'x' => 1,
'y' => 2];
970 $uri = $uri->withParameters(
$params);
973 $uri->getParameters()
983 $uri = $uri->withParameter(
'x', 5);
986 $uri->getParameter(
'x')
998 $uri = $uri->withParameter(
'z', 5);
1001 $uri->getParameters()
1010 $params = [
'x' => 1,
'y' => [10, 11, 12]];
1011 $uri = $uri->withParameters(
$params);
1012 $this->assertEquals(
1014 $uri->getParameters()
1016 $this->assertEquals(
1017 'git://github.com:8080/someaccount/somerepo/somerepo.git?x=1&y%5B0%5D=10&y%5B1%5D=11&y%5B2%5D=12',
1020 $this->assertEquals(
1022 $uri->getParameter(
'y')
1029 $this->assertEquals(
1031 $uri->getParameters()
1034 $this->assertNull($uri->getParameter(
'y'));
1036 $this->assertEquals(
1037 self::URI_NO_QUERY_2,
test_with_authority_invalid_3()
test_with_authority
testWithArrayParameters(ILIAS\Data\URI $uri)
testGetParameters
const URI_HOST_ALPHADIG_START_2
test_with_path_invalid_3()
test_with_path
test_alphadigit_start_host_5()
test_init
const URI_COMPLETE_LOCALHOST
test_base_uri_idempotent($uri)
test_init
const URI_HOST_ALPHADIG_START_3
const const URI_HOST_ALPHADIG_START_1
test_with_authority_invalid_7()
test_with_authority
test_with_authority_invalid_6()
test_with_authority
test_authority_only()
test_init
test_wrong_authority_in_schema_1()
test_init
test_with_authority_invalid_4()
test_with_authority
test_with_path_invalid_2()
test_with_path
test_with_fragment($uri)
test_init
test_realpctenc()
test_init
test_with_authority_invalid_2()
test_with_authority
test_with_host_invalid_4()
test_with_host
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
test_alphadigit_start_host_4()
test_init
test_fakepcenc()
test_init
const URI_AUTHORITY_AND_FRAGMENT
Class ChatMainBarProvider .
const URI_HOST_ALPHADIG_START_5
test_with_authority_invalid_1()
test_with_authority
testAppendParameter(ILIAS\Data\URI $uri)
testWithParameters
test_no_authority()
test_init
testGetParameter(ILIAS\Data\URI $uri)
testGetParameters
test_with_host_invalid_1()
test_with_host
test_with_schema($uri)
test_init
test_wrong_char_in_schema()
test_init
test_with_query_invalid_1()
test_with_query
const URI_WRONG_AUTHORITY_1
testIPv6(string $host)
test_init provideIPv6addresses
test_with_fragment_invalid_1()
test_with_fragment
test_with_query_invalid_2()
test_with_query
test_with_fragment_invalid_2()
test_with_fragment
testWithParameters(ILIAS\Data\URI $uri)
testGetParameters
const URI_HOST_ALPHADIG_START_4
test_with_port_invalid_1()
test_with_port
test_with_host_invalid_3()
test_with_host
The scope of this class is split ilias-conform URI's into components.
test_with_query($uri)
test_init
test_with_authority_invalid_8()
test_with_authority
test_authority_path_fragment()
test_init
test_base_uri($uri)
test_init
test_with_host($uri)
test_init
test_with_path($uri)
test_init
test_authority_and_query()
test_init
const URI_AUTHORITY_AND_QUERY_2
test_with_port($uri)
test_init
testSubstituteParameter(ILIAS\Data\URI $uri)
testWithParameters
test_with_authority($uri)
test_init
test_alphadigit_start_host_3()
test_init
test_alphadigit_start_host_2()
test_init
test_with_authority_invalid_5()
test_with_authority
test_no_schema()
test_init
test_localhost()
test_init
test_with_schema_invalid_1()
test_with_schema
test_uri_invalid()
test_init
test_components($uri)
test_init
test_with_port_invalid_2()
test_with_port
test_authority_and_fragment()
test_init
const URI_AUTHORITY_PATH_FRAGMENT
test_wrong_authority_in_schema_2()
test_init
const URI_AUTHORITY_AND_QUERY_1
test_alphadigit_start_host()
test_init
test_with_path_invalid_1()
test_with_path
test_with_schema_invalid_2()
test_with_schema
const URI_WRONG_AUTHORITY_2