@@ -58,6 +58,54 @@ public function testCreateRedirectResponseWithRequestsDomain()
58
58
$ this ->assertTrue ($ response ->isRedirect ('http://localhost/blog ' ));
59
59
}
60
60
61
+ /**
62
+ * @dataProvider validRequestDomainUrls
63
+ */
64
+ public function testCreateRedirectResponse (?string $ domainRegexp , string $ path , string $ expectedRedirectUri )
65
+ {
66
+ $ utils = new HttpUtils ($ this ->getUrlGenerator (), null , $ domainRegexp );
67
+ $ response = $ utils ->createRedirectResponse ($ this ->getRequest (), $ path );
68
+
69
+ $ this ->assertTrue ($ response ->isRedirect ($ expectedRedirectUri ));
70
+ $ this ->assertEquals (302 , $ response ->getStatusCode ());
71
+ }
72
+
73
+ public static function validRequestDomainUrls ()
74
+ {
75
+ return [
76
+ '/foobar ' => [
77
+ null ,
78
+ '/foobar ' ,
79
+ 'http://localhost/foobar ' ,
80
+ ],
81
+ 'http://symfony.com/ without domain regex ' => [
82
+ null ,
83
+ 'http://symfony.com/ ' ,
84
+ 'http://symfony.com/ ' ,
85
+ ],
86
+ 'http://localhost/blog with #^https?://symfony\.com$#i ' => [
87
+ '#^https?://symfony\.com$#i ' ,
88
+ 'http://symfony.com/blog ' ,
89
+ 'http://symfony.com/blog ' ,
90
+ ],
91
+ 'http://localhost/blog with #^https?://%s$#i ' => [
92
+ '#^https?://%s$#i ' ,
93
+ 'http://localhost/blog ' ,
94
+ 'http://localhost/blog ' ,
95
+ ],
96
+ 'custom scheme ' => [
97
+ null ,
98
+ 'android-app://com.google.android.gm/ ' ,
99
+ 'android-app://com.google.android.gm/ ' ,
100
+ ],
101
+ 'custom scheme with all URL components ' => [
102
+ null ,
103
+ 'android-app://foo:[email protected] :8080/software/index.html?lite=true#section1 ' ,
104
+ 'android-app://foo:[email protected] :8080/software/index.html?lite=true#section1 ' ,
105
+ ],
106
+ ];
107
+ }
108
+
61
109
/**
62
110
* @dataProvider badRequestDomainUrls
63
111
*/
@@ -77,6 +125,7 @@ public static function badRequestDomainUrls()
77
125
['http:/ \\pirate.net/foo ' ],
78
126
['http: \\/pirate.net/foo ' ],
79
127
['http://////pirate.net/foo ' ],
128
+ ['http:///foo ' ],
80
129
];
81
130
}
82
131
0 commit comments