public function testParser() { $strings[] = "toto"; $assert[] = array('*' => array('toto')); $strings[] = "toto titi"; $assert[] = array('*' => array('toto', 'titi')); $strings[] = "name:toto"; $assert[] = array('name' => array('toto')); $strings[] = "name:toto:"; $assert[] = array('name' => array('toto:')); $strings[] = "toto:"; $assert[] = array('*' => array('toto:')); $strings[] = "name:toto lname:titi"; $assert[] = array('name' => array('toto'), 'lname' => array('titi')); $strings[] = '"toto titi"'; $assert[] = array('*' => array('toto titi')); $strings[] = "name:\"toto titi\""; $assert[] = array('name' => array('toto titi')); $strings[] = "name:\"toto titi\" lname:\"titi toto\""; $assert[] = array('name' => array('toto titi'), 'lname' => array('titi toto')); $strings[] = "(toto titi)"; $assert[] = array('*' => array('toto', 'titi')); $strings[] = "name:(toto titi)"; $assert[] = array('name' => array('toto', 'titi')); $strings[] = "name:(toto titi) lname:(titi toto)"; $assert[] = array('name' => array('toto', 'titi'), 'lname' => array('titi', 'toto')); $strings[] = "toto titi lname:tutu"; $assert[] = array('*' => array('toto', 'titi'), 'lname' => array('tutu')); $strings[] = "name:toto titi lname:tutu"; $assert[] = array('name' => array('toto'), '*' => array('titi'), 'lname' => array('tutu')); $strings[] = "txtx name:toto titi lname:(tutu tata) tyty name:\"test de\""; $assert[] = array('*' => array('txtx', 'titi', 'tyty'), 'name' => array('toto','test de'), 'lname' => array('tutu', 'tata')); foreach($strings as $index => $string) { $result = OBM_Search::parse($string); $this->assertEquals($assert[$index], $result); } }