CParser::PARSE_SUCCESS, 'match' => '192.168.3.4' ] ], [ '192.168.3.4,192.168.5.0', 0, [ 'rc' => CParser::PARSE_SUCCESS_CONT, 'match' => '192.168.3.4' ] ], [ '192.168.3.4,192.168.5.0', 12, [ 'rc' => CParser::PARSE_SUCCESS, 'match' => '192.168.5.0' ] ], [ '192.168.3.4,192.168.5.0/24', 12, [ 'rc' => CParser::PARSE_SUCCESS_CONT, 'match' => '192.168.5.0' ] ], [ '192.168.3.256', 0, [ 'rc' => CParser::PARSE_FAIL, 'match' => '' ] ], [ '192.168.3.256', 0, [ 'rc' => CParser::PARSE_FAIL, 'match' => '' ] ], [ '192.168..4', 0, [ 'rc' => CParser::PARSE_FAIL, 'match' => '' ] ], [ '321.654.987.456', 0, [ 'rc' => CParser::PARSE_FAIL, 'match' => '' ] ], [ '', 0, [ 'rc' => CParser::PARSE_FAIL, 'match' => '' ] ] ]; } /** * @dataProvider dataProvider * * @param string $source * @param int $pos * @param array $expected */ public function testParse($source, $pos, $expected) { static $ipv4_parser = null; if ($ipv4_parser === null) { $ipv4_parser = new CIPv4Parser(); } $this->assertSame($expected, [ 'rc' => $ipv4_parser->parse($source, $pos), 'match' => $ipv4_parser->getMatch() ]); $this->assertSame(strlen($expected['match']), $ipv4_parser->getLength()); } }