1313#[CoversClass(TrailingSlashHelper::class)]
1414class TrailingSlashHelperTest extends TestCase
1515{
16- #[DataProvider('urlDataProvider ' )]
16+ #[DataProvider('urlDataProviderForAppendTrailingSlash ' )]
1717 public function testAppendTrailingSlash (string $ input , string $ output ): void
1818 {
1919 $ uri = new Uri ($ input );
2020
2121 self ::assertSame ($ output , (string )(new TrailingSlashHelper ())->appendTrailingSlash ($ uri ));
2222 }
2323
24+ #[DataProvider('urlDataProviderForRemoveTrailingSlash ' )]
25+ public function testRemoveTrailingSlash (string $ input , string $ output ): void
26+ {
27+ $ uri = new Uri ($ input );
28+
29+ self ::assertSame ($ output , (string )(new TrailingSlashHelper ())->removeTrailingSlash ($ uri ));
30+ }
31+
2432 /**
2533 * @return array{string[]}
2634 */
27- public static function urlDataProvider (): array
35+ public static function urlDataProviderForAppendTrailingSlash (): array
2836 {
2937 return [
3038 ['' , '' ],
@@ -47,4 +55,31 @@ public static function urlDataProvider(): array
4755 ['https://test.de/foo/bar.css ' , 'https://test.de/foo/bar.css ' ],
4856 ];
4957 }
58+
59+ /**
60+ * @return array{string[]}
61+ */
62+ public static function urlDataProviderForRemoveTrailingSlash (): array
63+ {
64+ return [
65+ ['' , '' ],
66+ ['/ ' , '' ],
67+ ['/foo/ ' , '/foo ' ],
68+ ['/foo/bar/ ' , '/foo/bar ' ],
69+ ['https://test.de ' , 'https://test.de ' ],
70+ ['https://test.de ' , 'https://test.de ' ],
71+ ['https://test.de/foo/bar/ ' , 'https://test.de/foo/bar ' ],
72+ ['https://test.de/foo/bar ' , 'https://test.de/foo/bar ' ],
73+ ['/foo/bar/?some-query=foo%20bar ' , '/foo/bar?some-query=foo%20bar ' ],
74+ ['/foo/bar/#some-fragment ' , '/foo/bar#some-fragment ' ],
75+ ['/foo/bar/?some-query=foo%20bar#some-fragment ' , '/foo/bar?some-query=foo%20bar#some-fragment ' ],
76+ [
77+ 'https://test.de/foo/bar/?some-query=foo%20bar#some-fragment ' ,
78+ 'https://test.de/foo/bar?some-query=foo%20bar#some-fragment ' ,
79+ ],
80+ 81+ ['tel:+4906516564 ' , 'tel:+4906516564 ' ],
82+ ['https://test.de/foo/bar.css ' , 'https://test.de/foo/bar.css ' ],
83+ ];
84+ }
5085}
0 commit comments