diff --git a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrTests.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrTests.java
index 5a129f8cf..6cb66dde6 100644
--- a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrTests.java
+++ b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrTests.java
@@ -98,6 +98,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfre
*
*/
protected static TestHarness.LocalRequestFactory lrf;
+ protected static String testNodeRef;
protected static String testBaseFolderNodeRef;
protected AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance();
diff --git a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/AlfrescoFTSQParserPluginTest.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/AlfrescoFTSQParserPluginTest.java
deleted file mode 100644
index ca3e4d2e3..000000000
--- a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/AlfrescoFTSQParserPluginTest.java
+++ /dev/null
@@ -1,1342 +0,0 @@
-///*
-// * Copyright (C) 2005-2014 Alfresco Software Limited.
-// *
-// * This file is part of Alfresco
-// *
-// * Alfresco is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU Lesser General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * Alfresco is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU Lesser General Public License for more details.
-// *
-// * You should have received a copy of the GNU Lesser General Public License
-// * along with Alfresco. If not, see .
-// */
-//
-//package org.alfresco.solr.query;
-//
-//import org.alfresco.model.ContentModel;
-//import org.alfresco.service.namespace.QName;
-//import org.alfresco.solr.AlfrescoSolrDataModel;
-//import org.alfresco.solr.AlfrescoSolrTestCaseJ4;
-//import org.alfresco.solr.SolrInformationServer;
-//import org.alfresco.util.SearchLanguageConversion;
-//import org.apache.lucene.util.LuceneTestCase;
-//import org.alfresco.repo.search.adaptor.lucene.QueryConstants;
-//import org.apache.solr.SolrTestCaseJ4;
-//import org.junit.Before;
-//import org.junit.BeforeClass;
-//import org.junit.Test;
-//
-//import java.util.Locale;
-//
-//
-//@LuceneTestCase.SuppressCodecs({"Appending","Lucene3x","Lucene40","Lucene41","Lucene42","Lucene43", "Lucene44", "Lucene45","Lucene46","Lucene47","Lucene48","Lucene49"})
-//@SolrTestCaseJ4.SuppressSSL
-//public class AlfrescoFTSQParserPluginTest extends AlfrescoSolrTestCaseJ4 implements QueryConstants {
-//
-// @BeforeClass
-// public static void beforeClass() throws Exception {
-// initAlfrescoCore("solrconfig-afts.xml", "schema-afts.xml");
-// Thread.sleep(30000);
-// loadTestSet();
-// }
-//
-// @Override
-// @Before
-// public void setUp() throws Exception {
-// // if you override setUp or tearDown, you better callf
-// // the super classes version
-// super.setUp();
-// //clearIndex();
-// //assertU(commit());
-// }
-//
-// /*
-// @Test
-// public void testAftsQueries() throws Exception {
-//
-// //assertU(delQ("*:*"));
-// //assertU(commit());
-//
-// String[] doc = {"id", "1", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
-// assertU(adoc(doc));
-// assertU(commit());
-// String[] doc1 = {"id", "2", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
-// assertU(adoc(doc1));
-//
-// String[] doc2 = {"id", "3", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
-// assertU(adoc(doc2));
-// assertU(commit());
-// String[] doc3 = {"id", "4", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
-// assertU(adoc(doc3));
-//
-// String[] doc4 = {"id", "5", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
-// assertU(adoc(doc4));
-// assertU(commit());
-//
-// String[] doc5 = {"id", "6", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
-// assertU(adoc(doc5));
-// assertU(commit());
-//
-//
-// ModifiableSolrParams params = new ModifiableSolrParams();
-// params.add("q", "t1:YYYY");
-// params.add("qt", "/afts");
-// params.add("start", "0");
-// params.add("rows", "6");
-// SolrServletRequest req = areq(params, "{\"locales\":[\"en\"], \"templates\": [{\"name\":\"t1\", \"template\":\"%cm:content\"}]}");
-// assertQ(req, "*[count(//doc)=6]");
-//
-// }
-//*/
-// @Test
-// public void dataChecks() throws Exception {
-// /******** Check the root node **********/
-// assertAQuery("PATH:\"/\"", 1);
-// assertAQuery("PATH:\"/.\"", 1);
-//
-// /******* Check paths ********************/
-// assertAQuery("PATH:\"/cm:one\"", 1);
-// assertAQuery("PATH:\"/cm:two\"", 1);
-// assertAQuery("PATH:\"/cm:three\"", 1);
-// assertAQuery("PATH:\"/cm:four\"", 1);
-// assertAQuery("PATH:\"/cm:eight-0\"", 1);
-// assertAQuery("PATH:\"/cm:five\"", 0);
-// assertAQuery("PATH:\"/cm:one/cm:one\"", 0);
-// assertAQuery("PATH:\"/cm:one/cm:two\"", 0);
-// assertAQuery("PATH:\"/cm:two/cm:one\"", 0);
-// assertAQuery("PATH:\"/cm:two/cm:two\"", 0);
-// assertAQuery("PATH:\"/cm:one/cm:five\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:six\"", 1);
-// assertAQuery("PATH:\"/cm:two/cm:seven\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:eight-1\"", 1);
-// assertAQuery("PATH:\"/cm:two/cm:eight-2\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:eight-2\"", 0);
-// assertAQuery("PATH:\"/cm:two/cm:eight-1\"", 0);
-// assertAQuery("PATH:\"/cm:two/cm:eight-0\"", 0);
-// assertAQuery("PATH:\"/cm:one/cm:eight-0\"", 0);
-// assertAQuery("PATH:\"/cm:one/cm:five/cm:nine\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:five/cm:ten\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:five/cm:eleven\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve/cm:thirteen\"", 1);
-// assertAQuery(
-// "PATH:\"/cm:one/cm:five/cm:twelve/cm:thirteen/cm:fourteen\"", 1);
-// assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve/cm:thirteen/cm:common\"",
-// 1);
-// assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve/cm:common\"", 1);
-// assertAQuery("PATH:\"/cm:*\"", 5);
-// assertAQuery("PATH:\"/cm:*/cm:*\"", 6);
-// assertAQuery("PATH:\"/cm:*/cm:five\"", 1);
-// assertAQuery("PATH:\"/cm:*/cm:*/cm:*\"", 6);
-// assertAQuery("PATH:\"/cm:one/cm:*\"", 4);
-// assertAQuery("PATH:\"/cm:*/cm:five/cm:*\"", 5);
-// assertAQuery("PATH:\"/cm:one/cm:*/cm:nine\"", 1);
-// assertAQuery("PATH:\"/*\"", 5);
-// assertAQuery("PATH:\"/*/*\"", 6);
-// assertAQuery("PATH:\"/*/cm:five\"", 1);
-// assertAQuery("PATH:\"/*/*/*\"", 6);
-// assertAQuery("PATH:\"/cm:one/*\"", 4);
-// assertAQuery("PATH:\"/*/cm:five/*\"", 5);
-// assertAQuery("PATH:\"/cm:one/*/cm:nine\"", 1);
-// assertAQuery("PATH:\"//.\"", 16);
-// assertAQuery("PATH:\"//*\"", 15);
-// assertAQuery("PATH:\"//*/.\"", 15);
-// assertAQuery("PATH:\"//*/./.\"", 15);
-// assertAQuery("PATH:\"//./*\"", 15);
-// assertAQuery("PATH:\"//././*/././.\"", 15);
-// assertAQuery("PATH:\"//cm:common\"", 1);
-// assertAQuery("PATH:\"/one//common\"", 1);
-// assertAQuery("PATH:\"/one/five//*\"", 7);
-// assertAQuery("PATH:\"/one/five//.\"", 8);
-// assertAQuery("PATH:\"/one//five/nine\"", 1);
-// assertAQuery("PATH:\"/one//thirteen/fourteen\"", 1);
-// assertAQuery("PATH:\"/one//thirteen/fourteen/.\"", 1);
-// assertAQuery("PATH:\"/one//thirteen/fourteen//.\"", 1);
-// assertAQuery("PATH:\"/one//thirteen/fourteen//.//.\"", 1);
-//
-// assertAQuery("PATH:\"/one\"", 1);
-// assertAQuery("PATH:\"/two\"", 1);
-// assertAQuery("PATH:\"/three\"", 1);
-// assertAQuery("PATH:\"/four\"", 1);
-//
-// /******** Check qNames ***************/
-// assertAQuery("QNAME:\"nine\"", 1);
-// assertAQuery("PRIMARYASSOCTYPEQNAME:\"cm:contains\"", 11);
-// assertAQuery("PRIMARYASSOCTYPEQNAME:\"sys:children\"", 4);
-// assertAQuery("ASSOCTYPEQNAME:\"cm:contains\"", 11);
-// assertAQuery("ASSOCTYPEQNAME:\"sys:children\"", 5);
-//
-// /******** check type ****************/
-// assertAQuery("TYPE:\"" + testType.toString() + "\"", 1);
-// assertAQuery("TYPE:\"" + testType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
-// assertAQuery("EXACTTYPE:\"" + testType.toString() + "\"", 1);
-// assertAQuery("EXACTTYPE:\"" + testType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
-// assertAQuery("TYPE:\"" + testSuperType.toString() + "\"", 13);
-// assertAQuery("TYPE:\"" + testSuperType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 13);
-// assertAQuery("TYPE:\"" + ContentModel.TYPE_CONTENT.toString() + "\"", 1);
-// assertAQuery("TYPE:\"cm:content\"", 1);
-// assertAQuery("TYPE:\"cm:content0\"", 0);
-// assertAQuery("TYPE:\"cm:CONTENT\"", 1);
-// assertAQuery("TYPE:\"cm:CONTENT1\"", 0);
-// assertAQuery("TYPE:\"CM:CONTENT\"", 1);
-// assertAQuery("TYPE:\"CM:CONTENT1\"", 0);
-// assertAQuery("TYPE:\"CONTENT\"", 1);
-// assertAQuery("TYPE:\"CONTENT1\"", 0);
-// assertAQuery("TYPE:\"content\"", 1);
-// assertAQuery("TYPE:\"content0\"", 0);
-// assertAQuery("ASPECT:\"flubber\"", 0);
-// assertAQuery("TYPE:\"" + ContentModel.TYPE_THUMBNAIL.toString() + "\"",
-// 1);
-// assertAQuery("TYPE:\"" + ContentModel.TYPE_THUMBNAIL.toString()
-// + "\" TYPE:\"" + ContentModel.TYPE_CONTENT.toString() + "\"", 2);
-// assertAQuery("EXACTTYPE:\"" + testSuperType.toString() + "\"", 12);
-// assertAQuery("EXACTTYPE:\"" + testSuperType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 12);
-// assertAQuery("ASPECT:\"" + testAspect.toString() + "\"", 1);
-// assertAQuery("ASPECT:\"" + testAspect.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
-// assertAQuery("EXACTASPECT:\"" + testAspect.toString() + "\"", 1);
-// assertAQuery("EXACTASPECT:\"" + testAspect.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
-//
-//
-// /*********** Check data type **********/
-// assertAQuery("d\\:double:\"5.6\"", 1);
-// assertAQuery("d\\:content:\"fox\"", 1);
-// assertAQuery("d\\:content:\"fox\"", 1, Locale.US, null, null);
-//
-//
-// /*********** Check text **************/
-// assertAQuery("TEXT:fox AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", 1);
-// assertAQuery("TEXT:fox @cm\\:name:fox", 1);
-// assertAQuery("d\\:content:fox d\\:text:fox", 1);
-// assertAQuery("TEXT:fo AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", 0);
-//
-// assertAQuery("TEXT:\"the\"", 1);
-// assertAQuery("TEXT:\"and\"", 1);
-//
-// //TODO fix this assert
-// //assertAQuery("TEXT:\"over the lazy\"", 1);
-// // Depends on stop words being removed .... which depends on the configuration
-// //assertAQuery("TEXT:\"over a lazy\"", 1);
-//
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":*a*", 1);
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":*A*", 1);
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":\"*a*\"", 1);
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":\"*A*\"", 1);
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":*s*", 1);
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":*S*", 1);
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":\"*s*\"", 1);
-// assertAQuery("\\@"
-// + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
-// "text-indexed-stored-tokenised-atomic").toString()) + ":\"*S*\"", 1);
-// assertAQuery("TEXT:*A*", 1);
-// assertAQuery("TEXT:\"*a*\"", 1);
-// assertAQuery("TEXT:\"*A*\"", 1);
-// assertAQuery("TEXT:*a*", 1);
-// assertAQuery("TEXT:*Z*", 1);
-// assertAQuery("TEXT:\"*z*\"", 1);
-// assertAQuery("TEXT:\"*Z*\"", 1);
-// assertAQuery("TEXT:*z*", 1);
-// assertAQuery("TEXT:laz*", 1);
-// assertAQuery("TEXT:laz~", 1);
-// assertAQuery("TEXT:la?y", 1);
-// assertAQuery("TEXT:?a?y", 1);
-// assertAQuery("TEXT:*azy", 1);
-// assertAQuery("TEXT:*az*", 1);
-//
-// // Accents
-//
-// assertAQuery("TEXT:\"\u00E0\u00EA\u00EE\u00F0\u00F1\u00F6\u00FB\u00FF\"", 1);
-// assertAQuery("TEXT:\"aeidnouy\"", 1);
-//
-// /**************** Check text *********************/
-//
-// assertAQuery("TEXT:\"fox\"", 1);
-// assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
-// + ":\"fox\"", 1);
-// assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
-// + ".mimetype:\"text/plain\"", 1);
-// assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
-// + ".locale:\"en_GB\"", 1);
-// assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
-// + ".locale:en_*", 1);
-// assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
-// + ".locale:e*_GB", 1);
-// assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
-// + ".size:\"298\"", 1);
-//
-// //TODO Fix these tests
-//
-// assertAQuery("TEXT:\"fox\"", 0, null, new String[] { "@"
-// + ContentModel.PROP_NAME.toString() }, null);
-// assertAQuery("TEXT:\"fox\"", 1, null, new String[] {
-// "@" + ContentModel.PROP_NAME.toString(), "@" + ContentModel.PROP_CONTENT.toString() }, null);
-// assertAQuery("TEXT:\"cabbage\"", 15, null, new String[] { "@"
-// + orderText.toString() }, null);
-// assertAQuery("TEXT:\"cab*\"", 15, null,
-// new String[] { "@" + orderText.toString() }, null);
-// assertAQuery("TEXT:\"*bage\"", 15, null,
-// new String[] { "@" + orderText.toString() }, null);
-// assertAQuery("TEXT:\"*ba*\"", 15, null,
-// new String[] { "@" + orderText.toString() }, null);
-// assertAQuery("TEXT:cabbage", 15, null,
-// new String[] { "@" + orderText.toString() }, null);
-// assertAQuery("TEXT:*cab*", 15, Locale.ENGLISH, new String[] { "@"
-// + orderText.toString() }, null);
-// assertAQuery("TEXT:*bage", 15, null,
-// new String[] { "@" + orderText.toString() }, null);
-//
-//// assertAQuery("TEXT:dabbage~0.3", 15, null, new String[] { "@"
-//// + orderText.toString() }, null);
-//
-// assertAQuery("TEXT:\"alfresco\"", 1);
-// assertAQuery("TEXT:\"alfresc?\"", 1);
-// assertAQuery("TEXT:\"alfres??\"", 1);
-// assertAQuery("TEXT:\"alfre???\"", 1);
-// assertAQuery("TEXT:\"alfr????\"", 1);
-// assertAQuery("TEXT:\"alf?????\"", 1);
-// assertAQuery("TEXT:\"al??????\"", 1);
-// assertAQuery("TEXT:\"a???????\"", 1);
-// assertAQuery("TEXT:\"????????\"", 1);
-// assertAQuery("TEXT:\"a??re???\"", 1);
-// assertAQuery("TEXT:\"?lfresco\"", 1);
-// assertAQuery("TEXT:\"??fresco\"", 1);
-// assertAQuery("TEXT:\"???resco\"", 1);
-// assertAQuery("TEXT:\"????esco\"", 1);
-// assertAQuery("TEXT:\"?????sco\"", 1);
-// assertAQuery("TEXT:\"??????co\"", 1);
-// assertAQuery("TEXT:\"???????o\"", 1);
-// assertAQuery("TEXT:\"???res?o\"", 1);
-// assertAQuery("TEXT:\"????e?co\"", 1);
-// assertAQuery("TEXT:\"????e?c?\"", 1);
-// assertAQuery("TEXT:\"???re???\"", 1);
-//
-// assertAQuery("TEXT:\"alfresc*\"", 1);
-// assertAQuery("TEXT:\"alfres*\"", 1);
-// assertAQuery("TEXT:\"alfre*\"", 1);
-// assertAQuery("TEXT:\"alfr*\"", 1);
-// assertAQuery("TEXT:\"alf*\"", 1);
-// assertAQuery("TEXT:\"al*\"", 1);
-// assertAQuery("TEXT:\"a*\"", 1);
-// assertAQuery("TEXT:\"a****\"", 1);
-// assertAQuery("TEXT:\"*lfresco\"", 1);
-// assertAQuery("TEXT:\"*fresco\"", 1);
-// assertAQuery("TEXT:\"*resco\"", 1);
-// assertAQuery("TEXT:\"*esco\"", 1);
-// assertAQuery("TEXT:\"*sco\"", 1);
-// assertAQuery("TEXT:\"*co\"", 1);
-// assertAQuery("TEXT:\"*o\"", 1);
-// assertAQuery("TEXT:\"****lf**sc***\"", 1);
-// // Lucene wildcard bug matches when it should not ....
-// //assertAQuery("TEXT:\"*??*lf**sc***\"", 0);
-// assertAQuery("TEXT:\"??lf**sc***\"", 0);
-// assertAQuery("TEXT:\"alfresc*tutorial\"", 0);
-// assertAQuery("TEXT:\"alf* tut*\"", 1);
-// assertAQuery("TEXT:\"*co *al\"", 1);
-//
-// /********* check mltext ************/
-//
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfresco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfresc?\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfres??\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfre???\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfr????\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alf?????\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"al??????\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"a???????\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"????????\"", 1);
-//
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"a??re???\"", 1);
-//
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"?lfresco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"??fresco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"???resco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"????esco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"?????sco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"??????co\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"???????o\"", 1);
-//
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"???resco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"???res?o\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"????e?co\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"????e?c?\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"???re???\"", 1);
-//
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfresc*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfres*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfre*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alfr*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"alf*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"al*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"a*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"a*****\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*lfresco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*fresco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*resco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*esco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*sco\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*co\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*o\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"****lf**sc***\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*??*lf**sc***\"", 0);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"Alfresc*tutorial\"", 0);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"Alf* tut*\"", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
-// + ":\"*co *al\"", 1);
-//
-// QName mlQName = QName.createQName(TEST_NAMESPACE, "ml");
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":and", 0);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":\"and\"", 0);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1);
-//
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1, Locale.UK,
-// null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1,
-// Locale.ENGLISH, null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banane", 1,
-// Locale.FRENCH, null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":香蕉", 1,
-// Locale.CHINESE, null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banaan", 1,
-// new Locale("nl"), null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banane", 1,
-// Locale.GERMAN, null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":μπανάνα", 1,
-// new Locale("el"), null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1,
-// Locale.ITALIAN, null, null);
-//
-// //TODO fix test
-// /*
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":�?ナナ", 1, new Locale(
-// "ja"), null, null);
-// */
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":바나나", 1, new Locale(
-// "ko"), null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1,
-// new Locale("pt"), null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":банан", 1, new Locale(
-// "ru"), null, null);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":plátano", 1,
-// new Locale("es"), null, null);
-//
-// /*********** Check ranges **************/
-//
-// assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[a TO b]", 1);
-// assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[a TO \uFFFF]", 14);
-// assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[* TO b]", 2);
-// assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[\u0000 TO b]", 2);
-// assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[d TO \uFFFF]", 12);
-// assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[d TO *]", 12);
-//
-// /*********** Check non-field ************/
-//
-// assertAQuery("TEXT:fox", 1);
-// assertAQuery("TEXT:fo*", 1);
-// assertAQuery("TEXT:f*x", 1);
-// assertAQuery("TEXT:*ox", 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":fox",
-// 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":fo*",
-// 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":f*x",
-// 1);
-// assertAQuery(
-// "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":*ox",
-// 1);
-// assertAQuery(
-// "@"
-// + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
-// .toPrefixString(dataModel.getNamespaceDAO())) + ":fox", 1);
-// assertAQuery(
-// "@"
-// + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
-// .toPrefixString(dataModel.getNamespaceDAO())) + ":fo*", 1);
-// assertAQuery(
-// "@"
-// + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
-// .toPrefixString(dataModel.getNamespaceDAO())) + ":f*x", 1);
-// assertAQuery(
-// "@"
-// + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
-// .toPrefixString(dataModel.getNamespaceDAO())) + ":*ox", 1);
-//
-// /************** Check null and unset *************/
-//
-// assertAQuery("ISUNSET:\""
-// + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 0);
-// assertAQuery("ISNULL:\"" + QName.createQName(TEST_NAMESPACE,
-// "null").toString() + "\"", 1);
-// assertAQuery("EXISTS:\"" + QName.createQName(TEST_NAMESPACE,
-// "null").toString() + "\"", 1);
-// assertAQuery("ISNOTNULL:\""
-// + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 0);
-//
-// assertAQuery("ISUNSET:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 0);
-// assertAQuery("ISNULL:\"" + QName.createQName(TEST_NAMESPACE,
-// "path-ista").toString() + "\"", 0);
-// assertAQuery("ISNOTNULL:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 1);
-// assertAQuery("EXISTS:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 1);
-//
-// assertAQuery("ISUNSET:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 0);
-// assertAQuery("ISNULL:\"" + QName.createQName(TEST_NAMESPACE,
-// "aspectProperty").toString() + "\"", 0);
-// assertAQuery("ISNOTNULL:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 1);
-// assertAQuery("EXISTS:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 1);
-//
-//
-// /***** Check internal fields ******/
-//
-// final Long aclId = new Long(1);
-//
-// for (int i = 1; i < 16; i++)
-// {
-// Long dbId = new Long(i);
-// String id = SearchLanguageConversion.escapeLuceneQuery(AlfrescoSolrDataModel.getNodeDocumentId(AlfrescoSolrDataModel.DEFAULT_TENANT, aclId, dbId));
-// assertQ(areq(params("q", FIELD_SOLR4_ID + ":" + id, "qt", "/afts"), null),
-// "*[count(//doc)=1]");
-// }
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_NODE), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_ACL), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_ACL_TX), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_TX), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PARENT + ":\"" + testNodeRef + "\""), null),
-// "*[count(//doc)=4]");
-//
-// // AbstractLuceneQueryParser.FIELD_LINKASPECT is not used for SOLR
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ANCESTOR + ":\"" + testNodeRef + "\""), null),
-// "*[count(//doc)=10]");
-//
-// // AbstractLuceneQueryParser.FIELD_ISCONTAINER is not used for SOLR
-// // AbstractLuceneQueryParser.FIELD_ISCATEGORY is not used for SOLR
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:one\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:two\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:three\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:four\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:five\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:six\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:seven\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eight-0\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eight-1\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eight-2\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:nine\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:ten\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eleven\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:twelve\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:thirteen\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:fourteen\""), null),
-// "*[count(//doc)=2]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:fifteen\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:common\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:link\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:one\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:two\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:three\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:four\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:five\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:six\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:seven\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eight-0\""), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eight-1\""), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eight-2\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:nine\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:ten\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eleven\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:twelve\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:thirteen\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:fourteen\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:fifteen\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:common\""), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:link\""), null),
-// "*[count(//doc)=0]");
-//
-// // AbstractLuceneQueryParser.FIELD_ISROOT is not used in SOLR
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCTYPEQNAME + ":\""
-// + ContentModel.ASSOC_CHILDREN.toPrefixString(dataModel.getNamespaceDAO()) + "\""), null),
-// "*[count(//doc)=4]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ISNODE + ":T"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ASSOCTYPEQNAME + ":\""
-// + ContentModel.ASSOC_CHILDREN.toPrefixString(dataModel.getNamespaceDAO()) + "\""), null),
-// "*[count(//doc)=5]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYPARENT + ":\"" + testNodeRef + "\""), null),
-// "*[count(//doc)=2]");
-//
-// // TYPE and ASPECT is covered in other tests
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_FTSSTATUS + ":\"New\""), null),
-// "*[count(//doc)=2]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":1"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":2"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":3"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":4"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":5"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":6"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":7"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":8"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":9"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":10"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":11"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":12"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":13"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":14"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":15"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":16"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":17"), null),
-// "*[count(//doc)=0]");
-//
-// // testQueryByHandler(report, core, "/afts", AbstractLuceneQueryParser.FIELD_DBID+":*", 16, null, null, (String)
-// // null);
-// // testQueryByHandler(report, core, "/afts", AbstractLuceneQueryParser.FIELD_DBID+":[3 TO 4]", 2, null, null,
-// // null);
-//
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_TXID + ":1"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_INTXID + ":1"), null),
-// "*[count(//doc)=17]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ACLTXID + ":1"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_INACLTXID + ":1"), null),
-// "*[count(//doc)=2]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_INACLTXID + ":2"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ACLID + ":1"), null),
-// "*[count(//doc)=17]");
-//
-//
-// //TODO fix tests
-// /*
-// assertQ(areq(params("rows", "20", "qt", "/native", "q", FIELD_TXCOMMITTIME + ":*"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_READER + ":\"GROUP_EVERYONE\""), null),
-// "*[count(//doc)=16]");
-//
-// testQueryByHandler(report, core, "/native", FIELD_TXCOMMITTIME + ":*", 1, null, null, null, null,
-// null, (String) null);
-//
-// testQueryByHandler(report, core, "/native", FIELD_ACLTXCOMMITTIME + ":*", 1, null, null, null,
-// null, null, (String) null);
-// */
-//
-// /*
-//
-// // AbstractLuceneQueryParser.FIELD_EXCEPTION_MESSAGE
-// // addNonDictionaryField(AbstractLuceneQueryParser.FIELD_EXCEPTION_STACK
-//
-//
-// testQueryByHandler(report, core, "/afts", FIELD_READER + ":\"GROUP_EVERYONE\"", 16, null, null,
-// null, null, null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":andy", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":bob", 1, null, null, null, null, null,
-// (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":cid", 1, null, null, null, null, null,
-// (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":dave", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":eoin", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":fred", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":gail", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":hal", 1, null, null, null, null, null,
-// (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":ian", 1, null, null, null, null, null,
-// (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":jake", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":kara", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":loon", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":mike", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":noodle", 1, null, null, null, null,
-// null, (String) null);
-// testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":ood", 1, null, null, null, null, null,
-// (String) null);
-//
-// testQueryByHandler(report, core, "/afts", FIELD_PARENT_ASSOC_CRC + ":0", 16, null, null, null,
-// null, null, (String) null);
-//
-// */
-//
-// /********************TEST FTS **************************/
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and dog"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-lazy and -dog"), null),
-// "*[count(//doc)=15]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|lazy and |dog"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|eager and |dog"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|lazy and |wolf"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|eager and |wolf"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-lazy or -dog"), null),
-// "*[count(//doc)=15]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-eager or -dog"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-lazy or -wolf"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-eager or -wolf"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy dog"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and not dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy not dog"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and !dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy !dog"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and -dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy -dog"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm_content:\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "d:content:\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "=cm_content:\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "~cm_content:\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:big OR cm:content:lazy"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:big AND cm:content:lazy"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "{http://www.alfresco.org/model/content/1.0}content:\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "=lazy"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:big OR @cm:content:lazy"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:big AND @cm:content:lazy"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@{http://www.alfresco.org/model/content/1.0}content:\"lazy\""), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "~@cm:content:big OR ~@cm:content:lazy"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown * quick"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown * dog"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(0) dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(1) dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(2) dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(3) dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(4) dog"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(5) dog"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(6) dog"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(\"lazy\")"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and dog)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy and -dog)"), null),
-// "*[count(//doc)=15]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy and dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and -dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|lazy and |dog)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|eager and |dog)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|lazy and |wolf)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|eager and |wolf)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy or -dog)"), null),
-// "*[count(//doc)=15]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-eager or -dog)"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy or -wolf)"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-eager or -wolf)"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy dog)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and not dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q","TEXT:(lazy not dog)"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and !dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy !dog)"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and -dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy -dog)"), null),
-// "*[count(//doc)=16]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm_content:(\"lazy\")"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:(big OR lazy)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:(big AND lazy)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "{http://www.alfresco.org/model/content/1.0}content:(\"lazy\")"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(=lazy)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:(big) OR @cm:content:(lazy)"), null),
-// "*[count(//doc)=1]");
-//
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:(big) AND @cm:content:(lazy)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@{http://www.alfresco.org/model/content/1.0}content:(\"lazy\")"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:(~big OR ~lazy)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown * quick)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown * dog)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(0) dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(1) dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(2) dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(3) dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(4) dog)"), null),
-// "*[count(//doc)=0]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(5) dog)"), null),
-// "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(6) dog)"), null),
-// "*[count(//doc)=1]");
-//
-// //Mimetype
-// assertAQueryHasNumberOfDocs("cm:content.mimetype:\"text/plain\"", 1);
-// assertAQueryHasNumberOfDocs("cm_content.mimetype:\"text/plain\"", 1);
-// assertAQueryHasNumberOfDocs("@cm_content.mimetype:\"text/plain\"", 1);
-// assertAQueryHasNumberOfDocs("content.mimetype:\"text/plain\"", 1);
-// assertAQueryHasNumberOfDocs("@{http://www.alfresco.org/model/content/1.0}content.mimetype:\"text/plain\"", 1);
-// assertAQueryHasNumberOfDocs("{http://www.alfresco.org/model/content/1.0}content.mimetype:\"text/plain\"", 1);
-//
-// //Numbers
-// QName qname = QName.createQName(TEST_NAMESPACE, "float\\-ista");
-//
-// assertAQueryHasNumberOfDocs(qname + ":3.40", 1);
-// assertAQueryHasNumberOfDocs(qname + ":3..4", 1);
-// assertAQueryHasNumberOfDocs(qname + ":3..3.39", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":3..3.40", 1);
-// assertAQueryHasNumberOfDocs(qname + ":3.41..3.9", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":3.40..3.9", 1);
-//
-// assertAQueryHasNumberOfDocs(qname + ":[3 TO 4]", 1);
-// assertAQueryHasNumberOfDocs(qname + ":[3 TO 3.39]", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":[3 TO 3.4]", 1);
-// assertAQueryHasNumberOfDocs(qname + ":[3.41 TO 4]", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":[3.4 TO 4]", 1);
-// assertAQueryHasNumberOfDocs(qname + ":[3 TO 3.4>", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":<3.4 TO 4]", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":<3.4 TO 3.4>", 0);;
-//
-// assertAQueryHasNumberOfDocs(qname + ":(3.40)", 1);
-// assertAQueryHasNumberOfDocs(qname + ":(3..4)", 1);
-// assertAQueryHasNumberOfDocs(qname + ":(3..3.39)", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":(3..3.40)", 1);
-// assertAQueryHasNumberOfDocs(qname + ":(3.41..3.9)", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":(3.40..3.9)", 1);
-//
-// assertAQueryHasNumberOfDocs(qname + ":([3 TO 4])", 1);
-// assertAQueryHasNumberOfDocs(qname + ":([3 TO 3.39])", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":([3 TO 3.4])", 1);
-// assertAQueryHasNumberOfDocs(qname + ":([3.41 TO 4])", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":([3.4 TO 4])", 1);
-// assertAQueryHasNumberOfDocs(qname + ":([3 TO 3.4>)", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":(<3.4 TO 4])", 0);;
-// assertAQueryHasNumberOfDocs(qname + ":(<3.4 TO 3.4>)", 0);;
-//
-// assertAQueryHasNumberOfDocs("test:float_x002D_ista:3.40", 1);
-//
-// //Test Lazy
-// assertAQueryHasNumberOfDocs("lazy", 1);
-// assertAQueryHasNumberOfDocs("laz*", 1);
-// assertAQueryHasNumberOfDocs("l*y", 1);
-// assertAQueryHasNumberOfDocs("l??y", 1);
-// assertAQueryHasNumberOfDocs("?az?", 1);
-// assertAQueryHasNumberOfDocs("*zy", 1);
-//
-// assertAQueryHasNumberOfDocs("\"lazy\"", 1);
-// assertAQueryHasNumberOfDocs("\"laz*\"", 1);
-// assertAQueryHasNumberOfDocs("\"l*y\"", 1);
-// assertAQueryHasNumberOfDocs("\"l??y\"", 1);
-// assertAQueryHasNumberOfDocs("\"?az?\"", 1);
-// assertAQueryHasNumberOfDocs("\"*zy\"", 1);
-//
-// assertAQueryHasNumberOfDocs("cm:content:lazy", 1);
-// assertAQueryHasNumberOfDocs("cm:content:laz*", 1);
-// assertAQueryHasNumberOfDocs("cm:content:l*y", 1);
-// assertAQueryHasNumberOfDocs("cm:content:l??y", 1);
-// assertAQueryHasNumberOfDocs("cm:content:?az?", 1);
-// assertAQueryHasNumberOfDocs("cm:content:*zy", 1);
-//
-// assertAQueryHasNumberOfDocs("cm:content:\"lazy\"", 1);
-// assertAQueryHasNumberOfDocs("cm:content:\"laz*\"", 1);
-// assertAQueryHasNumberOfDocs("cm:content:\"l*y\"", 1);
-// assertAQueryHasNumberOfDocs("cm:content:\"l??y\"", 1);
-// assertAQueryHasNumberOfDocs("cm:content:\"?az?\"", 1);
-// assertAQueryHasNumberOfDocs("cm:content:\"*zy\"", 1);
-//
-// assertAQueryHasNumberOfDocs("cm:content:(lazy)", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(laz*)", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(l*y)", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(l??y)", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(?az?)", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(*zy)", 1);
-//
-// assertAQueryHasNumberOfDocs("cm:content:(\"lazy\")", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(\"laz*\")", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(\"l*y\")", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(\"l??y\")", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(\"?az?\")", 1);
-// assertAQueryHasNumberOfDocs("cm:content:(\"*zy\")", 1);
-//
-// assertAQueryHasNumberOfDocs("lazy^2 dog^4.2", 1);
-// assertAQueryHasNumberOfDocs("lazy~0.7", 1);
-// assertAQueryHasNumberOfDocs("cm:content:laxy~0.7", 1);
-// assertAQueryHasNumberOfDocs("laxy~0.7", 1);
-// assertAQueryHasNumberOfDocs("=laxy~0.7", 1);
-// assertAQueryHasNumberOfDocs("~laxy~0.7", 1);
-//
-// assertAQueryHasNumberOfDocs("\"quick fox\"~0", 0);
-// assertAQueryHasNumberOfDocs("\"quick fox\"~1", 1);
-// assertAQueryHasNumberOfDocs("\"quick fox\"~2", 1);
-// assertAQueryHasNumberOfDocs("\"quick fox\"~3", 1);
-//
-// assertAQueryHasNumberOfDocs("\"fox quick\"~0", 0);
-// assertAQueryHasNumberOfDocs("\"fox quick\"~1", 0);
-// assertAQueryHasNumberOfDocs("\"fox quick\"~2", 1);
-// assertAQueryHasNumberOfDocs("\"fox quick\"~3", 1);
-//
-// assertAQueryHasNumberOfDocs("lazy", 1);
-// assertAQueryHasNumberOfDocs("-lazy", 15);
-// assertAQueryHasNumberOfDocs("lazy -lazy", 16);
-// assertAQueryHasNumberOfDocs("lazy^20 -lazy", 16);
-// assertAQueryHasNumberOfDocs("lazy^20 -lazy^20", 16);
-//
-// assertAQueryHasNumberOfDocs("cm:content:lazy",1);
-//// assertAQueryHasNumberOfDocs("ANDY:lazy", 1);
-// assertAQueryHasNumberOfDocs("content:lazy", 1);
-// assertAQueryHasNumberOfDocs("PATH:\"//.\"", 16);
-// assertAQueryHasNumberOfDocs("+PATH:\"/app:company_home/st:sites/cm:rmtestnew1/cm:documentLibrary//*\"", 0);
-// assertAQueryHasNumberOfDocs("+PATH:\"/app:company_home/st:sites/cm:rmtestnew1/cm:documentLibrary//*\" -TYPE:\"{http://www.alfresco.org/model/content/1.0}thumbnail\"", 15);
-// assertAQueryHasNumberOfDocs("+PATH:\"/app:company_home/st:sites/cm:rmtestnew1/cm:documentLibrary//*\" AND -TYPE:\"{http://www.alfresco.org/model/content/1.0}thumbnail\"", 0);
-//
-// assertAQueryHasNumberOfDocs("(brown *(6) dog)", 1);
-// assertAQueryHasNumberOfDocs("TEXT:(brown *(6) dog)", 1);
-// assertAQueryHasNumberOfDocs("\"//.\"", 0);
-// assertAQueryHasNumberOfDocs("cm:content:brown", 1);
-//
-// //assertAQueryHasNumberOfDocs("ANDY:brown", 1);
-// //assertAQueryHasNumberOfDocs("andy:brown", 1);
-// // testQueryByHandler(report, core, "/afts", "ANDY", "brown", 1, null, (String) null);
-// // testQueryByHandler(report, core, "/afts", "andy", "brown", 1, null, (String) null);
-//
-// assertAQueryHasNumberOfDocs("modified:*", 2);
-// assertAQueryHasNumberOfDocs("modified:[MIN TO NOW]", 2);
-//
-// assertAQueryHasNumberOfDocs("TYPE:" + testType.toString(), 1);
-//// testQueryByHandler(report, core, "/afts", "TYPE:" + testType.toString(), 0, null, null, null, null, null, (ContentStream)null, "mimetype():document");
-// assertAQueryHasNumberOfDocs("TYPE:" + ContentModel.TYPE_CONTENT.toString(), 1);
-//// testQueryByHandler(report, core, "/afts", "TYPE:" + ContentModel.TYPE_CONTENT.toString(), 1, null, null, null, null, null, (ContentStream)null, "mimetype():document");
-//// testQueryByHandler(report, core, "/afts", "TYPE:" + ContentModel.TYPE_CONTENT.toString(), 0, null, null, null, null, null, (ContentStream)null, "contentSize():[0 TO 100]");
-//// testQueryByHandler(report, core, "/afts", "TYPE:" + ContentModel.TYPE_CONTENT.toString(), 1, null, null, null, null, null, (ContentStream)null, "contentSize():[100 TO 1000]");
-//
-// assertAQueryHasNumberOfDocs("modified:[NOW/DAY-1DAY TO NOW/DAY+1DAY]", 2);
-// assertAQueryHasNumberOfDocs("modified:[NOW/DAY-1DAY TO *]", 2);
-// assertAQueryHasNumberOfDocs("modified:[* TO NOW/DAY+1DAY]", 2);
-// assertAQueryHasNumberOfDocs("modified:[* TO *]", 2);
-//
-// // Synonym
-// // 1 in text - 1 in query
-// assertAQueryHasNumberOfDocs("quick", 1);
-// assertAQueryHasNumberOfDocs("quick", 1);
-// // 3 words in test - 1..3 in query
-// assertAQueryHasNumberOfDocs("brown AND fox AND jumped", 1);
-////Not working
-//// assertAQueryHasNumberOfDocs("leaping AND reynard", 1);
-//// assertAQueryHasNumberOfDocs("springer", 1);
-// // 1 word in text 1..2 in query
-// assertAQueryHasNumberOfDocs("lazy", 1);
-//// assertAQueryHasNumberOfDocs("bone AND idle", 1);
-//
-// // Cross language support and tokenisation part and full.
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English123", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French123", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:123", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English123", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French123", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:123", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
-//
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English123", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French123", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:123", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
-//
-// /*
-// testQueryByHandler(report, core, "/afts", "PATH:\"//.\"", 16, "DBID desc", new Integer[] { 16, 15, 14, 13, 12, 11,
-// 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }, null, null, null, (String) null);
-//
-// // testQueryByHandler(report, core, "/afts", "PATH", "\"//.\"", 16, null, (String) null);
-// */
-//
-// //Auth code goes here
-// }
-//
-// private void assertAQueryHasNumberOfDocs(String query, int num)
-// {
-// assertQ(areq(params("rows", "20", "qt", "/afts", "q", query), null), "*[count(//doc)="+num+"]");
-// }
-//
-//
-//}
\ No newline at end of file
diff --git a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/AFTSQParserPluginSuite.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/AFTSQParserPluginSuite.java
new file mode 100644
index 000000000..445e79986
--- /dev/null
+++ b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/AFTSQParserPluginSuite.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2005-2014 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.solr.query.afts;
+
+import org.alfresco.solr.AbstractAlfrescoSolrTests;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+@RunWith(value = Suite.class)
+@SuiteClasses({
+ LoadAFTSTestData.class,
+ TestsAlfrescoFTSQParserPlugin.class
+})
+/**
+ * Test AFTS query and parsing plugin.
+ * The suite works by loading all the test data using LoadAFTSTestData.
+ * This step load the data directly into the harness.
+ * Once the data load completes the test executes the TestsAlfrescoFTSQParserPlugin
+ * which contains all the tests.
+ *
+ * @author Michael Suzuki
+ *
+ */
+public class AFTSQParserPluginSuite extends AbstractAlfrescoSolrTests
+{
+ @BeforeClass
+ public static void beforeClass() throws Exception
+ {
+ initAlfrescoCore("solrconfig-afts.xml", "schema-afts.xml");
+ Thread.sleep(30000);
+ }
+
+}
diff --git a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/LoadTestData.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/LoadAFTSTestData.java
similarity index 91%
rename from search-services/alfresco-solr/src/test/java/org/alfresco/solr/LoadTestData.java
rename to search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/LoadAFTSTestData.java
index afb180034..e952cc18f 100644
--- a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/LoadTestData.java
+++ b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/LoadAFTSTestData.java
@@ -16,14 +16,11 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see .
*/
-package org.alfresco.solr;
+package org.alfresco.solr.query.afts;
-import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_DOC_TYPE;
-import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_INTXID;
-import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_SOLR4_ID;
-import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_TXCOMMITTIME;
-import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_TXID;
-import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_VERSION;
+import static org.alfresco.solr.AlfrescoSolrUtils.addNode;
+import static org.alfresco.solr.AlfrescoSolrUtils.addStoreRoot;
+import static org.alfresco.solr.AlfrescoSolrUtils.createGUID;
import java.io.IOException;
import java.util.Calendar;
@@ -42,52 +39,23 @@ import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.repository.datatype.Duration;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
-import org.alfresco.solr.AlfrescoSolrTestCaseJ4.SolrServletRequest;
+import org.alfresco.solr.AbstractAlfrescoSolrTests;
+import org.alfresco.solr.AlfrecsoSolrConstants;
+import org.alfresco.solr.AlfrescoSolrDataModel;
import org.alfresco.solr.client.ContentPropertyValue;
import org.alfresco.solr.client.MLTextPropertyValue;
import org.alfresco.solr.client.MultiPropertyValue;
import org.alfresco.solr.client.PropertyValue;
import org.alfresco.solr.client.StringPropertyValue;
-import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.core.SolrCore;
-import org.apache.solr.update.AddUpdateCommand;
-import org.apache.solr.update.CommitUpdateCommand;
-import org.junit.BeforeClass;
import org.junit.Test;
-
-import static org.alfresco.solr.AlfrescoSolrUtils.*;
/**
* Load test data as part of legacy test.
* @author Michael Suzuki
*
*/
-public class LoadTestData extends AbstractAlfrescoSolrTests
+public class LoadAFTSTestData extends AbstractAlfrescoSolrTests implements AlfrecsoSolrConstants
{
- private static int orderTextCount = 0;
- private static Date orderDate = new Date();
- private static String[] orderNames = new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight",
- "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen" };
-
- // Spanish- Eng, French-English, Swedish German, English
- private static String[] orderLocalisedNames = new String[] { "chalina", "curioso", "llama", "luz", "peach", "péché",
- "pêche", "sin", "\u00e4pple", "banan", "p\u00e4ron", "orange", "rock", "rôle", "rose", "filler" };
-
- private static String[] orderLocaliseMLText_de = new String[] { "Arg", "Ärgerlich", "Arm", "Assistent", "Aßlar",
- "Assoziation", "Udet", "Übelacker", "Uell", "Ülle", "Ueve", "Üxküll", "Uffenbach", "apple", "and",
- "aardvark" };
-
- private static String[] orderLocaliseMLText_fr = new String[] { "cote", "côte", "coté", "côté", "rock", "lemur",
- "lemonade", "lemon", "kale", "guava", "cheese", "beans", "bananana", "apple", "and", "aardvark" };
-
- private static String[] orderLocaliseMLText_en = new String[] { "zebra", "tiger", "rose", "rôle", "rock", "lemur",
- "lemonade", "lemon", "kale", "guava", "cheese", "beans", "bananana", "apple", "and", "aardvark" };
-
- private static String[] orderLocaliseMLText_es = new String[] { "radio", "ráfaga", "rana", "rápido", "rastrillo", "arroz",
- "campo", "chihuahua", "ciudad", "limonada", "llaves", "luna", "bananana", "apple", "and", "aardvark" };
- @BeforeClass
- public static void beforeClass() throws Exception {
- initAlfrescoCore("solrconfig-afts.xml", "schema-afts.xml");
- }
@Test
public void loadTestSet() throws IOException {
// Root
@@ -102,6 +70,8 @@ public class LoadTestData extends AbstractAlfrescoSolrTests
NodeRef n01NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
+ testNodeRef = n01NodeRef.toString();
+
QName n01QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "one");
ChildAssociationRef n01CAR = new ChildAssociationRef(ContentModel.ASSOC_CHILDREN, rootNodeRef, n01QName,
n01NodeRef, true, 0);
@@ -427,46 +397,6 @@ public class LoadTestData extends AbstractAlfrescoSolrTests
+ n13QName + "/" + n15QName,
"/" + n02QName.toString() + "/" + n13QNameLink + "/" + n14QName }, n15NodeRef, true);
}
- private static void addStoreRoot(SolrCore core,
- AlfrescoSolrDataModel dataModel,
- NodeRef rootNodeRef,
- int txid,
- int dbid,
- int acltxid,
- int aclid) throws IOException
- {
- SolrServletRequest solrQueryRequest = null;
- try
- {
- solrQueryRequest = new SolrServletRequest(core, null);
- AddUpdateCommand addDocCmd = new AddUpdateCommand(solrQueryRequest);
- addDocCmd.overwrite = true;
- addDocCmd.solrDoc = createDocument(dataModel, new Long(txid), new Long(dbid), rootNodeRef,
- ContentModel.TYPE_STOREROOT, new QName[]{ContentModel.ASPECT_ROOT}, null, null, new Long(aclid),
- new String[]{"/"}, "system", null, null);
- core.getUpdateHandler().addDoc(addDocCmd);
- addAcl(solrQueryRequest, core, dataModel, acltxid, aclid, 0, 0);
-
- AddUpdateCommand txCmd = new AddUpdateCommand(solrQueryRequest);
- txCmd.overwrite = true;
- SolrInputDocument input = new SolrInputDocument();
- String id = AlfrescoSolrDataModel.getTransactionDocumentId(new Long(txid));
- input.addField(FIELD_SOLR4_ID, id);
- input.addField(FIELD_VERSION, "0");
- input.addField(FIELD_TXID, txid);
- input.addField(FIELD_INTXID, txid);
- input.addField(FIELD_TXCOMMITTIME, (new Date()).getTime());
- input.addField(FIELD_DOC_TYPE, SolrInformationServer.DOC_TYPE_TX);
- txCmd.solrDoc = input;
- core.getUpdateHandler().addDoc(txCmd);
-
- core.getUpdateHandler().commit(new CommitUpdateCommand(solrQueryRequest, false));
- }
- finally
- {
- solrQueryRequest.close();
- }
- }
private static Map getOrderProperties()
{
double orderDoubleCount = -0.11d + orderTextCount * ((orderTextCount % 2 == 0) ? 0.1d : -0.1d);
@@ -533,4 +463,25 @@ public class LoadTestData extends AbstractAlfrescoSolrTests
orderTextCount++;
return testProperties;
}
+ private static int orderTextCount = 0;
+ private static Date orderDate = new Date();
+ private static String[] orderNames = new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight",
+ "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen" };
+
+ // Spanish- Eng, French-English, Swedish German, English
+ private static String[] orderLocalisedNames = new String[] { "chalina", "curioso", "llama", "luz", "peach", "péché",
+ "pêche", "sin", "\u00e4pple", "banan", "p\u00e4ron", "orange", "rock", "rôle", "rose", "filler" };
+
+ private static String[] orderLocaliseMLText_de = new String[] { "Arg", "Ärgerlich", "Arm", "Assistent", "Aßlar",
+ "Assoziation", "Udet", "Übelacker", "Uell", "Ülle", "Ueve", "Üxküll", "Uffenbach", "apple", "and",
+ "aardvark" };
+
+ private static String[] orderLocaliseMLText_fr = new String[] { "cote", "côte", "coté", "côté", "rock", "lemur",
+ "lemonade", "lemon", "kale", "guava", "cheese", "beans", "bananana", "apple", "and", "aardvark" };
+
+ private static String[] orderLocaliseMLText_en = new String[] { "zebra", "tiger", "rose", "rôle", "rock", "lemur",
+ "lemonade", "lemon", "kale", "guava", "cheese", "beans", "bananana", "apple", "and", "aardvark" };
+
+ private static String[] orderLocaliseMLText_es = new String[] { "radio", "ráfaga", "rana", "rápido", "rastrillo", "arroz",
+ "campo", "chihuahua", "ciudad", "limonada", "llaves", "luna", "bananana", "apple", "and", "aardvark" };
}
diff --git a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/TestsAlfrescoFTSQParserPlugin.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/TestsAlfrescoFTSQParserPlugin.java
new file mode 100644
index 000000000..f8e2614a5
--- /dev/null
+++ b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/afts/TestsAlfrescoFTSQParserPlugin.java
@@ -0,0 +1,1324 @@
+/*
+ * Copyright (C) 2005-2014 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+
+package org.alfresco.solr.query.afts;
+
+import java.util.Locale;
+
+import org.alfresco.model.ContentModel;
+import org.alfresco.repo.search.adaptor.lucene.QueryConstants;
+import org.alfresco.service.namespace.QName;
+import org.alfresco.solr.AbstractAlfrescoSolrTests;
+import org.alfresco.solr.AlfrescoSolrDataModel;
+import org.alfresco.solr.SolrInformationServer;
+import org.alfresco.util.SearchLanguageConversion;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.solr.SolrTestCaseJ4;
+import org.junit.Test;
+
+
+@LuceneTestCase.SuppressCodecs({"Appending","Lucene3x","Lucene40","Lucene41","Lucene42","Lucene43", "Lucene44", "Lucene45","Lucene46","Lucene47","Lucene48","Lucene49"})
+@SolrTestCaseJ4.SuppressSSL
+public class TestsAlfrescoFTSQParserPlugin extends AbstractAlfrescoSolrTests implements QueryConstants {
+
+
+ /*
+ @Test
+ public void testAftsQueries() throws Exception {
+
+ //assertU(delQ("*:*"));
+ //assertU(commit());
+
+ String[] doc = {"id", "1", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
+ assertU(adoc(doc));
+ assertU(commit());
+ String[] doc1 = {"id", "2", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
+ assertU(adoc(doc1));
+
+ String[] doc2 = {"id", "3", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
+ assertU(adoc(doc2));
+ assertU(commit());
+ String[] doc3 = {"id", "4", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
+ assertU(adoc(doc3));
+
+ String[] doc4 = {"id", "5", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
+ assertU(adoc(doc4));
+ assertU(commit());
+
+ String[] doc5 = {"id", "6", "content@s___t@{http://www.alfresco.org/model/content/1.0}content", "YYYY"};
+ assertU(adoc(doc5));
+ assertU(commit());
+
+
+ ModifiableSolrParams params = new ModifiableSolrParams();
+ params.add("q", "t1:YYYY");
+ params.add("qt", "/afts");
+ params.add("start", "0");
+ params.add("rows", "6");
+ SolrServletRequest req = areq(params, "{\"locales\":[\"en\"], \"templates\": [{\"name\":\"t1\", \"template\":\"%cm:content\"}]}");
+ assertQ(req, "*[count(//doc)=6]");
+
+ }
+*/
+ @Test
+ public void dataChecks() throws Exception {
+ /******** Check the root node **********/
+ assertAQuery("PATH:\"/\"", 1);
+ assertAQuery("PATH:\"/.\"", 1);
+
+ /******* Check paths ********************/
+ assertAQuery("PATH:\"/cm:one\"", 1);
+ assertAQuery("PATH:\"/cm:two\"", 1);
+ assertAQuery("PATH:\"/cm:three\"", 1);
+ assertAQuery("PATH:\"/cm:four\"", 1);
+ assertAQuery("PATH:\"/cm:eight-0\"", 1);
+ assertAQuery("PATH:\"/cm:five\"", 0);
+ assertAQuery("PATH:\"/cm:one/cm:one\"", 0);
+ assertAQuery("PATH:\"/cm:one/cm:two\"", 0);
+ assertAQuery("PATH:\"/cm:two/cm:one\"", 0);
+ assertAQuery("PATH:\"/cm:two/cm:two\"", 0);
+ assertAQuery("PATH:\"/cm:one/cm:five\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:six\"", 1);
+ assertAQuery("PATH:\"/cm:two/cm:seven\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:eight-1\"", 1);
+ assertAQuery("PATH:\"/cm:two/cm:eight-2\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:eight-2\"", 0);
+ assertAQuery("PATH:\"/cm:two/cm:eight-1\"", 0);
+ assertAQuery("PATH:\"/cm:two/cm:eight-0\"", 0);
+ assertAQuery("PATH:\"/cm:one/cm:eight-0\"", 0);
+ assertAQuery("PATH:\"/cm:one/cm:five/cm:nine\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:five/cm:ten\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:five/cm:eleven\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve/cm:thirteen\"", 1);
+ assertAQuery(
+ "PATH:\"/cm:one/cm:five/cm:twelve/cm:thirteen/cm:fourteen\"", 1);
+ assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve/cm:thirteen/cm:common\"",
+ 1);
+ assertAQuery("PATH:\"/cm:one/cm:five/cm:twelve/cm:common\"", 1);
+ assertAQuery("PATH:\"/cm:*\"", 5);
+ assertAQuery("PATH:\"/cm:*/cm:*\"", 6);
+ assertAQuery("PATH:\"/cm:*/cm:five\"", 1);
+ assertAQuery("PATH:\"/cm:*/cm:*/cm:*\"", 6);
+ assertAQuery("PATH:\"/cm:one/cm:*\"", 4);
+ assertAQuery("PATH:\"/cm:*/cm:five/cm:*\"", 5);
+ assertAQuery("PATH:\"/cm:one/cm:*/cm:nine\"", 1);
+ assertAQuery("PATH:\"/*\"", 5);
+ assertAQuery("PATH:\"/*/*\"", 6);
+ assertAQuery("PATH:\"/*/cm:five\"", 1);
+ assertAQuery("PATH:\"/*/*/*\"", 6);
+ assertAQuery("PATH:\"/cm:one/*\"", 4);
+ assertAQuery("PATH:\"/*/cm:five/*\"", 5);
+ assertAQuery("PATH:\"/cm:one/*/cm:nine\"", 1);
+ assertAQuery("PATH:\"//.\"", 16);
+ assertAQuery("PATH:\"//*\"", 15);
+ assertAQuery("PATH:\"//*/.\"", 15);
+ assertAQuery("PATH:\"//*/./.\"", 15);
+ assertAQuery("PATH:\"//./*\"", 15);
+ assertAQuery("PATH:\"//././*/././.\"", 15);
+ assertAQuery("PATH:\"//cm:common\"", 1);
+ assertAQuery("PATH:\"/one//common\"", 1);
+ assertAQuery("PATH:\"/one/five//*\"", 7);
+ assertAQuery("PATH:\"/one/five//.\"", 8);
+ assertAQuery("PATH:\"/one//five/nine\"", 1);
+ assertAQuery("PATH:\"/one//thirteen/fourteen\"", 1);
+ assertAQuery("PATH:\"/one//thirteen/fourteen/.\"", 1);
+ assertAQuery("PATH:\"/one//thirteen/fourteen//.\"", 1);
+ assertAQuery("PATH:\"/one//thirteen/fourteen//.//.\"", 1);
+
+ assertAQuery("PATH:\"/one\"", 1);
+ assertAQuery("PATH:\"/two\"", 1);
+ assertAQuery("PATH:\"/three\"", 1);
+ assertAQuery("PATH:\"/four\"", 1);
+
+ /******** Check qNames ***************/
+ assertAQuery("QNAME:\"nine\"", 1);
+ assertAQuery("PRIMARYASSOCTYPEQNAME:\"cm:contains\"", 11);
+ assertAQuery("PRIMARYASSOCTYPEQNAME:\"sys:children\"", 4);
+ assertAQuery("ASSOCTYPEQNAME:\"cm:contains\"", 11);
+ assertAQuery("ASSOCTYPEQNAME:\"sys:children\"", 5);
+
+ /******** check type ****************/
+ assertAQuery("TYPE:\"" + testType.toString() + "\"", 1);
+ assertAQuery("TYPE:\"" + testType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
+ assertAQuery("EXACTTYPE:\"" + testType.toString() + "\"", 1);
+ assertAQuery("EXACTTYPE:\"" + testType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
+ assertAQuery("TYPE:\"" + testSuperType.toString() + "\"", 13);
+ assertAQuery("TYPE:\"" + testSuperType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 13);
+ assertAQuery("TYPE:\"" + ContentModel.TYPE_CONTENT.toString() + "\"", 1);
+ assertAQuery("TYPE:\"cm:content\"", 1);
+ assertAQuery("TYPE:\"cm:content0\"", 0);
+ assertAQuery("TYPE:\"cm:CONTENT\"", 1);
+ assertAQuery("TYPE:\"cm:CONTENT1\"", 0);
+ assertAQuery("TYPE:\"CM:CONTENT\"", 1);
+ assertAQuery("TYPE:\"CM:CONTENT1\"", 0);
+ assertAQuery("TYPE:\"CONTENT\"", 1);
+ assertAQuery("TYPE:\"CONTENT1\"", 0);
+ assertAQuery("TYPE:\"content\"", 1);
+ assertAQuery("TYPE:\"content0\"", 0);
+ assertAQuery("ASPECT:\"flubber\"", 0);
+ assertAQuery("TYPE:\"" + ContentModel.TYPE_THUMBNAIL.toString() + "\"",
+ 1);
+ assertAQuery("TYPE:\"" + ContentModel.TYPE_THUMBNAIL.toString()
+ + "\" TYPE:\"" + ContentModel.TYPE_CONTENT.toString() + "\"", 2);
+ assertAQuery("EXACTTYPE:\"" + testSuperType.toString() + "\"", 12);
+ assertAQuery("EXACTTYPE:\"" + testSuperType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 12);
+ assertAQuery("ASPECT:\"" + testAspect.toString() + "\"", 1);
+ assertAQuery("ASPECT:\"" + testAspect.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
+ assertAQuery("EXACTASPECT:\"" + testAspect.toString() + "\"", 1);
+ assertAQuery("EXACTASPECT:\"" + testAspect.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
+
+
+ /*********** Check data type **********/
+ assertAQuery("d\\:double:\"5.6\"", 1);
+ assertAQuery("d\\:content:\"fox\"", 1);
+ assertAQuery("d\\:content:\"fox\"", 1, Locale.US, null, null);
+
+
+ /*********** Check text **************/
+ assertAQuery("TEXT:fox AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", 1);
+ assertAQuery("TEXT:fox @cm\\:name:fox", 1);
+ assertAQuery("d\\:content:fox d\\:text:fox", 1);
+ assertAQuery("TEXT:fo AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", 0);
+
+ assertAQuery("TEXT:\"the\"", 1);
+ assertAQuery("TEXT:\"and\"", 1);
+
+ //TODO fix this assert
+ //assertAQuery("TEXT:\"over the lazy\"", 1);
+ // Depends on stop words being removed .... which depends on the configuration
+ //assertAQuery("TEXT:\"over a lazy\"", 1);
+
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":*a*", 1);
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":*A*", 1);
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":\"*a*\"", 1);
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":\"*A*\"", 1);
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":*s*", 1);
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":*S*", 1);
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":\"*s*\"", 1);
+ assertAQuery("\\@"
+ + SearchLanguageConversion.escapeLuceneQuery(QName.createQName(TEST_NAMESPACE,
+ "text-indexed-stored-tokenised-atomic").toString()) + ":\"*S*\"", 1);
+ assertAQuery("TEXT:*A*", 1);
+ assertAQuery("TEXT:\"*a*\"", 1);
+ assertAQuery("TEXT:\"*A*\"", 1);
+ assertAQuery("TEXT:*a*", 1);
+ assertAQuery("TEXT:*Z*", 1);
+ assertAQuery("TEXT:\"*z*\"", 1);
+ assertAQuery("TEXT:\"*Z*\"", 1);
+ assertAQuery("TEXT:*z*", 1);
+ assertAQuery("TEXT:laz*", 1);
+ assertAQuery("TEXT:laz~", 1);
+ assertAQuery("TEXT:la?y", 1);
+ assertAQuery("TEXT:?a?y", 1);
+ assertAQuery("TEXT:*azy", 1);
+ assertAQuery("TEXT:*az*", 1);
+
+ // Accents
+
+ assertAQuery("TEXT:\"\u00E0\u00EA\u00EE\u00F0\u00F1\u00F6\u00FB\u00FF\"", 1);
+ assertAQuery("TEXT:\"aeidnouy\"", 1);
+
+ /**************** Check text *********************/
+
+ assertAQuery("TEXT:\"fox\"", 1);
+ assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
+ + ":\"fox\"", 1);
+ assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
+ + ".mimetype:\"text/plain\"", 1);
+ assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
+ + ".locale:\"en_GB\"", 1);
+ assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
+ + ".locale:en_*", 1);
+ assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
+ + ".locale:e*_GB", 1);
+ assertAQuery("@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
+ + ".size:\"298\"", 1);
+
+ //TODO Fix these tests
+
+ assertAQuery("TEXT:\"fox\"", 0, null, new String[] { "@"
+ + ContentModel.PROP_NAME.toString() }, null);
+ assertAQuery("TEXT:\"fox\"", 1, null, new String[] {
+ "@" + ContentModel.PROP_NAME.toString(), "@" + ContentModel.PROP_CONTENT.toString() }, null);
+ assertAQuery("TEXT:\"cabbage\"", 15, null, new String[] { "@"
+ + orderText.toString() }, null);
+ assertAQuery("TEXT:\"cab*\"", 15, null,
+ new String[] { "@" + orderText.toString() }, null);
+ assertAQuery("TEXT:\"*bage\"", 15, null,
+ new String[] { "@" + orderText.toString() }, null);
+ assertAQuery("TEXT:\"*ba*\"", 15, null,
+ new String[] { "@" + orderText.toString() }, null);
+ assertAQuery("TEXT:cabbage", 15, null,
+ new String[] { "@" + orderText.toString() }, null);
+ assertAQuery("TEXT:*cab*", 15, Locale.ENGLISH, new String[] { "@"
+ + orderText.toString() }, null);
+ assertAQuery("TEXT:*bage", 15, null,
+ new String[] { "@" + orderText.toString() }, null);
+
+// assertAQuery("TEXT:dabbage~0.3", 15, null, new String[] { "@"
+// + orderText.toString() }, null);
+
+ assertAQuery("TEXT:\"alfresco\"", 1);
+ assertAQuery("TEXT:\"alfresc?\"", 1);
+ assertAQuery("TEXT:\"alfres??\"", 1);
+ assertAQuery("TEXT:\"alfre???\"", 1);
+ assertAQuery("TEXT:\"alfr????\"", 1);
+ assertAQuery("TEXT:\"alf?????\"", 1);
+ assertAQuery("TEXT:\"al??????\"", 1);
+ assertAQuery("TEXT:\"a???????\"", 1);
+ assertAQuery("TEXT:\"????????\"", 1);
+ assertAQuery("TEXT:\"a??re???\"", 1);
+ assertAQuery("TEXT:\"?lfresco\"", 1);
+ assertAQuery("TEXT:\"??fresco\"", 1);
+ assertAQuery("TEXT:\"???resco\"", 1);
+ assertAQuery("TEXT:\"????esco\"", 1);
+ assertAQuery("TEXT:\"?????sco\"", 1);
+ assertAQuery("TEXT:\"??????co\"", 1);
+ assertAQuery("TEXT:\"???????o\"", 1);
+ assertAQuery("TEXT:\"???res?o\"", 1);
+ assertAQuery("TEXT:\"????e?co\"", 1);
+ assertAQuery("TEXT:\"????e?c?\"", 1);
+ assertAQuery("TEXT:\"???re???\"", 1);
+
+ assertAQuery("TEXT:\"alfresc*\"", 1);
+ assertAQuery("TEXT:\"alfres*\"", 1);
+ assertAQuery("TEXT:\"alfre*\"", 1);
+ assertAQuery("TEXT:\"alfr*\"", 1);
+ assertAQuery("TEXT:\"alf*\"", 1);
+ assertAQuery("TEXT:\"al*\"", 1);
+ assertAQuery("TEXT:\"a*\"", 1);
+ assertAQuery("TEXT:\"a****\"", 1);
+ assertAQuery("TEXT:\"*lfresco\"", 1);
+ assertAQuery("TEXT:\"*fresco\"", 1);
+ assertAQuery("TEXT:\"*resco\"", 1);
+ assertAQuery("TEXT:\"*esco\"", 1);
+ assertAQuery("TEXT:\"*sco\"", 1);
+ assertAQuery("TEXT:\"*co\"", 1);
+ assertAQuery("TEXT:\"*o\"", 1);
+ assertAQuery("TEXT:\"****lf**sc***\"", 1);
+ // Lucene wildcard bug matches when it should not ....
+ //assertAQuery("TEXT:\"*??*lf**sc***\"", 0);
+ assertAQuery("TEXT:\"??lf**sc***\"", 0);
+ assertAQuery("TEXT:\"alfresc*tutorial\"", 0);
+ assertAQuery("TEXT:\"alf* tut*\"", 1);
+ assertAQuery("TEXT:\"*co *al\"", 1);
+
+ /********* check mltext ************/
+
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfresco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfresc?\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfres??\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfre???\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfr????\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alf?????\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"al??????\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"a???????\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"????????\"", 1);
+
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"a??re???\"", 1);
+
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"?lfresco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"??fresco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"???resco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"????esco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"?????sco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"??????co\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"???????o\"", 1);
+
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"???resco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"???res?o\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"????e?co\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"????e?c?\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"???re???\"", 1);
+
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfresc*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfres*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfre*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alfr*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"alf*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"al*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"a*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"a*****\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*lfresco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*fresco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*resco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*esco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*sco\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*co\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*o\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"****lf**sc***\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*??*lf**sc***\"", 0);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"Alfresc*tutorial\"", 0);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"Alf* tut*\"", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_DESCRIPTION.toString())
+ + ":\"*co *al\"", 1);
+
+ QName mlQName = QName.createQName(TEST_NAMESPACE, "ml");
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":and", 0);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":\"and\"", 0);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1);
+
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1, Locale.UK,
+ null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1,
+ Locale.ENGLISH, null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banane", 1,
+ Locale.FRENCH, null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":香蕉", 1,
+ Locale.CHINESE, null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banaan", 1,
+ new Locale("nl"), null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banane", 1,
+ Locale.GERMAN, null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":μπανάνα", 1,
+ new Locale("el"), null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1,
+ Locale.ITALIAN, null, null);
+
+ //TODO fix test
+ /*
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":�?ナナ", 1, new Locale(
+ "ja"), null, null);
+ */
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":바나나", 1, new Locale(
+ "ko"), null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":banana", 1,
+ new Locale("pt"), null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":банан", 1, new Locale(
+ "ru"), null, null);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(mlQName.toString()) + ":plátano", 1,
+ new Locale("es"), null, null);
+
+ /*********** Check ranges **************/
+
+ assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[a TO b]", 1);
+ assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[a TO \uFFFF]", 14);
+ assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[* TO b]", 2);
+ assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[\u0000 TO b]", 2);
+ assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[d TO \uFFFF]", 12);
+ assertAQuery("\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[d TO *]", 12);
+
+ /*********** Check non-field ************/
+
+ assertAQuery("TEXT:fox", 1);
+ assertAQuery("TEXT:fo*", 1);
+ assertAQuery("TEXT:f*x", 1);
+ assertAQuery("TEXT:*ox", 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":fox",
+ 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":fo*",
+ 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":f*x",
+ 1);
+ assertAQuery(
+ "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":*ox",
+ 1);
+ assertAQuery(
+ "@"
+ + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
+ .toPrefixString(dataModel.getNamespaceDAO())) + ":fox", 1);
+ assertAQuery(
+ "@"
+ + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
+ .toPrefixString(dataModel.getNamespaceDAO())) + ":fo*", 1);
+ assertAQuery(
+ "@"
+ + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
+ .toPrefixString(dataModel.getNamespaceDAO())) + ":f*x", 1);
+ assertAQuery(
+ "@"
+ + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT
+ .toPrefixString(dataModel.getNamespaceDAO())) + ":*ox", 1);
+
+ /************** Check null and unset *************/
+
+ assertAQuery("ISUNSET:\""
+ + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 0);
+ assertAQuery("ISNULL:\"" + QName.createQName(TEST_NAMESPACE,
+ "null").toString() + "\"", 1);
+ assertAQuery("EXISTS:\"" + QName.createQName(TEST_NAMESPACE,
+ "null").toString() + "\"", 1);
+ assertAQuery("ISNOTNULL:\""
+ + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 0);
+
+ assertAQuery("ISUNSET:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 0);
+ assertAQuery("ISNULL:\"" + QName.createQName(TEST_NAMESPACE,
+ "path-ista").toString() + "\"", 0);
+ assertAQuery("ISNOTNULL:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 1);
+ assertAQuery("EXISTS:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 1);
+
+ assertAQuery("ISUNSET:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 0);
+ assertAQuery("ISNULL:\"" + QName.createQName(TEST_NAMESPACE,
+ "aspectProperty").toString() + "\"", 0);
+ assertAQuery("ISNOTNULL:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 1);
+ assertAQuery("EXISTS:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 1);
+
+
+ /***** Check internal fields ******/
+
+ final Long aclId = new Long(1);
+
+ for (int i = 1; i < 16; i++)
+ {
+ Long dbId = new Long(i);
+ String id = SearchLanguageConversion.escapeLuceneQuery(AlfrescoSolrDataModel.getNodeDocumentId(AlfrescoSolrDataModel.DEFAULT_TENANT, aclId, dbId));
+ assertQ(areq(params("q", FIELD_SOLR4_ID + ":" + id, "qt", "/afts"), null),
+ "*[count(//doc)=1]");
+ }
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_NODE), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_ACL), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_ACL_TX), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", SearchLanguageConversion.escapeLuceneQuery(FIELD_DOC_TYPE) + ":" + SolrInformationServer.DOC_TYPE_TX), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PARENT + ":\"" + testNodeRef + "\""), null),
+ "*[count(//doc)=4]");
+
+ // AbstractLuceneQueryParser.FIELD_LINKASPECT is not used for SOLR
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ANCESTOR + ":\"" + testNodeRef + "\""), null),
+ "*[count(//doc)=10]");
+
+ // AbstractLuceneQueryParser.FIELD_ISCONTAINER is not used for SOLR
+ // AbstractLuceneQueryParser.FIELD_ISCATEGORY is not used for SOLR
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:one\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:two\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:three\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:four\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:five\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:six\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:seven\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eight-0\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eight-1\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eight-2\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:nine\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:ten\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:eleven\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:twelve\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:thirteen\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:fourteen\""), null),
+ "*[count(//doc)=2]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:fifteen\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:common\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_QNAME + ":\"cm:link\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:one\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:two\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:three\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:four\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:five\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:six\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:seven\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eight-0\""), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eight-1\""), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eight-2\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:nine\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:ten\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:eleven\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:twelve\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:thirteen\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:fourteen\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:fifteen\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:common\""), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCQNAME + ":\"cm:link\""), null),
+ "*[count(//doc)=0]");
+
+ // AbstractLuceneQueryParser.FIELD_ISROOT is not used in SOLR
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYASSOCTYPEQNAME + ":\""
+ + ContentModel.ASSOC_CHILDREN.toPrefixString(dataModel.getNamespaceDAO()) + "\""), null),
+ "*[count(//doc)=4]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ISNODE + ":T"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ASSOCTYPEQNAME + ":\""
+ + ContentModel.ASSOC_CHILDREN.toPrefixString(dataModel.getNamespaceDAO()) + "\""), null),
+ "*[count(//doc)=5]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_PRIMARYPARENT + ":\"" + testNodeRef + "\""), null),
+ "*[count(//doc)=2]");
+
+ // TYPE and ASPECT is covered in other tests
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_FTSSTATUS + ":\"New\""), null),
+ "*[count(//doc)=2]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":1"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":2"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":3"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":4"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":5"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":6"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":7"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":8"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":9"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":10"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":11"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":12"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":13"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":14"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":15"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":16"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_DBID + ":17"), null),
+ "*[count(//doc)=0]");
+
+ // testQueryByHandler(report, core, "/afts", AbstractLuceneQueryParser.FIELD_DBID+":*", 16, null, null, (String)
+ // null);
+ // testQueryByHandler(report, core, "/afts", AbstractLuceneQueryParser.FIELD_DBID+":[3 TO 4]", 2, null, null,
+ // null);
+
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_TXID + ":1"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_INTXID + ":1"), null),
+ "*[count(//doc)=17]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ACLTXID + ":1"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_INACLTXID + ":1"), null),
+ "*[count(//doc)=2]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_INACLTXID + ":2"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_ACLID + ":1"), null),
+ "*[count(//doc)=17]");
+
+
+ //TODO fix tests
+ /*
+ assertQ(areq(params("rows", "20", "qt", "/native", "q", FIELD_TXCOMMITTIME + ":*"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", FIELD_READER + ":\"GROUP_EVERYONE\""), null),
+ "*[count(//doc)=16]");
+
+ testQueryByHandler(report, core, "/native", FIELD_TXCOMMITTIME + ":*", 1, null, null, null, null,
+ null, (String) null);
+
+ testQueryByHandler(report, core, "/native", FIELD_ACLTXCOMMITTIME + ":*", 1, null, null, null,
+ null, null, (String) null);
+ */
+
+ /*
+
+ // AbstractLuceneQueryParser.FIELD_EXCEPTION_MESSAGE
+ // addNonDictionaryField(AbstractLuceneQueryParser.FIELD_EXCEPTION_STACK
+
+
+ testQueryByHandler(report, core, "/afts", FIELD_READER + ":\"GROUP_EVERYONE\"", 16, null, null,
+ null, null, null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":andy", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":bob", 1, null, null, null, null, null,
+ (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":cid", 1, null, null, null, null, null,
+ (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":dave", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":eoin", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":fred", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":gail", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":hal", 1, null, null, null, null, null,
+ (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":ian", 1, null, null, null, null, null,
+ (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":jake", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":kara", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":loon", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":mike", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":noodle", 1, null, null, null, null,
+ null, (String) null);
+ testQueryByHandler(report, core, "/afts", FIELD_OWNER + ":ood", 1, null, null, null, null, null,
+ (String) null);
+
+ testQueryByHandler(report, core, "/afts", FIELD_PARENT_ASSOC_CRC + ":0", 16, null, null, null,
+ null, null, (String) null);
+
+ */
+
+ /********************TEST FTS **************************/
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and dog"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-lazy and -dog"), null),
+ "*[count(//doc)=15]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|lazy and |dog"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|eager and |dog"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|lazy and |wolf"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "|eager and |wolf"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-lazy or -dog"), null),
+ "*[count(//doc)=15]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-eager or -dog"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-lazy or -wolf"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "-eager or -wolf"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy dog"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and not dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy not dog"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and !dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy !dog"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy and -dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "lazy -dog"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm_content:\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "d:content:\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "=cm_content:\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "~cm_content:\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:big OR cm:content:lazy"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:big AND cm:content:lazy"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "{http://www.alfresco.org/model/content/1.0}content:\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "=lazy"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:big OR @cm:content:lazy"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:big AND @cm:content:lazy"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@{http://www.alfresco.org/model/content/1.0}content:\"lazy\""), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "~@cm:content:big OR ~@cm:content:lazy"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown * quick"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown * dog"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(0) dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(1) dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(2) dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(3) dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(4) dog"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(5) dog"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "brown *(6) dog"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(\"lazy\")"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and dog)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy and -dog)"), null),
+ "*[count(//doc)=15]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy and dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and -dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|lazy and |dog)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|eager and |dog)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|lazy and |wolf)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(|eager and |wolf)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy or -dog)"), null),
+ "*[count(//doc)=15]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-eager or -dog)"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-lazy or -wolf)"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(-eager or -wolf)"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy dog)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and not dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q","TEXT:(lazy not dog)"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and !dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy !dog)"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy and -dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(lazy -dog)"), null),
+ "*[count(//doc)=16]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm_content:(\"lazy\")"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:(big OR lazy)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "cm:content:(big AND lazy)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "{http://www.alfresco.org/model/content/1.0}content:(\"lazy\")"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(=lazy)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:(big) OR @cm:content:(lazy)"), null),
+ "*[count(//doc)=1]");
+
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:(big) AND @cm:content:(lazy)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@{http://www.alfresco.org/model/content/1.0}content:(\"lazy\")"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "@cm:content:(~big OR ~lazy)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown * quick)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown * dog)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(0) dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(1) dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(2) dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(3) dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(4) dog)"), null),
+ "*[count(//doc)=0]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(5) dog)"), null),
+ "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "TEXT:(brown *(6) dog)"), null),
+ "*[count(//doc)=1]");
+
+ //Mimetype
+ assertAQueryHasNumberOfDocs("cm:content.mimetype:\"text/plain\"", 1);
+ assertAQueryHasNumberOfDocs("cm_content.mimetype:\"text/plain\"", 1);
+ assertAQueryHasNumberOfDocs("@cm_content.mimetype:\"text/plain\"", 1);
+ assertAQueryHasNumberOfDocs("content.mimetype:\"text/plain\"", 1);
+ assertAQueryHasNumberOfDocs("@{http://www.alfresco.org/model/content/1.0}content.mimetype:\"text/plain\"", 1);
+ assertAQueryHasNumberOfDocs("{http://www.alfresco.org/model/content/1.0}content.mimetype:\"text/plain\"", 1);
+
+ //Numbers
+ QName qname = QName.createQName(TEST_NAMESPACE, "float\\-ista");
+
+ assertAQueryHasNumberOfDocs(qname + ":3.40", 1);
+ assertAQueryHasNumberOfDocs(qname + ":3..4", 1);
+ assertAQueryHasNumberOfDocs(qname + ":3..3.39", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":3..3.40", 1);
+ assertAQueryHasNumberOfDocs(qname + ":3.41..3.9", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":3.40..3.9", 1);
+
+ assertAQueryHasNumberOfDocs(qname + ":[3 TO 4]", 1);
+ assertAQueryHasNumberOfDocs(qname + ":[3 TO 3.39]", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":[3 TO 3.4]", 1);
+ assertAQueryHasNumberOfDocs(qname + ":[3.41 TO 4]", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":[3.4 TO 4]", 1);
+ assertAQueryHasNumberOfDocs(qname + ":[3 TO 3.4>", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":<3.4 TO 4]", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":<3.4 TO 3.4>", 0);;
+
+ assertAQueryHasNumberOfDocs(qname + ":(3.40)", 1);
+ assertAQueryHasNumberOfDocs(qname + ":(3..4)", 1);
+ assertAQueryHasNumberOfDocs(qname + ":(3..3.39)", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":(3..3.40)", 1);
+ assertAQueryHasNumberOfDocs(qname + ":(3.41..3.9)", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":(3.40..3.9)", 1);
+
+ assertAQueryHasNumberOfDocs(qname + ":([3 TO 4])", 1);
+ assertAQueryHasNumberOfDocs(qname + ":([3 TO 3.39])", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":([3 TO 3.4])", 1);
+ assertAQueryHasNumberOfDocs(qname + ":([3.41 TO 4])", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":([3.4 TO 4])", 1);
+ assertAQueryHasNumberOfDocs(qname + ":([3 TO 3.4>)", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":(<3.4 TO 4])", 0);;
+ assertAQueryHasNumberOfDocs(qname + ":(<3.4 TO 3.4>)", 0);;
+
+ assertAQueryHasNumberOfDocs("test:float_x002D_ista:3.40", 1);
+
+ //Test Lazy
+ assertAQueryHasNumberOfDocs("lazy", 1);
+ assertAQueryHasNumberOfDocs("laz*", 1);
+ assertAQueryHasNumberOfDocs("l*y", 1);
+ assertAQueryHasNumberOfDocs("l??y", 1);
+ assertAQueryHasNumberOfDocs("?az?", 1);
+ assertAQueryHasNumberOfDocs("*zy", 1);
+
+ assertAQueryHasNumberOfDocs("\"lazy\"", 1);
+ assertAQueryHasNumberOfDocs("\"laz*\"", 1);
+ assertAQueryHasNumberOfDocs("\"l*y\"", 1);
+ assertAQueryHasNumberOfDocs("\"l??y\"", 1);
+ assertAQueryHasNumberOfDocs("\"?az?\"", 1);
+ assertAQueryHasNumberOfDocs("\"*zy\"", 1);
+
+ assertAQueryHasNumberOfDocs("cm:content:lazy", 1);
+ assertAQueryHasNumberOfDocs("cm:content:laz*", 1);
+ assertAQueryHasNumberOfDocs("cm:content:l*y", 1);
+ assertAQueryHasNumberOfDocs("cm:content:l??y", 1);
+ assertAQueryHasNumberOfDocs("cm:content:?az?", 1);
+ assertAQueryHasNumberOfDocs("cm:content:*zy", 1);
+
+ assertAQueryHasNumberOfDocs("cm:content:\"lazy\"", 1);
+ assertAQueryHasNumberOfDocs("cm:content:\"laz*\"", 1);
+ assertAQueryHasNumberOfDocs("cm:content:\"l*y\"", 1);
+ assertAQueryHasNumberOfDocs("cm:content:\"l??y\"", 1);
+ assertAQueryHasNumberOfDocs("cm:content:\"?az?\"", 1);
+ assertAQueryHasNumberOfDocs("cm:content:\"*zy\"", 1);
+
+ assertAQueryHasNumberOfDocs("cm:content:(lazy)", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(laz*)", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(l*y)", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(l??y)", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(?az?)", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(*zy)", 1);
+
+ assertAQueryHasNumberOfDocs("cm:content:(\"lazy\")", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(\"laz*\")", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(\"l*y\")", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(\"l??y\")", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(\"?az?\")", 1);
+ assertAQueryHasNumberOfDocs("cm:content:(\"*zy\")", 1);
+
+ assertAQueryHasNumberOfDocs("lazy^2 dog^4.2", 1);
+ assertAQueryHasNumberOfDocs("lazy~0.7", 1);
+ assertAQueryHasNumberOfDocs("cm:content:laxy~0.7", 1);
+ assertAQueryHasNumberOfDocs("laxy~0.7", 1);
+ assertAQueryHasNumberOfDocs("=laxy~0.7", 1);
+ assertAQueryHasNumberOfDocs("~laxy~0.7", 1);
+
+ assertAQueryHasNumberOfDocs("\"quick fox\"~0", 0);
+ assertAQueryHasNumberOfDocs("\"quick fox\"~1", 1);
+ assertAQueryHasNumberOfDocs("\"quick fox\"~2", 1);
+ assertAQueryHasNumberOfDocs("\"quick fox\"~3", 1);
+
+ assertAQueryHasNumberOfDocs("\"fox quick\"~0", 0);
+ assertAQueryHasNumberOfDocs("\"fox quick\"~1", 0);
+ assertAQueryHasNumberOfDocs("\"fox quick\"~2", 1);
+ assertAQueryHasNumberOfDocs("\"fox quick\"~3", 1);
+
+ assertAQueryHasNumberOfDocs("lazy", 1);
+ assertAQueryHasNumberOfDocs("-lazy", 15);
+ assertAQueryHasNumberOfDocs("lazy -lazy", 16);
+ assertAQueryHasNumberOfDocs("lazy^20 -lazy", 16);
+ assertAQueryHasNumberOfDocs("lazy^20 -lazy^20", 16);
+
+ assertAQueryHasNumberOfDocs("cm:content:lazy",1);
+// assertAQueryHasNumberOfDocs("ANDY:lazy", 1);
+ assertAQueryHasNumberOfDocs("content:lazy", 1);
+ assertAQueryHasNumberOfDocs("PATH:\"//.\"", 16);
+ assertAQueryHasNumberOfDocs("+PATH:\"/app:company_home/st:sites/cm:rmtestnew1/cm:documentLibrary//*\"", 0);
+ assertAQueryHasNumberOfDocs("+PATH:\"/app:company_home/st:sites/cm:rmtestnew1/cm:documentLibrary//*\" -TYPE:\"{http://www.alfresco.org/model/content/1.0}thumbnail\"", 15);
+ assertAQueryHasNumberOfDocs("+PATH:\"/app:company_home/st:sites/cm:rmtestnew1/cm:documentLibrary//*\" AND -TYPE:\"{http://www.alfresco.org/model/content/1.0}thumbnail\"", 0);
+
+ assertAQueryHasNumberOfDocs("(brown *(6) dog)", 1);
+ assertAQueryHasNumberOfDocs("TEXT:(brown *(6) dog)", 1);
+ assertAQueryHasNumberOfDocs("\"//.\"", 0);
+ assertAQueryHasNumberOfDocs("cm:content:brown", 1);
+
+ //assertAQueryHasNumberOfDocs("ANDY:brown", 1);
+ //assertAQueryHasNumberOfDocs("andy:brown", 1);
+ // testQueryByHandler(report, core, "/afts", "ANDY", "brown", 1, null, (String) null);
+ // testQueryByHandler(report, core, "/afts", "andy", "brown", 1, null, (String) null);
+
+ assertAQueryHasNumberOfDocs("modified:*", 2);
+ assertAQueryHasNumberOfDocs("modified:[MIN TO NOW]", 2);
+
+ assertAQueryHasNumberOfDocs("TYPE:" + testType.toString(), 1);
+// testQueryByHandler(report, core, "/afts", "TYPE:" + testType.toString(), 0, null, null, null, null, null, (ContentStream)null, "mimetype():document");
+ assertAQueryHasNumberOfDocs("TYPE:" + ContentModel.TYPE_CONTENT.toString(), 1);
+// testQueryByHandler(report, core, "/afts", "TYPE:" + ContentModel.TYPE_CONTENT.toString(), 1, null, null, null, null, null, (ContentStream)null, "mimetype():document");
+// testQueryByHandler(report, core, "/afts", "TYPE:" + ContentModel.TYPE_CONTENT.toString(), 0, null, null, null, null, null, (ContentStream)null, "contentSize():[0 TO 100]");
+// testQueryByHandler(report, core, "/afts", "TYPE:" + ContentModel.TYPE_CONTENT.toString(), 1, null, null, null, null, null, (ContentStream)null, "contentSize():[100 TO 1000]");
+
+ assertAQueryHasNumberOfDocs("modified:[NOW/DAY-1DAY TO NOW/DAY+1DAY]", 2);
+ assertAQueryHasNumberOfDocs("modified:[NOW/DAY-1DAY TO *]", 2);
+ assertAQueryHasNumberOfDocs("modified:[* TO NOW/DAY+1DAY]", 2);
+ assertAQueryHasNumberOfDocs("modified:[* TO *]", 2);
+
+ // Synonym
+ // 1 in text - 1 in query
+ assertAQueryHasNumberOfDocs("quick", 1);
+ assertAQueryHasNumberOfDocs("quick", 1);
+ // 3 words in test - 1..3 in query
+ assertAQueryHasNumberOfDocs("brown AND fox AND jumped", 1);
+//Not working
+// assertAQueryHasNumberOfDocs("leaping AND reynard", 1);
+// assertAQueryHasNumberOfDocs("springer", 1);
+ // 1 word in text 1..2 in query
+ assertAQueryHasNumberOfDocs("lazy", 1);
+// assertAQueryHasNumberOfDocs("bone AND idle", 1);
+
+ // Cross language support and tokenisation part and full.
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English123", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French123", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:123", "locale", Locale.ENGLISH.toString()), null), "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English123", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French123", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:123", "locale", Locale.FRENCH.toString()), null), "*[count(//doc)=1]");
+
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:English123", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:French123", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", "title:123", "locale", Locale.GERMAN.toString()), null), "*[count(//doc)=1]");
+
+ /*
+ testQueryByHandler(report, core, "/afts", "PATH:\"//.\"", 16, "DBID desc", new Integer[] { 16, 15, 14, 13, 12, 11,
+ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }, null, null, null, (String) null);
+
+ // testQueryByHandler(report, core, "/afts", "PATH", "\"//.\"", 16, null, (String) null);
+ */
+
+ //Auth code goes here
+ }
+
+ private void assertAQueryHasNumberOfDocs(String query, int num)
+ {
+ assertQ(areq(params("rows", "20", "qt", "/afts", "q", query), null), "*[count(//doc)="+num+"]");
+ }
+
+
+}
\ No newline at end of file