assertEquals( array('AND' => array('foo')), $qp->parse('foo') ); $this->assertEquals( array('AND' => array('foo', 'bar')), $qp->parse('foo bar') ); } public function testParseQuotes() { $qp = new QueryParser(); $this->assertEquals( array('AND' => array('foo bar')), $qp->parse('"foo bar"') ); $this->assertEquals( array('AND' => array('foo bar', 'baz')), $qp->parse('"foo bar" baz') ); $this->assertEquals( array('AND' => array('foo \'bar\' baz', 'bat')), $qp->parse('"foo \'bar\' baz" bat') ); $this->assertEquals( array('AND' => array('foo bar baz')), $qp->parse('"foo bar baz"') ); $this->assertEquals( array('AND' => array('one two three', 'four', 'five six', 'seven')), $qp->parse('"one two three" four "five six" seven') ); } public function testParseWhitespace() { $qp = new QueryParser(); $this->assertEquals( array('AND' => array('foo')), $qp->parse(' foo ') ); $this->assertEquals( array('AND' => array('foo', 'bar')), $qp->parse(' foo bar ') ); $this->assertEquals( array('AND' => array('foo ', ' bar')), $qp->parse(' "foo " " bar" ') ); } public function testParseNot() { $qp = new QueryParser(); $this->assertEquals( array('AND' => array('foo')), $qp->parse('+foo') ); $this->assertEquals( array('AND' => array('foo'), 'NOT' => array('bar')), $qp->parse('+foo -bar') ); $this->assertEquals( array( 'AND' => array('foo', 'bat'), 'NOT' => array('bar baz') ), $qp->parse('+foo -"bar baz" +bat') ); } } ?>