IPTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * TLDSupport: Support package for TLDDatabase and TLDExtract.
  4. *
  5. * @link https://github.com/layershifter/TLDSupport
  6. *
  7. * @copyright Copyright (c) 2016, Alexander Fedyashov
  8. * @license https://raw.githubusercontent.com/layershifter/TLDSupport/master/LICENSE Apache 2.0 License
  9. */
  10. namespace LayerShifter\TLDSupport\Tests\Helpers;
  11. use LayerShifter\TLDSupport\Helpers\IP;
  12. /**
  13. * Test cases for Helpers\IP class.
  14. */
  15. class IPTest extends \PHPUnit_Framework_TestCase
  16. {
  17. /**
  18. * Test for isValid() method.
  19. *
  20. * @return void
  21. */
  22. public function testIsValid()
  23. {
  24. // IPv4 test cases.
  25. self::assertTrue(IP::isValid('200.200.200.200'));
  26. self::assertTrue(IP::isValid(' 200.200.200.200'));
  27. self::assertTrue(IP::isValid('200.200.200.200 '));
  28. self::assertTrue(IP::isValid('0.0.0.0'));
  29. self::assertTrue(IP::isValid('255.255.255.255'));
  30. self::assertFalse(IP::isValid('00.00.00.00'));
  31. self::assertFalse(IP::isValid('100.100.020.100'));
  32. self::assertFalse(IP::isValid('-1.0.0.0'));
  33. self::assertFalse(IP::isValid('200.200.256.200'));
  34. self::assertFalse(IP::isValid('200.200.200.200.'));
  35. self::assertFalse(IP::isValid('200.200.200'));
  36. self::assertFalse(IP::isValid('200.200.200.2d0'));
  37. self::assertFalse(IP::isValid('200000000000000000000000000000000000000000000000000000.200.200.200'));
  38. // IPv6 test cases.
  39. self::assertTrue(IP::isValid('00AB:0002:3008:8CFD:00AB:0002:3008:8CFD'));
  40. self::assertTrue(IP::isValid('00ab:0002:3008:8cfd:00ab:0002:3008:8cfd'));
  41. self::assertTrue(IP::isValid('00aB:0002:3008:8cFd:00Ab:0002:3008:8cfD'));
  42. self::assertTrue(IP::isValid('AB:02:3008:8CFD:AB:02:3008:8CFD'));
  43. self::assertTrue(IP::isValid('AB:02:3008:8CFD::02:3008:8CFD'));
  44. self::assertTrue(IP::isValid('::'));
  45. self::assertTrue(IP::isValid('0::'));
  46. self::assertTrue(IP::isValid('0::0'));
  47. self::assertFalse(IP::isValid('00AB:00002:3008:8CFD:00AB:0002:3008:8CFD'));
  48. self::assertFalse(IP::isValid(':0002:3008:8CFD:00AB:0002:3008:8CFD'));
  49. self::assertFalse(IP::isValid('00AB:0002:3008:8CFD:00AB:0002:3008:'));
  50. self::assertFalse(IP::isValid('AB:02:3008:8CFD:AB:02:3008:8CFD:02'));
  51. self::assertFalse(IP::isValid('AB:02:3008:8CFD::02:3008:8CFD:02'));
  52. self::assertFalse(IP::isValid('AB:02:3008:8CFD::02::8CFD'));
  53. self::assertFalse(IP::isValid('GB:02:3008:8CFD:AB:02:3008:8CFD'));
  54. self::assertFalse(IP::isValid('00000000000005.10.10.10'));
  55. self::assertFalse(IP::isValid('2:::3'));
  56. self::assertTrue(IP::isValid('[AB:02:3008:8CFD::02:3008:8CFD]'));
  57. self::assertTrue(IP::isValid('[::]'));
  58. self::assertTrue(IP::isValid('[::1]'));
  59. self::assertFalse(IP::isValid('[AB:02:3008:8CFD::02:3008:8CFD'));
  60. self::assertFalse(IP::isValid('::]'));
  61. self::assertFalse(IP::isValid('/[::1]'));
  62. // Domain test cases.
  63. self::assertFalse(IP::isValid('google.com'));
  64. self::assertFalse(IP::isValid('.google.com'));
  65. self::assertFalse(IP::isValid('www.google.com'));
  66. self::assertFalse(IP::isValid('com'));
  67. }
  68. }