3 declare(strict_types=1);
5 require_once(
"libs/composer/vendor/autoload.php");
12 private const URI_COMPLETE =
'g+it://github.com:8080/someaccount/somerepo/somerepo.git?query_par_1=val_1&query_par_2=val_2#fragment';
14 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';
16 private const URI_COMPLETE_LOCALHOST =
'g+it://localhost:8080/someaccount/somerepo/somerepo.git/?query_par_1=val_1&query_par_2=val_2#fragment';
19 private const URI_NO_PATH_1 =
'g-it://ilias%2Da.de:8080?query_par_1=val_1&query_par_2=val_2#fragment';
20 private const URI_NO_PATH_2 =
'g.it://amaz;on.co.uk:8080/?query_par_1=val_1&query_par_2=val_2#fragment';
22 private const URI_NO_QUERY_1 =
'git://one-letter-top-level.a:8080/someaccount/somerepo/somerepo.git/#fragment';
23 private const URI_NO_QUERY_2 =
'git://github.com:8080/someaccount/somerepo/somerepo.git#fragment';
32 private const URI_PATH =
'git://git$,;hub.com:8080/someacc$,;ount/somerepo/somerepo.git/';
36 private const URI_NO_SCHEMA =
'git$,;hub.com:8080/someacc$,;ount/somerepo/somerepo.git/';
38 private const URI_NO_AUTHORITY =
'git://:8080/someaccount/somerepo/somerepo.git/?query_par_1=val_1&query_par_2=val_2#fragment';
46 private const URI_INVALID =
'https://host.de/ilias.php/"><script>alert(1)</script>?baseClass=ilObjChatroomGUI&cmd=getOSDNotifications&cmdMode=asynch&max_age=15192913';
48 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';
50 private const URI_REALPCTENC =
'g+it://github.com:8080/someaccount%2Fsomerepo/som%2brepo.git/?par_lower=val_%2b&par_upper=val_%C3%A1#fragment';
53 'par_lower' =>
'val_+',
54 'par_upper' =>
'val_รก' 63 private const URI_BASE =
'git://github.com:8080/someaccount/somerepo/somerepo.git';
84 $this->assertEquals(
'g+it', $uri->getSchema());
85 $this->assertEquals(
'10.0.0.86:8080', $uri->getAuthority());
86 $this->assertEquals(
'10.0.0.86', $uri->getHost());
87 $this->assertEquals(8080, $uri->getPort());
88 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
89 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
90 $this->assertEquals(
'fragment', $uri->getFragment());
100 $this->assertEquals(
'http', $uri->getSchema());
101 $this->assertEquals($host, $uri->getAuthority());
102 $this->assertEquals($host, $uri->getHost());
103 $this->assertEquals(null, $uri->getPort());
104 $this->assertEquals(null, $uri->getPath());
105 $this->assertEquals(null, $uri->getQuery());
106 $this->assertEquals(null, $uri->getFragment());
113 [
'[1234:5678:9ABC:DEF0:1234:5678:9ABC:DEF0]'],
114 [
'[1:2:3:4:5:6:7:8]'],
124 [
'[1234:5678:9ABC:DEF0:1234:5678:123.123.123.123]'],
126 [
'[::123.123.123.123]'],
127 [
'[1::123.123.123.123]'],
128 [
'[1:3:4::123.123.123.123]'],
129 [
'[::f:a:123.123.123.123]'],
139 $this->assertEquals(
'g+it', $uri->getSchema());
140 $this->assertEquals(
'localhost:8080', $uri->getAuthority());
141 $this->assertEquals(
'localhost', $uri->getHost());
142 $this->assertEquals(8080, $uri->getPort());
143 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
144 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
145 $this->assertEquals(
'fragment', $uri->getFragment());
154 $this->assertEquals(
'g+it', $uri->getSchema());
155 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
156 $this->assertEquals(
'github.com', $uri->getHost());
157 $this->assertEquals(
'8080', $uri->getPort());
158 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
159 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
160 $this->assertEquals(
'fragment', $uri->getFragment());
168 $this->assertEquals(
'g+it://github.com:8080/someaccount/somerepo/somerepo.git', $uri->getBaseURI());
176 $base_uri = $uri->getBaseURI();
177 $this->assertEquals(
'g+it://github.com:8080/someaccount/somerepo/somerepo.git', $base_uri);
178 $this->assertEquals(
'g+it', $uri->getSchema());
179 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
180 $this->assertEquals(
'github.com', $uri->getHost());
181 $this->assertEquals(
'8080', $uri->getPort());
182 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
183 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
184 $this->assertEquals(
'fragment', $uri->getFragment());
187 $this->assertEquals($base_uri, $uri->getBaseURI());
188 $this->assertEquals(
'g+it', $uri->getSchema());
189 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
190 $this->assertEquals(
'github.com', $uri->getHost());
191 $this->assertEquals(
'8080', $uri->getPort());
192 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
193 $this->assertNull($uri->getQuery());
194 $this->assertNull($uri->getFragment());
204 $this->assertEquals(
'g-it', $uri->getSchema());
205 $this->assertEquals(
'ilias%2Da.de:8080', $uri->getAuthority());
206 $this->assertEquals(
'ilias%2Da.de', $uri->getHost());
207 $this->assertEquals(
'8080', $uri->getPort());
208 $this->assertNull($uri->getPath());
209 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
210 $this->assertEquals(
'fragment', $uri->getFragment());
213 $this->assertEquals(
'g.it', $uri->getSchema());
214 $this->assertEquals(
'amaz;on.co.uk:8080', $uri->getAuthority());
215 $this->assertEquals(
'amaz;on.co.uk', $uri->getHost());
216 $this->assertEquals(
'8080', $uri->getPort());
217 $this->assertNull($uri->getPath());
218 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
219 $this->assertEquals(
'fragment', $uri->getFragment());
228 $this->assertEquals(
'git', $uri->getSchema());
229 $this->assertEquals(
'one-letter-top-level.a:8080', $uri->getAuthority());
230 $this->assertEquals(
'one-letter-top-level.a', $uri->getHost());
231 $this->assertEquals(
'8080', $uri->getPort());
232 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
233 $this->assertNull($uri->getQuery());
234 $this->assertEquals(
'fragment', $uri->getFragment());
237 $this->assertEquals(
'git', $uri->getSchema());
238 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
239 $this->assertEquals(
'github.com', $uri->getHost());
240 $this->assertEquals(
'8080', $uri->getPort());
241 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
242 $this->assertNull($uri->getQuery());
243 $this->assertEquals(
'fragment', $uri->getFragment());
252 $this->assertEquals(
'git', $uri->getSchema());
253 $this->assertEquals(
'github.com', $uri->getAuthority());
254 $this->assertEquals(
'github.com', $uri->getHost());
255 $this->assertNull($uri->getPort());
256 $this->assertNull($uri->getPath());
257 $this->assertEquals(
'query_p$,;:A!\'*+()ar_1=val_1&quer?y_par_2=val_2', $uri->getQuery());
258 $this->assertNull($uri->getFragment());
261 $this->assertEquals(
'git', $uri->getSchema());
262 $this->assertEquals(
'github.com', $uri->getAuthority());
263 $this->assertEquals(
'github.com', $uri->getHost());
264 $this->assertNull($uri->getPort());
265 $this->assertNull($uri->getPath());
266 $this->assertEquals(
'qu/ery_p$,;:A!\'*+()ar_1=val_1&quer?y_par_2=val_2', $uri->getQuery());
267 $this->assertNull($uri->getFragment());
276 $this->assertEquals(
'git', $uri->getSchema());
277 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
278 $this->assertEquals(
'github.com', $uri->getHost());
279 $this->assertEquals(
'8080', $uri->getPort());
280 $this->assertNull($uri->getPath());
281 $this->assertNull($uri->getQuery());
282 $this->assertEquals(
'fragment$,;:A!\'*+()ar_1=val_1&', $uri->getFragment());
290 $this->assertEquals(
'git', $uri->getSchema());
291 $this->assertEquals(
'git$,;hub.com:8080', $uri->getAuthority());
292 $this->assertEquals(
'git$,;hub.com', $uri->getHost());
293 $this->assertEquals(
'8080', $uri->getPort());
294 $this->assertEquals(
'someacc$,;ount/somerepo/somerepo.git', $uri->getPath());
295 $this->assertNull($uri->getQuery());
296 $this->assertEquals(
'frag:A!\'*+()arment', $uri->getFragment());
305 $this->assertEquals(
'git', $uri->getSchema());
306 $this->assertEquals(
'git$,;hub.com:8080', $uri->getAuthority());
307 $this->assertEquals(
'git$,;hub.com', $uri->getHost());
308 $this->assertEquals(
'8080', $uri->getPort());
309 $this->assertEquals(
'someacc$,;ount/somerepo/somerepo.git', $uri->getPath());
310 $this->assertNull($uri->getQuery());
311 $this->assertNull($uri->getFragment());
312 $this->assertEquals(
'git://git$,;hub.com:8080/someacc$,;ount/somerepo/somerepo.git', $uri->getBaseURI());
321 $this->assertEquals(
'git', $uri->getSchema());
322 $this->assertEquals(
'git$,;hub.com', $uri->getAuthority());
323 $this->assertEquals(
'git$,;hub.com', $uri->getHost());
324 $this->assertNull($uri->getPort());
325 $this->assertNull($uri->getPath());
326 $this->assertNull($uri->getQuery());
327 $this->assertNull($uri->getFragment());
328 $this->assertEquals(
'git://git$,;hub.com', $uri->getBaseURI());
336 $this->expectException(TypeError::class);
345 $this->expectException(TypeError::class);
354 $this->expectException(TypeError::class);
363 $this->expectException(InvalidArgumentException::class);
372 $this->expectException(InvalidArgumentException::class);
381 $this->expectException(InvalidArgumentException::class);
391 $this->assertEquals(self::PATH_REALPCTENC, $uri->getPath());
392 $this->assertEquals(self::PARAMS_REALPCTENC, $uri->getParameters());
400 $this->expectException(InvalidArgumentException::class);
409 $this->expectException(InvalidArgumentException::class);
418 $this->expectException(InvalidArgumentException::class);
427 $this->expectException(InvalidArgumentException::class);
436 $this->expectException(InvalidArgumentException::class);
445 $this->expectException(InvalidArgumentException::class);
454 $this->assertEquals(
'g+it', $uri->getSchema());
455 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
456 $this->assertEquals(
'github.com', $uri->getHost());
457 $this->assertEquals(
'8080', $uri->getPort());
458 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
459 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
460 $this->assertEquals(
'fragment', $uri->getFragment());
461 $uri = $uri->withSchema(
'http');
462 $this->assertEquals(
'http', $uri->getSchema());
463 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
464 $this->assertEquals(
'github.com', $uri->getHost());
465 $this->assertEquals(
'8080', $uri->getPort());
466 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
467 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
468 $this->assertEquals(
'fragment', $uri->getFragment());
476 $this->expectException(InvalidArgumentException::class);
478 $uri->withSchema(
'');
486 $this->expectException(InvalidArgumentException::class);
488 $uri->withSchema(
'1aa');
496 $this->assertEquals(
'g+it', $uri->getSchema());
497 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
498 $this->assertEquals(
'github.com', $uri->getHost());
499 $this->assertEquals(
'8080', $uri->getPort());
500 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
501 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
502 $this->assertEquals(
'fragment', $uri->getFragment());
503 $uri = $uri->withPort(80);
504 $this->assertEquals(
'g+it', $uri->getSchema());
505 $this->assertEquals(
'github.com:80', $uri->getAuthority());
506 $this->assertEquals(
'github.com', $uri->getHost());
507 $this->assertEquals(
'80', $uri->getPort());
508 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
509 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
510 $this->assertEquals(
'fragment', $uri->getFragment());
511 $uri = $uri->withPort();
512 $this->assertEquals(
'g+it', $uri->getSchema());
513 $this->assertEquals(
'github.com', $uri->getAuthority());
514 $this->assertEquals(
'github.com', $uri->getHost());
515 $this->assertNull($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());
527 $this->expectException(TypeError::class);
529 $uri->withPort(
'a111');
537 $this->expectException(TypeError::class);
539 $uri->withPort(
'foo');
547 $this->assertEquals(
'g+it', $uri->getSchema());
548 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
549 $this->assertEquals(
'github.com', $uri->getHost());
550 $this->assertEquals(
'8080', $uri->getPort());
551 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
552 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
553 $this->assertEquals(
'fragment', $uri->getFragment());
554 $uri = $uri->withHost(
'ilias.de');
555 $this->assertEquals(
'g+it', $uri->getSchema());
556 $this->assertEquals(
'ilias.de:8080', $uri->getAuthority());
557 $this->assertEquals(
'ilias.de', $uri->getHost());
558 $this->assertEquals(
'8080', $uri->getPort());
559 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
560 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
561 $this->assertEquals(
'fragment', $uri->getFragment());
570 $this->expectException(InvalidArgumentException::class);
572 $uri->withHost(
'-foo-.de');
580 $this->expectException(InvalidArgumentException::class);
590 $this->expectException(InvalidArgumentException::class);
592 $uri->withHost(
'ilias.de"><script');
600 $this->assertEquals(
'g+it', $uri->getSchema());
601 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
602 $this->assertEquals(
'github.com', $uri->getHost());
603 $this->assertEquals(
'8080', $uri->getPort());
604 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
605 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
606 $this->assertEquals(
'fragment', $uri->getFragment());
607 $uri = $uri->withAuthority(
'www1.ilias.de');
608 $this->assertEquals(
'g+it', $uri->getSchema());
609 $this->assertEquals(
'www1.ilias.de', $uri->getAuthority());
610 $this->assertEquals(
'www1.ilias.de', $uri->getHost());
611 $this->assertNull($uri->getPort());
612 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
613 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
614 $this->assertEquals(
'fragment', $uri->getFragment());
615 $uri = $uri->withAuthority(
'ilias.de:80');
616 $this->assertEquals(
'g+it', $uri->getSchema());
617 $this->assertEquals(
'ilias.de:80', $uri->getAuthority());
618 $this->assertEquals(
'ilias.de', $uri->getHost());
619 $this->assertEquals(
'80', $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(
'a:1');
624 $this->assertEquals(
'g+it', $uri->getSchema());
625 $this->assertEquals(
'a:1', $uri->getAuthority());
626 $this->assertEquals(
'a', $uri->getHost());
627 $this->assertEquals(1, $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(
'a');
632 $this->assertEquals(
'g+it', $uri->getSchema());
633 $this->assertEquals(
'a', $uri->getAuthority());
634 $this->assertEquals(
'a', $uri->getHost());
635 $this->assertNull($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(
'1.2.3.4');
640 $this->assertEquals(
'g+it', $uri->getSchema());
641 $this->assertEquals(
'1.2.3.4', $uri->getAuthority());
642 $this->assertEquals(
'1.2.3.4', $uri->getHost());
643 $this->assertNull($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(
'1.2.3.4:5');
648 $this->assertEquals(
'g+it', $uri->getSchema());
649 $this->assertEquals(
'1.2.3.4:5', $uri->getAuthority());
650 $this->assertEquals(
'1.2.3.4', $uri->getHost());
651 $this->assertEquals(5, $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(
'localhost1');
656 $this->assertEquals(
'g+it', $uri->getSchema());
657 $this->assertEquals(
'localhost1', $uri->getAuthority());
658 $this->assertEquals(
'localhost1', $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(
'localhost1:10');
664 $this->assertEquals(
'g+it', $uri->getSchema());
665 $this->assertEquals(
'localhost1:10', $uri->getAuthority());
666 $this->assertEquals(
'localhost1', $uri->getHost());
667 $this->assertEquals(10, $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());
678 $this->expectException(InvalidArgumentException::class);
680 $uri->withAuthority(
'-foo-.de');
688 $this->expectException(InvalidArgumentException::class);
690 $uri->withAuthority(
'-bar-.de:6060');
699 $this->expectException(InvalidArgumentException::class);
701 $uri->withHost(
'ilias.de:');
709 $this->expectException(InvalidArgumentException::class);
711 $uri->withHost(
'ilias.de: ');
719 $this->expectException(InvalidArgumentException::class);
721 $uri->withHost(
'ilias.de:aaa');
729 $this->expectException(InvalidArgumentException::class);
731 $uri->withAuthority(
'foo.de&<script>');
740 $this->expectException(InvalidArgumentException::class);
742 $uri->withAuthority(
'foo.de"><script>alert');
751 $this->expectException(InvalidArgumentException::class);
753 $uri->withAuthority(
' :80');
761 $this->assertEquals(
'g+it', $uri->getSchema());
762 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
763 $this->assertEquals(
'github.com', $uri->getHost());
764 $this->assertEquals(
'8080', $uri->getPort());
765 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
766 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
767 $this->assertEquals(
'fragment', $uri->getFragment());
768 $uri = $uri->withPath(
'a/b');
769 $this->assertEquals(
'g+it', $uri->getSchema());
770 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
771 $this->assertEquals(
'github.com', $uri->getHost());
772 $this->assertEquals(
'8080', $uri->getPort());
773 $this->assertEquals(
'a/b', $uri->getPath());
774 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
775 $this->assertEquals(
'fragment', $uri->getFragment());
776 $uri = $uri->withPath();
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->assertNull($uri->getPath());
782 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
783 $this->assertEquals(
'fragment', $uri->getFragment());
791 $this->expectException(InvalidArgumentException::class);
793 $uri->withPath(
'/<script>/a');
801 $this->expectException(InvalidArgumentException::class);
803 $uri->withPath(
'//a/b');
811 $this->expectException(InvalidArgumentException::class);
813 $uri->withPath(
':a/b');
821 $this->assertEquals(
'g+it', $uri->getSchema());
822 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
823 $this->assertEquals(
'github.com', $uri->getHost());
824 $this->assertEquals(
'8080', $uri->getPort());
825 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
826 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
827 $this->assertEquals(
'fragment', $uri->getFragment());
828 $uri = $uri->withQuery(
'query_par_a1=val_a1');
829 $this->assertEquals(
'g+it', $uri->getSchema());
830 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
831 $this->assertEquals(
'github.com', $uri->getHost());
832 $this->assertEquals(
'8080', $uri->getPort());
833 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
834 $this->assertEquals(
'query_par_a1=val_a1', $uri->getQuery());
835 $this->assertEquals(
'fragment', $uri->getFragment());
836 $uri = $uri->withQuery();
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->assertNull($uri->getQuery());
843 $this->assertEquals(
'fragment', $uri->getFragment());
851 $this->expectException(InvalidArgumentException::class);
853 $uri->withQuery(
'<script>a');
861 $this->expectException(InvalidArgumentException::class);
863 $uri->withQuery(
'aa[]');
871 $this->assertEquals(
'g+it', $uri->getSchema());
872 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
873 $this->assertEquals(
'github.com', $uri->getHost());
874 $this->assertEquals(
'8080', $uri->getPort());
875 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
876 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
877 $this->assertEquals(
'fragment', $uri->getFragment());
878 $uri = $uri->withFragment(
'someFragment');
879 $this->assertEquals(
'g+it', $uri->getSchema());
880 $this->assertEquals(
'github.com:8080', $uri->getAuthority());
881 $this->assertEquals(
'github.com', $uri->getHost());
882 $this->assertEquals(
'8080', $uri->getPort());
883 $this->assertEquals(
'someaccount/somerepo/somerepo.git', $uri->getPath());
884 $this->assertEquals(
'query_par_1=val_1&query_par_2=val_2', $uri->getQuery());
885 $this->assertEquals(
'someFragment', $uri->getFragment());
886 $uri = $uri->withFragment();
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->assertNull($uri->getFragment());
901 $this->expectException(InvalidArgumentException::class);
903 $uri->withFragment(
'aaa[]');
911 $this->expectException(InvalidArgumentException::class);
913 $uri->withFragment(
'script>');
927 $url = self::URI_BASE .
'?' . http_build_query(self::PARAMS);
931 $uri->getParameters()
941 $k = array_keys(self::PARAMS)[0];
944 $uri->getParameter($k)
953 $params = [
'x' => 1,
'y' => 2];
954 $uri = $uri->withParameters(
$params);
957 $uri->getParameters()
967 $uri = $uri->withParameter(
'x', 5);
970 $uri->getParameter(
'x')
982 $uri = $uri->withParameter(
'z', 5);
985 $uri->getParameters()
994 $params = [
'x' => 1,
'y' => [10, 11, 12]];
995 $uri = $uri->withParameters(
$params);
998 $uri->getParameters()
1000 $this->assertEquals(
1001 'git://github.com:8080/someaccount/somerepo/somerepo.git?x=1&y%5B0%5D=10&y%5B1%5D=11&y%5B2%5D=12',
1004 $this->assertEquals(
1006 $uri->getParameter(
'y')
1013 $this->assertEquals(
1015 $uri->getParameters()
1018 $this->assertNull($uri->getParameter(
'y'));
1020 $this->assertEquals(
1021 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
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
test_with_schema_invalid_2()
test_with_schema
const URI_WRONG_AUTHORITY_2