From 0cb18b4573147adf0f1c8d1e50ca1cf298b6120d Mon Sep 17 00:00:00 2001 From: Robert Boloc Date: Thu, 23 Jul 2015 20:50:17 +0100 Subject: [PATCH] Added unit tests --- tests/ip_test.php | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 tests/ip_test.php diff --git a/tests/ip_test.php b/tests/ip_test.php new file mode 100644 index 0000000..58b4344 --- /dev/null +++ b/tests/ip_test.php @@ -0,0 +1,96 @@ +. + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; +require_once($CFG->dirroot.'/auth/ip/auth.php'); + +class auth_ip_testcase extends advanced_testcase { + protected $authplugin; + + protected function setUp() { + $this->authplugin = new auth_plugin_ip(); + } + + /** + * Test that valid IPs or IPs in range are detected as valid. + * + * @dataProvider is_ip_valid_data_provider + * + * @param array $valid_ips + * @param string $ip + * @param boolean $is_valid + */ + public function test_is_ip_valid_detects_valid_ips($valid_ips, $ip, $is_valid) { + $this->authplugin->config->valid_ips = $valid_ips; + + $this->assertEquals( + $is_valid, + $this->authplugin->is_ip_valid($ip) + ); + } + + /** + * @return array + */ + public static function is_ip_valid_data_provider() { + return array( + array('192.168.1.1,192.168.1.2', '192.168.1.1', true), + array('192.168.1.1,192.168.1.2', '192.168.1.3', false), + array('192.168.0.0/24', '192.168.0.200', true), + array('111.112.0.0/12,96.0.0.0/6', '192.168.0.200', false), + array('111.112.0.0/12,96.0.0.0/6', '99.255.255.254', true), + array('111.112.0.0/12,10.40.22.0/24,96.0.0.0/6', '10.40.22.50', true), + array('111.112.0.0/12, 10.40.22.0/24, 96.0.0.0/6', '10.40.22.50', true), + array(' 111.112.0.0 ', '111.112.0.0', true), // Extra spaces for testing + ); + } + + /** + * Test range detection + * + * @dataProvider is_cidr_data_provider + * + * @param string $ip_or_cidr + * @param boolean $is_cidr + */ + public function test_is_cidr_detects_cidrs($ip_or_cidr, $is_cidr) { + $this->assertEquals( + $this->authplugin->is_cidr($ip_or_cidr), + $is_cidr + ); + } + + /** + * @return array + */ + public static function is_cidr_data_provider() { + return array( + array('192.168.1.1', false), + array('192.168.1.1/24', true), + array('10.15.1.1', false), + array('10.15.1.1/2', true), + ); + } + + /** + * Test the plugin is not marked as internal. + */ + public function test_is_not_internal() { + $this->assertFalse($this->authplugin->is_internal()); + } +}