kelvint 2004/05/17 04:56:17 Modified: contributions/javascript/queryValidator testQueryValidator.html Log: Implemented tests for checkAllowedCharacters and checkANDORNOT. Imported a whole bunch of tests from TestQueryParser.java. Except for the term1 !term2 queries (which are commented out for now), all tests go green!! Woohoo!! Revision Changes Path 1.3 +148 -4 jakarta-lucene-sandbox/contributions/javascript/queryValidator/testQueryValidator.html Index: testQueryValidator.html =================================================================== RCS file: /home/cvs/jakarta-lucene-sandbox/contributions/javascript/queryValidator/testQueryValidator.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- testQueryValidator.html 26 Mar 2004 07:43:10 -0000 1.2 +++ testQueryValidator.html 17 May 2004 11:56:17 -0000 1.3 @@ -1,13 +1,13 @@ <html> <head> -<script language="JavaScript" src="f:/jsunit/app/jsUnitCore.js"></script> +<script language="JavaScript" src="c:/market/jsunit/app/jsUnitCore.js"></script> <script language="JavaScript" src="luceneQueryValidator.js"></script> </head> <body> <script> setAlertUser(false); - +testCheckParentheses() // additions to jsUnit function assertTrue(comment, value) { @@ -31,7 +31,90 @@ function testCheckAllowedCharacters() { -fail(""); + var query ="a-zA-Z0-9_+\-:.()\"*?&|[EMAIL PROTECTED]/$%'= "; + assertTrue(query, checkAllowedCharacters(query)); + + query = "foobar"; + assertFalse(query, checkAllowedCharacters(query)); +} + +function testQueryParser() +{ + // taken from TestQueryParser.java + query = "a AND b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "(a AND b)"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+a +b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "c OR (a AND b)"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "c (+a +b)"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "a AND NOT b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+a -b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "a AND -b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + //query = "a AND !b"; + //assertTrue(query, doCheckLuceneQueryValue(query)); + query = "a && b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + //query = "a && ! b"; + //assertTrue(query, doCheckLuceneQueryValue(query)); + query = "a OR b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "a b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "a || b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + //query = "a OR !b"; + //assertTrue(query, doCheckLuceneQueryValue(query)); + //query = "a OR ! b"; + //assertTrue(query, doCheckLuceneQueryValue(query)); + query = "a OR -b"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+term -term term"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "foo:term AND field:anotherTerm"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "term AND \"phrase phrase\""; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "\"hello there\""; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "germ term^2.0"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "(term)^2.0"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "term^2.0"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "(germ term)^2.0"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "term^2.0"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "term^2"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "\"germ term\"^2.0"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "\"term germ\"^2"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "(foo OR bar) AND (baz OR boo)"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+(foo bar) +(baz boo)"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "((a OR b) AND NOT c) OR d"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "(+(a b) -c) d"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+(apple \"steve jobs\") -(foo bar baz)"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+(apple \"steve jobs\") -(foo bar baz)"; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+title:(dog OR cat) -author:\"bob dole\""; + assertTrue(query, doCheckLuceneQueryValue(query)); + query = "+(title:dog title:cat) -author:\"bob dole\""; + assertTrue(query, doCheckLuceneQueryValue(query)); } function testCheckAsterisk() @@ -93,6 +176,9 @@ query = "foo && bar12isok"; assertTrue(query, checkAmpersands(query)); + query = "foo && ! bar"; + assertTrue(query, checkAmpersands(query)); + query = "bar12 &&"; assertFalse(query, checkAmpersands(query)); @@ -197,6 +283,12 @@ query = "foo!"; assertTrue(query, checkExclamationMark(query)); + + query = "foo && ! bar"; + assertTrue(query, checkExclamationMark(query)); + + query = "foo && !bar"; + assertTrue(query, checkExclamationMark(query)); query = "! bar"; assertFalse(query, checkExclamationMark(query)); @@ -359,7 +451,59 @@ function testCheckANDORNOT() { -fail(""); + var query = "foo bar is ok"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo AND bar"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo OR bar"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo NOT bar"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo AND NOT bar"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo NOT bar -foobar"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo AND bar dog AND NOT fox"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo and"; + assertTrue(query, checkANDORNOT(query)); + + query = "and bar"; + assertTrue(query, checkANDORNOT(query)); + + query = "fooAND bar"; + assertTrue(query, checkANDORNOT(query)); + + query = "foo ANDbar"; + assertTrue(query, checkANDORNOT(query)); + + query = "AND bar"; + assertFalse(query, checkANDORNOT(query)); + + query = "OR bar"; + assertFalse(query, checkANDORNOT(query)); + + query = "NOT bar"; + assertFalse(query, checkANDORNOT(query)); + + query = "foo AND"; + assertFalse(query, checkANDORNOT(query)); + + query = "foo AND "; // note the space + assertFalse(query, checkANDORNOT(query)); + + query = "AND AND"; + assertFalse(query, checkANDORNOT(query)); + + query = "AND"; + assertFalse(query, checkANDORNOT(query)); } function testCheckQuotes()
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]