QueryParser unit test
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Sat, 8 Sep 2012 02:44:50 +0000 (22:44 -0400)
committerLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fri, 15 Feb 2013 20:39:45 +0000 (15:39 -0500)
commit1cdbcb8eccbeec914aeeb05876cc44d164c2052c
tree90b12082bce0805d788f40c0cf705edecf60bde7
parentba2ad7bda934b2184eba42dcd1eb1860bbcd6599
QueryParser unit test

Test that QueryParser can handle a variety of queries. This initial
unit test does the following:

1) Test the configuration of QueryParser.
2) Test that various queries have stable canonical representations.
3) Test that a number of equivalent queries are correctly parsed as
   equivalent.
4) Test that a number of non-equivalent queries are correctly parsed as
   NOT being equivalent.
5) Several other tests relating to query parsing.

This includes almost 100% subroutine coverage in the QueryParser class.
Other classes have somewhat lower test coverage.

As of 2012-09-09, several outstanding bugs affect these tests:
1) QueryParser->superpage cannot be unset.
2) Explicit groups are not handled correctly by the abstract query
   to string converter.
3) There is no defined precedence between explicit boolean connectors
   and implicit boolean connectors.
4) Modifiers are silently dropped when not at the top level of the query.

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Open-ILS/src/perlmods/t/21-QueryParser.t [new file with mode: 0644]