GetIpAdressFromProxyTest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. require_once 'application/HttpUtils.php';
  3. /**
  4. * Unitary tests for getIpAddressFromProxy()
  5. */
  6. class GetIpAdressFromProxyTest extends PHPUnit_Framework_TestCase {
  7. /**
  8. * Test without proxy
  9. */
  10. public function testWithoutProxy()
  11. {
  12. $this->assertFalse(getIpAddressFromProxy(array(), array()));
  13. }
  14. /**
  15. * Test with a single IP in proxy header.
  16. */
  17. public function testWithOneForwardedIp()
  18. {
  19. $ip = '1.1.1.1';
  20. $server = array('HTTP_X_FORWARDED_FOR' => $ip);
  21. $this->assertEquals($ip, getIpAddressFromProxy($server, array()));
  22. }
  23. /**
  24. * Test with a multiple IPs in proxy header.
  25. */
  26. public function testWithMultipleForwardedIp()
  27. {
  28. $ip = '1.1.1.1';
  29. $ip2 = '2.2.2.2';
  30. $server = array('HTTP_X_FORWARDED_FOR' => $ip .','. $ip2);
  31. $this->assertEquals($ip2, getIpAddressFromProxy($server, array()));
  32. $server = array('HTTP_X_FORWARDED_FOR' => $ip .' , '. $ip2);
  33. $this->assertEquals($ip2, getIpAddressFromProxy($server, array()));
  34. }
  35. /**
  36. * Test with a trusted IP address.
  37. */
  38. public function testWithTrustedIp()
  39. {
  40. $ip = '1.1.1.1';
  41. $ip2 = '2.2.2.2';
  42. $server = array('HTTP_X_FORWARDED_FOR' => $ip);
  43. $this->assertFalse(getIpAddressFromProxy($server, array($ip)));
  44. $server = array('HTTP_X_FORWARDED_FOR' => $ip .','. $ip2);
  45. $this->assertEquals($ip2, getIpAddressFromProxy($server, array($ip)));
  46. $this->assertFalse(getIpAddressFromProxy($server, array($ip, $ip2)));
  47. }
  48. }