8000 refactored tests for Request · symfony/symfony@f5d8cca · GitHub
[go: up one dir, main page]

Skip to content

Commit f5d8cca

Browse files
committed
refactored tests for Request
1 parent 6a3ba52 commit f5d8cca

File tree

1 file changed

+64
-63
lines changed

1 file changed

+64
-63
lines changed

tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php

Lines changed: 64 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -435,43 +435,6 @@ public function testGetHost()
435435

436436
$request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.exemple.com', 'HTTP_HOST' => 'www.host.com'));
437437
$this->assertEquals('www.host.com', $request->getHost(), '->getHost() value from Host header has priority over SERVER_NAME ');
438-
439-
Request::setTrustedProxies(array('1.1.1.1'));
440-
441-
// X_FORWARDED_HOST
442-
$request->initialize(array(), array(), array(), array(), array(), array('HTTP_X_FORWARDED_HOST' => 'www.exemple.com'));
443-
$this->assertEquals('www.exemple.com', $request->getHost(), '->getHost() from X_FORWARDED_HOST');
444-
445-
// X_FORWARDED_HOST
446-
$request->initialize(array(), array(), array(), array(), array(), array('HTTP_X_FORWARDED_HOST' => 'www.exemple.com, www.second.com'));
447-
$this->assertEquals('www.second.com', $request->getHost(), '->getHost() value from X_FORWARDED_HOST use last value');
448-
449-
// X_FORWARDED_HOST with port number
450-
$request->initialize(array(), array(), array(), array(), array(), array('HTTP_X_FORWARDED_HOST' => 'www.exemple.com, www.second.com:8080'));
451-
$this->assertEquals('www.second.com', $request->getHost(), '->getHost() value from X_FORWARDED_HOST with port number');
452-
453-
$request->initialize(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'www.exemple.com', 'HTTP_X_FORWARDED_HOST' => 'www.forward.com'));
454-
$this->assertEquals('www.forward.com', $request->getHost(), '->getHost() value from X_FORWARDED_HOST has priority over Host');
455-
456-
$request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.exemple.com', 'HTTP_X_FORWARDED_HOST' => 'www.forward.com'));
457-
$this->assertEquals('www.forward.com', $request->getHost(), '->getHost() value from X_FORWARDED_HOST has priority over SERVER_NAME ');
458-
459-
// custom X_FORWARDED_HOST header name
460-
Request::setTrustedHeaderName('client_host', 'X_MY_HOST');
461-
$request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.exemple.com', 'HTTP_X_MY_HOST' => 'www.forward.com'));
462-
$this->assertEquals('www.forward.com', $request->getHost(), '->getHost() value from custom header name has priority over SERVER_NAME ');
463-
464-
// X_FORWARDED_HOST ignored when custom header name is empty
465-
Request::setTrustedHeaderName('client_host', null);
466-
$request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.exemple.com', 'HTTP_X_FORWARDED_HOST' => 'www.forward.com'));
467-
$this->assertEquals('www.exemple.com', $request->getHost(), '->getHost() value from X_FORWARDED_HOST has priority over SERVER_NAME ');
468-
469-
Request::setTrustedHeaderName('client_host', 'X_FORWARDED_HOST');
470-
Request::setTrustedProxies(array());
471-
472-
// X_FORWARDED_HOST ignored when no trusted proxies
473-
$request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.exemple.com', 'HTTP_X_FORWARDED_HOST' => 'www.forward.com'));
474-
$this->assertEquals('www.exemple.com', $request->getHost(), '->getHost() value from X_FORWARDED_HOST has priority over SERVER_NAME ');
475438 10000
}
476439

477440
/**
@@ -830,32 +793,6 @@ public function testGetRequestFormat()
830793
$this->assertEquals('foo', $request->getRequestFormat(null));
831794
}
832795

833-
public function testForwardedSecure()
834-
{
835-
$request = Request::create('http://test.com/');
836-
$request->headers->set('X-Forwarded-Proto', 'https');
837-
$request->headers->set('X-Forwarded-Port', 443);
838-
839-
$this->assertFalse($request->isSecure());
840-
$this->assertEquals(80, $request->getPort());
841-
842-
Request::setTrustedProxies(array('1.1.1.1'));
843-
844-
$this->assertTrue($request->isSecure());
845-
$this->assertEquals(443, $request->getPort());
846-
847-
// custom header names
848-
Request::setTrustedHeaderName('client_proto', 'X-My-Proto');
849-
Request::setTrustedHeaderName('client_port', 'X-My-Port');
850-
$request->headers->set('X-My-Proto', 'http');
851-
$request->headers->set('X-My-Port', 81);
852-
853-
$this->assertFalse($request->isSecure());
854-
$this->assertEquals(81, $request->getPort());
855-
856-
Request::setTrustedProxies(array());
857-
}
858-
859796
public function testHasSession()
860797
{
861798
$request = new Request;
@@ -908,6 +845,70 @@ public function splitHttpAcceptHeaderData()
908845
array('text/html,application/xhtml+xml', array('application/xhtml+xml' => 1, 'text/html' => 1)),
909846
);
910847
}
848+
849+
public function testTrustedProxies()
850+
{
851+
$request = Request::create('http://example.com/');
852+
$request->server->set('REMOTE_ADDR', '3.3.3.3');
853+
$request->headers->set('X_FORWARDED_FOR', '1.1.1.1, 2.2.2.2');
854+
$request->headers->set('X_FORWARDED_HOST', 'foo.example.com, real.example.com:8080');
855+
$request->headers->set('X_FORWARDED_PROTO', 'https');
856+
$request->headers->set('X_FORWARDED_PORT', 443);
857+
$request->headers->set('X_MY_FOR', '3.3.3.3, 4.4.4.4');
858+
$request->headers->set('X_MY_HOST', 'my.example.com');
859+
$request->headers->set('X_MY_PROTO', 'http');
860+
$request->headers->set('X_MY_PORT', 81);
861+
862+
// no trusted proxies
863+
$this->assertEquals('3.3.3.3', $request->getClientIp());
864+
$this->assertEquals('example.com', $request->getHost());
865+
$this->assertEquals(80, $request->getPort());
866+
$this->assertFalse($request->isSecure());
867+
868+
// trusted proxy via deprecated trustProxyData()
869+
Request::trustProxyData();
870+
$this->assertEquals('2.2.2.2', $request->getClientIp());
871+
$this->assertEquals('real.example.com', $request->getHost());
872+
$this->assertEquals(443, $request->getPort());
873+
$this->assertTrue($request->isSecure());
874+
875+
// disabling proxy trusting
876+
Request::setTrustedProxies(array());
877+
$this->assertEquals('3.3.3.3', $request->getClientIp());
878+
$this->assertEquals('example.com', $request->getHost());
879+
$this->assertEquals(80, $request->getPort());
880+
$this->assertFalse($request->isSecure());
881+
882+
// trusted proxy via setTrustedProxies()
883+
Request::setTrustedProxies(array('3.3.3.3', '2.2.2.2'));
884+
$this->assertEquals('1.1.1.1', $request->getClientIp());
885+
$this->assertEquals('real.example.com', $request->getHost());
886+
$this->assertEquals(443, $request->getPort());
887+
$this->assertTrue($request->isSecure());
888+
889+
// custom header names
890+
Request::setTrustedHeaderName('client_ip', 'X_MY_FOR');
891+
Request::setTrustedHeaderName('client_host', 'X_MY_HOST');
892+
Request::setTrustedHeaderName('client_port', 'X_MY_PORT');
893+
Request::setTrustedHeaderName('client_proto', 'X_MY_PROTO');
894+
$this->assertEquals('4.4.4.4', $request->getClientIp());
895+
$this->assertEquals('my.example.com', $request->getHost());
896+
$this->assertEquals(81, $request->getPort());
897+
$this->assertFalse($request->isSecure());
898+
899+
// disabling via empty header names
900+
Request::setTrustedHeaderName('client_ip', null);
901+
Request::setTrustedHeaderName('client_host', null);
902+
Request::setTrustedHeaderName('client_port', null);
903+
Request::setTrustedHeaderName('client_proto', null);
904+
$this->assertEquals('3.3.3.3', $request->getClientIp());
905+
$this->assertEquals('example.com', $request->getHost());
906+
$this->assertEquals(80, $request->getPort());
907+
$this->assertFalse($request->isSecure());
908+
909+
// reset
910+
Request::setTrustedProxies(array());
911+
}
911912
}
912913

913914
class RequestContentProxy extends Request

0 commit comments

Comments
 (0)
0