diff options
-rw-r--r-- | tests/regex/all_tests.php | 2 | ||||
-rw-r--r-- | tests/regex/ipv4.php | 72 |
2 files changed, 74 insertions, 0 deletions
diff --git a/tests/regex/all_tests.php b/tests/regex/all_tests.php index aeb242b78b..32cd9a3a4e 100644 --- a/tests/regex/all_tests.php +++ b/tests/regex/all_tests.php @@ -15,6 +15,7 @@ if (!defined('PHPUnit_MAIN_METHOD')) require_once 'test_framework/framework.php'; require_once 'PHPUnit/TextUI/TestRunner.php'; +require_once 'regex/ipv4.php'; require_once 'regex/ipv6.php'; class phpbb_regex_all_tests @@ -28,6 +29,7 @@ class phpbb_regex_all_tests { $suite = new PHPUnit_Framework_TestSuite('phpBB Regular Expressions'); + $suite->addTestSuite('phpbb_ipv4_test'); $suite->addTestSuite('phpbb_ipv6_test'); return $suite; diff --git a/tests/regex/ipv4.php b/tests/regex/ipv4.php new file mode 100644 index 0000000000..5ffc700831 --- /dev/null +++ b/tests/regex/ipv4.php @@ -0,0 +1,72 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +require_once 'test_framework/framework.php'; +require_once '../phpBB/includes/functions.php'; + +class phpbb_ipv4_test extends phpbb_test_case +{ + protected $regex; + + public function setUp() + { + $this->regex = get_preg_expression('ipv4'); + } + + public function positive_match_data() + { + return array( + array('0.0.0.0'), + array('127.0.0.1'), + array('192.168.0.1'), + array('255.255.255.255'), + ); + } + + public function negative_match_data() + { + return array( + // IPv6 addresses + array('2001:0db8:85a3:0000:0000:8a2e:0370:1337'), + array('2001:db8:85a3:c:d:8a2e:370:1337'), + array('2001:db8:85a3::8a2e:370:1337'), + array('2001:db8:0:1::192.168.0.2'), + array('0:0:0:0:0:0:0:1'), + array('0:0::0:0:1'), + array('::1'), + + // Out of scope + array('255.255.255.256'), + + // Other tests + array('a.b.c.d'), + array('11.22.33.'), + array('11.22.33'), + array('11.22'), + array('11'), + ); + } + + /** + * @dataProvider positive_match_data + */ + public function test_positive_match($address) + { + $this->assertEquals(1, preg_match($this->regex, $address)); + } + + /** + * @dataProvider negative_match_data + */ + public function test_negative_match($address) + { + $this->assertEquals(0, preg_match($this->regex, $address)); + } +} + |