2 require_once __DIR__ . '/../../../lib/search/queryparser.php';
4 use OCA\Grauphel\Search\Queryparser;
6 class Lib_Search_QueryParserTest extends \PHPUnit\Framework\TestCase
8 public function testParseSimple()
10 $qp = new QueryParser();
12 array('AND' => array('foo')),
17 array('AND' => array('foo', 'bar')),
22 public function testParseQuotes()
24 $qp = new QueryParser();
26 array('AND' => array('foo bar')),
27 $qp->parse('"foo bar"')
31 array('AND' => array('foo bar', 'baz')),
32 $qp->parse('"foo bar" baz')
36 array('AND' => array('foo \'bar\' baz', 'bat')),
37 $qp->parse('"foo \'bar\' baz" bat')
41 array('AND' => array('foo bar baz')),
42 $qp->parse('"foo bar baz"')
46 array('AND' => array('one two three', 'four', 'five six', 'seven')),
47 $qp->parse('"one two three" four "five six" seven')
51 public function testParseWhitespace()
53 $qp = new QueryParser();
55 array('AND' => array('foo')),
60 array('AND' => array('foo', 'bar')),
61 $qp->parse(' foo bar ')
65 array('AND' => array('foo ', ' bar')),
66 $qp->parse(' "foo " " bar" ')
70 public function testParseNot()
72 $qp = new QueryParser();
74 array('AND' => array('foo')),
79 array('AND' => array('foo'), 'NOT' => array('bar')),
80 $qp->parse('+foo -bar')
85 'AND' => array('foo', 'bat'),
86 'NOT' => array('bar baz')
88 $qp->parse('+foo -"bar baz" +bat')