@@ -234,6 +234,46 @@ public function testCreate()
234234$ this ->assertFalse ($ request ->isSecure ());
235235 }
236236
237+ public function testCreateWithRequestUri ()
238+ {
239+ $ request = Request::create ('http://test.com:80/foo ' );
240+ $ request ->server ->set ('REQUEST_URI ' ,'http://test.com:80/foo ' );
241+ $ this ->assertEquals ('http://test.com/foo ' ,$ request ->getUri ());
242+ $ this ->assertEquals ('/foo ' ,$ request ->getPathInfo ());
243+ $ this ->assertEquals ('test.com ' ,$ request ->getHost ());
244+ $ this ->assertEquals ('test.com ' ,$ request ->getHttpHost ());
245+ $ this ->assertEquals (80 ,$ request ->getPort ());
246+ $ this ->assertFalse ($ request ->isSecure ());
247+
248+ $ request = Request::create ('http://test.com:8080/foo ' );
249+ $ request ->server ->set ('REQUEST_URI ' ,'http://test.com:8080/foo ' );
250+ $ this ->assertEquals ('http://test.com:8080/foo ' ,$ request ->getUri ());
251+ $ this ->assertEquals ('/foo ' ,$ request ->getPathInfo ());
252+ $ this ->assertEquals ('test.com ' ,$ request ->getHost ());
253+ $ this ->assertEquals ('test.com:8080 ' ,$ request ->getHttpHost ());
254+ $ this ->assertEquals (8080 ,$ request ->getPort ());
255+ $ this ->assertFalse ($ request ->isSecure ());
256+
257+ $ request = Request::create ('http://test.com/foo?bar=foo ' ,'GET ' ,array ('bar ' =>'baz ' ));
258+ $ request ->server ->set ('REQUEST_URI ' ,'http://test.com/foo?bar=foo ' );
259+ $ this ->assertEquals ('http://test.com/foo?bar=baz ' ,$ request ->getUri ());
260+ $ this ->assertEquals ('/foo ' ,$ request ->getPathInfo ());
261+ $ this ->assertEquals ('bar=baz ' ,$ request ->getQueryString ());
262+ $ this ->assertEquals ('test.com ' ,$ request ->getHost ());
263+ $ this ->assertEquals ('test.com ' ,$ request ->getHttpHost ());
264+ $ this ->assertEquals (80 ,$ request ->getPort ());
265+ $ this ->assertFalse ($ request ->isSecure ());
266+
267+ $ request = Request::create ('https://test.com:443/foo ' );
268+ $ request ->server ->set ('REQUEST_URI ' ,'https://test.com:443/foo ' );
269+ $ this ->assertEquals ('https://test.com/foo ' ,$ request ->getUri ());
270+ $ this ->assertEquals ('/foo ' ,$ request ->getPathInfo ());
271+ $ this ->assertEquals ('test.com ' ,$ request ->getHost ());
272+ $ this ->assertEquals ('test.com ' ,$ request ->getHttpHost ());
273+ $ this ->assertEquals (443 ,$ request ->getPort ());
274+ $ this ->assertTrue ($ request ->isSecure ());
275+ }
276+
237277public function testCreateCheckPrecedence ()
238278 {
239279// server is used by default