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 b3f71de93..5a129f8cf 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 testBaseFolderNodeRef; protected AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance(); public static void initAlfrescoCore(String config, String schema) throws Exception @@ -576,11 +577,23 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfre /** * Generates a SolrQueryRequest */ - public static SolrQueryRequest req(SolrParams params, String... moreParams) { - ModifiableSolrParams mp = new ModifiableSolrParams(params); - for (int i=0; i. + */ package org.alfresco.solr; import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_DOC_TYPE; @@ -38,7 +56,11 @@ 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 { private static int orderTextCount = 0; 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 index b295b0fe9..ca3e4d2e3 100644 --- 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 @@ -1,1342 +1,1342 @@ -/* - * 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 +///* +// * 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/cmis/CMISQParserPluginSuite.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/cmis/CMISQParserPluginSuite.java new file mode 100644 index 000000000..13421654a --- /dev/null +++ b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/cmis/CMISQParserPluginSuite.java @@ -0,0 +1,52 @@ +/* + * 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.cmis; + +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({ + LoadCMISData.class, + TestAlfrescoCMISQParserPlugin.class +}) +/** + * Test CMIS query and parsing plugin. + * The suite works by loading all the test data using LoadCMISData. + * This step load the data directly into the harness. + * Once the data load completes the test executes the AlfrescoCMISQParserPluginTests + * which contains all the tests. + * + * @author Michael Suzuki + * + */ +public class CMISQParserPluginSuite 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/query/cmis/LoadCMISData.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/cmis/LoadCMISData.java new file mode 100644 index 000000000..275e5292b --- /dev/null +++ b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/cmis/LoadCMISData.java @@ -0,0 +1,627 @@ +/* + * Copyright (C) 2005-2016 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.cmis; + +import java.io.IOException; +import java.util.Date; +import java.util.HashMap; +import java.util.Locale; + +import org.alfresco.model.ContentModel; +import org.alfresco.service.cmr.repository.ChildAssociationRef; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.StoreRef; +import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; +import org.alfresco.service.namespace.NamespaceService; +import org.alfresco.service.namespace.QName; +import org.alfresco.solr.AbstractAlfrescoSolrTests; +import org.alfresco.solr.AlfrescoSolrDataModel; +import org.alfresco.solr.client.ContentPropertyValue; +import org.alfresco.solr.client.MLTextPropertyValue; +import org.alfresco.solr.client.PropertyValue; +import org.alfresco.solr.client.StringPropertyValue; +import org.apache.solr.core.SolrCore; +import org.junit.Test; + +import static org.alfresco.solr.AlfrescoSolrUtils.*; +/** + * CMIS test data load, prepare test suite with data + * @author Michael Suzuki + * + */ +public class LoadCMISData extends AbstractAlfrescoSolrTests +{ + + @Test + public void loadCMISTestSet() throws IOException + { + SolrCore core = h.getCore(); + AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance(); + dataModel.setCMDefaultUri(); + NodeRef rootNodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + addStoreRoot(core, dataModel, rootNodeRef, 1, 1, 1, 1); + + // Base + + HashMap baseFolderProperties = new HashMap(); + baseFolderProperties.put(ContentModel.PROP_NAME, new StringPropertyValue("Base Folder")); + // This variable is never used. What was it meant to be used for? + HashMap baseFolderContent = new HashMap(); + NodeRef baseFolderNodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + testBaseFolderNodeRef = baseFolderNodeRef.toString(); + QName baseFolderQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "baseFolder"); + ChildAssociationRef n01CAR = new ChildAssociationRef(ContentModel.ASSOC_CHILDREN, rootNodeRef, + baseFolderQName, baseFolderNodeRef, true, 0); + addNode(core, dataModel, 1, 2, 1, ContentModel.TYPE_FOLDER, null, baseFolderProperties, null, "andy", + new ChildAssociationRef[] { n01CAR }, new NodeRef[] { rootNodeRef }, new String[] { "/" + + baseFolderQName.toString() }, baseFolderNodeRef, true); + + // Folders + + HashMap folder00Properties = new HashMap(); + folder00Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 0")); + HashMap folder00Content = new HashMap(); + NodeRef folder00NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder00QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 0"); + ChildAssociationRef folder00CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, baseFolderNodeRef, + folder00QName, folder00NodeRef, true, 0); + addNode(core, dataModel, 1, 3, 1, ContentModel.TYPE_FOLDER, null, folder00Properties, null, "andy", + new ChildAssociationRef[] { folder00CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() }, + folder00NodeRef, true); + + HashMap folder01Properties = new HashMap(); + folder01Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 1")); + HashMap folder01Content = new HashMap(); + NodeRef folder01NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder01QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 1"); + ChildAssociationRef folder01CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, baseFolderNodeRef, + folder01QName, folder01NodeRef, true, 0); + addNode(core, dataModel, 1, 4, 1, ContentModel.TYPE_FOLDER, null, folder01Properties, null, "bob", + new ChildAssociationRef[] { folder01CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder01QName.toString() }, + folder01NodeRef, true); + + HashMap folder02Properties = new HashMap(); + folder02Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 2")); + HashMap folder02Content = new HashMap(); + NodeRef folder02NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder02QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 2"); + ChildAssociationRef folder02CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, baseFolderNodeRef, + folder02QName, folder02NodeRef, true, 0); + addNode(core, dataModel, 1, 5, 1, ContentModel.TYPE_FOLDER, null, folder02Properties, null, "cid", + new ChildAssociationRef[] { folder02CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder02QName.toString() }, + folder02NodeRef, true); + + HashMap folder03Properties = new HashMap(); + folder03Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 3")); + HashMap folder03Content = new HashMap(); + NodeRef folder03NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder03QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 3"); + ChildAssociationRef folder03CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, baseFolderNodeRef, + folder03QName, folder03NodeRef, true, 0); + addNode(core, dataModel, 1, 6, 1, ContentModel.TYPE_FOLDER, null, folder03Properties, null, "dave", + new ChildAssociationRef[] { folder03CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder03QName.toString() }, + folder03NodeRef, true); + + HashMap folder04Properties = new HashMap(); + folder04Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 4")); + HashMap folder04Content = new HashMap(); + NodeRef folder04NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder04QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 4"); + ChildAssociationRef folder04CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder00NodeRef, + folder04QName, folder04NodeRef, true, 0); + addNode(core, dataModel, 1, 7, 1, ContentModel.TYPE_FOLDER, null, folder04Properties, null, "eoin", + new ChildAssociationRef[] { folder04CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef, + folder00NodeRef }, new String[] { "/" + baseFolderQName.toString() + "/" + + folder00QName.toString() + "/" + folder04QName.toString() }, folder04NodeRef, + true); + + HashMap folder05Properties = new HashMap(); + folder05Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 5")); + HashMap folder05Content = new HashMap(); + NodeRef folder05NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder05QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 5"); + ChildAssociationRef folder05CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder00NodeRef, + folder05QName, folder05NodeRef, true, 0); + addNode(core, dataModel, 1, 8, 1, ContentModel.TYPE_FOLDER, null, folder05Properties, null, "fred", + new ChildAssociationRef[] { folder05CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef, + folder00NodeRef }, new String[] { "/" + baseFolderQName.toString() + "/" + + folder00QName.toString() + "/" + folder05QName.toString() }, folder05NodeRef, + true); + + HashMap folder06Properties = new HashMap(); + folder06Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 6")); + HashMap folder06Content = new HashMap(); + NodeRef folder06NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder06QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 6"); + ChildAssociationRef folder06CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder05NodeRef, + folder06QName, folder06NodeRef, true, 0); + addNode(core, dataModel, 1, 9, 1, ContentModel.TYPE_FOLDER, null, folder06Properties, null, "gail", + new ChildAssociationRef[] { folder06CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef, + folder00NodeRef, folder05NodeRef }, new String[] { "/" + baseFolderQName.toString() + + "/" + folder00QName.toString() + "/" + folder05QName.toString() + "/" + + folder06QName.toString() }, folder06NodeRef, true); + + HashMap folder07Properties = new HashMap(); + folder07Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 7")); + HashMap folder07Content = new HashMap(); + NodeRef folder07NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder07QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 7"); + ChildAssociationRef folder07CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder06NodeRef, + folder07QName, folder07NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 10, + 1, + ContentModel.TYPE_FOLDER, + null, + folder07Properties, + null, + "hal", + new ChildAssociationRef[] { folder07CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + folder07QName.toString() }, folder07NodeRef, true); + + HashMap folder08Properties = new HashMap(); + folder08Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 8")); + HashMap folder08Content = new HashMap(); + NodeRef folder08NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder08QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 8"); + ChildAssociationRef folder08CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder07NodeRef, + folder08QName, folder08NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 11, + 1, + ContentModel.TYPE_FOLDER, + null, + folder08Properties, + null, + "ian", + new ChildAssociationRef[] { folder08CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef, folder07NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + folder07QName.toString() + "/" + folder08QName.toString() }, folder08NodeRef, + true); + + HashMap folder09Properties = new HashMap(); + folder09Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Folder 9'")); + HashMap folder09Content = new HashMap(); + NodeRef folder09NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName folder09QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Folder 9'"); + ChildAssociationRef folder09CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder08NodeRef, + folder09QName, folder09NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 12, + 1, + ContentModel.TYPE_FOLDER, + null, + folder09Properties, + null, + "jake", + new ChildAssociationRef[] { folder09CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef, folder07NodeRef, folder08NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + folder07QName.toString() + "/" + folder08QName.toString() + "/" + + folder09QName.toString() }, folder09NodeRef, true); + + // content + + HashMap content00Properties = new HashMap(); + MLTextPropertyValue desc00 = new MLTextPropertyValue(); + desc00.addValue(Locale.ENGLISH, "Alfresco tutorial"); + desc00.addValue(Locale.US, "Alfresco tutorial"); + content00Properties.put(ContentModel.PROP_DESCRIPTION, desc00); + content00Properties.put(ContentModel.PROP_TITLE, desc00); + content00Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content00Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("Alfresco Tutorial")); + content00Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content00Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + content00Properties.put(ContentModel.PROP_VERSION_LABEL, new StringPropertyValue("1.0")); + content00Properties.put(ContentModel.PROP_OWNER, new StringPropertyValue("andy")); + Date date00 = new Date(); + content00Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date00))); + content00Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date00))); + HashMap content00Content = new HashMap(); + content00Content + .put(ContentModel.PROP_CONTENT, + "The quick brown fox jumped over the lazy dog and ate the Alfresco Tutorial, in pdf format, along with the following stop words; a an and are" + + " as at be but by for if in into is it no not of on or such that the their then there these they this to was will with: " + + " and random charcters \u00E0\u00EA\u00EE\u00F0\u00F1\u00F6\u00FB\u00FF score"); + NodeRef content00NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content00QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "Alfresco Tutorial"); + ChildAssociationRef content00CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder00NodeRef, + content00QName, content00NodeRef, true, 0); + addNode(core, dataModel, 1, 13, 1, ContentModel.TYPE_CONTENT, new QName[] { ContentModel.ASPECT_OWNABLE, + ContentModel.ASPECT_TITLED }, content00Properties, content00Content, "andy", + new ChildAssociationRef[] { content00CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef, + folder00NodeRef }, new String[] { "/" + baseFolderQName.toString() + "/" + + folder00QName.toString() + "/" + content00QName.toString() }, content00NodeRef, + true); + + HashMap content01Properties = new HashMap(); + MLTextPropertyValue desc01 = new MLTextPropertyValue(); + desc01.addValue(Locale.ENGLISH, "One"); + desc01.addValue(Locale.US, "One"); + content01Properties.put(ContentModel.PROP_DESCRIPTION, desc01); + content01Properties.put(ContentModel.PROP_TITLE, desc01); + content01Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content01Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("AA%")); + content01Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content01Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date01 = new Date(date00.getTime() + 1000); + content01Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date01))); + content01Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date01))); + HashMap content01Content = new HashMap(); + content01Content.put(ContentModel.PROP_CONTENT, "One Zebra Apple score score score score score score score score score score score"); + NodeRef content01NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content01QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "AA%"); + ChildAssociationRef content01CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder01NodeRef, + content01QName, content01NodeRef, true, 0); + addNode(core, dataModel, 1, 14, 1, ContentModel.TYPE_CONTENT, new QName[] { ContentModel.ASPECT_TITLED }, + content01Properties, content01Content, "cmis", new ChildAssociationRef[] { content01CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder01NodeRef }, new String[] { "/" + + baseFolderQName.toString() + "/" + folder01QName.toString() + "/" + + content01QName.toString() }, content01NodeRef, true); + + HashMap content02Properties = new HashMap(); + MLTextPropertyValue desc02 = new MLTextPropertyValue(); + desc02.addValue(Locale.ENGLISH, "Two"); + desc02.addValue(Locale.US, "Two"); + content02Properties.put(ContentModel.PROP_DESCRIPTION, desc02); + content02Properties.put(ContentModel.PROP_TITLE, desc02); + content02Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content02Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("BB_")); + content02Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content02Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date02 = new Date(date01.getTime() + 1000); + content02Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date02))); + content02Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date02))); + HashMap content02Content = new HashMap(); + content02Content.put(ContentModel.PROP_CONTENT, "Two Zebra Banana score score score score score score score score score score pad"); + NodeRef content02NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content02QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "BB_"); + ChildAssociationRef content02CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder02NodeRef, + content02QName, content02NodeRef, true, 0); + addNode(core, dataModel, 1, 15, 1, ContentModel.TYPE_CONTENT, new QName[] { ContentModel.ASPECT_TITLED }, + content02Properties, content02Content, "cmis", new ChildAssociationRef[] { content02CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder02NodeRef }, new String[] { "/" + + baseFolderQName.toString() + "/" + folder02QName.toString() + "/" + + content02QName.toString() }, content02NodeRef, true); + + HashMap content03Properties = new HashMap(); + MLTextPropertyValue desc03 = new MLTextPropertyValue(); + desc03.addValue(Locale.ENGLISH, "Three"); + desc03.addValue(Locale.US, "Three"); + content03Properties.put(ContentModel.PROP_DESCRIPTION, desc03); + content03Properties.put(ContentModel.PROP_TITLE, desc03); + content03Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content03Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("CC\\")); + content03Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content03Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date03 = new Date(date02.getTime() + 1000); + content03Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date03))); + content03Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date03))); + HashMap content03Content = new HashMap(); + content03Content.put(ContentModel.PROP_CONTENT, "Three Zebra Clementine score score score score score score score score score pad pad"); + NodeRef content03NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content03QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "CC\\"); + ChildAssociationRef content03CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder03NodeRef, + content03QName, content03NodeRef, true, 0); + addNode(core, dataModel, 1, 16, 1, ContentModel.TYPE_CONTENT, new QName[] { ContentModel.ASPECT_TITLED }, + content03Properties, content03Content, "cmis", new ChildAssociationRef[] { content03CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder03NodeRef }, new String[] { "/" + + baseFolderQName.toString() + "/" + folder03QName.toString() + "/" + + content03QName.toString() }, content03NodeRef, true); + + HashMap content04Properties = new HashMap(); + MLTextPropertyValue desc04 = new MLTextPropertyValue(); + desc04.addValue(Locale.ENGLISH, "Four"); + desc04.addValue(Locale.US, "Four"); + content04Properties.put(ContentModel.PROP_DESCRIPTION, desc04); + content04Properties.put(ContentModel.PROP_TITLE, desc04); + content04Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content04Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("DD\'")); + content04Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content04Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date04 = new Date(date03.getTime() + 1000); + content04Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date04))); + content04Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date04))); + HashMap content04Content = new HashMap(); + content04Content.put(ContentModel.PROP_CONTENT, "Four zebra durian score score score score score score score score pad pad pad"); + NodeRef content04NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content04QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "DD\'"); + ChildAssociationRef content04CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder04NodeRef, + content04QName, content04NodeRef, true, 0); + addNode(core, dataModel, 1, 17, 1, ContentModel.TYPE_CONTENT, new QName[] { ContentModel.ASPECT_TITLED }, + content04Properties, content04Content, null, new ChildAssociationRef[] { content04CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder04NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder04QName.toString() + "/" + content04QName.toString() }, content04NodeRef, + true); + + HashMap content05Properties = new HashMap(); + MLTextPropertyValue desc05 = new MLTextPropertyValue(); + desc05.addValue(Locale.ENGLISH, "Five"); + desc05.addValue(Locale.US, "Five"); + content05Properties.put(ContentModel.PROP_DESCRIPTION, desc05); + content05Properties.put(ContentModel.PROP_TITLE, desc05); + content05Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content05Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("EE.aa")); + content05Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content05Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date05 = new Date(date04.getTime() + 1000); + content05Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date05))); + content05Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date05))); + content05Properties.put( + ContentModel.PROP_EXPIRY_DATE, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, + DefaultTypeConverter.INSTANCE.convert(Date.class, "2012-12-12T12:12:12.012Z")))); + content05Properties.put(ContentModel.PROP_LOCK_OWNER, new StringPropertyValue("andy")); + content05Properties.put(ContentModel.PROP_LOCK_TYPE, new StringPropertyValue("WRITE_LOCK")); + HashMap content05Content = new HashMap(); + content05Content.put(ContentModel.PROP_CONTENT, "Five zebra Ebury score score score score score score score pad pad pad pad"); + NodeRef content05NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content05QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "EE.aa"); + ChildAssociationRef content05CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder05NodeRef, + content05QName, content05NodeRef, true, 0); + addNode(core, dataModel, 1, 18, 1, ContentModel.TYPE_CONTENT, new QName[] { ContentModel.ASPECT_TITLED, + ContentModel.ASPECT_LOCKABLE }, content05Properties, content05Content, null, + new ChildAssociationRef[] { content05CAR }, new NodeRef[] { baseFolderNodeRef, rootNodeRef, + folder00NodeRef, folder05NodeRef }, new String[] { "/" + baseFolderQName.toString() + + "/" + folder00QName.toString() + "/" + content05QName.toString() }, + content05NodeRef, true); + + HashMap content06Properties = new HashMap(); + MLTextPropertyValue desc06 = new MLTextPropertyValue(); + desc06.addValue(Locale.ENGLISH, "Six"); + desc06.addValue(Locale.US, "Six"); + content06Properties.put(ContentModel.PROP_DESCRIPTION, desc06); + content06Properties.put(ContentModel.PROP_TITLE, desc06); + content06Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content06Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("FF.EE")); + content06Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content06Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date06 = new Date(date05.getTime() + 1000); + content06Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date06))); + content06Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date06))); + HashMap content06Content = new HashMap(); + content06Content.put(ContentModel.PROP_CONTENT, "Six zebra fig score score score score score score pad pad pad pad pad"); + NodeRef content06NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content06QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "FF.EE"); + ChildAssociationRef content06CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder06NodeRef, + content06QName, content06NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 19, + 1, + ContentModel.TYPE_CONTENT, + new QName[] { ContentModel.ASPECT_TITLED }, + content06Properties, + content06Content, + null, + new ChildAssociationRef[] { content06CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + content06QName.toString() }, content06NodeRef, true); + + HashMap content07Properties = new HashMap(); + MLTextPropertyValue desc07 = new MLTextPropertyValue(); + desc07.addValue(Locale.ENGLISH, "Seven"); + desc07.addValue(Locale.US, "Seven"); + content07Properties.put(ContentModel.PROP_DESCRIPTION, desc07); + content07Properties.put(ContentModel.PROP_TITLE, desc07); + content07Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content07Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("GG*GG")); + content07Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content07Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date07 = new Date(date06.getTime() + 1000); + content07Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date07))); + content07Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date07))); + HashMap content07Content = new HashMap(); + content07Content.put(ContentModel.PROP_CONTENT, "Seven zebra grapefruit score score score score score pad pad pad pad pad pad"); + NodeRef content07NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content07QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "GG*GG"); + ChildAssociationRef content07CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder07NodeRef, + content07QName, content07NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 20, + 1, + ContentModel.TYPE_CONTENT, + new QName[] { ContentModel.ASPECT_TITLED }, + content07Properties, + content07Content, + null, + new ChildAssociationRef[] { content07CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef, folder07NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + folder07QName.toString() + "/" + content07QName.toString() }, content07NodeRef, + true); + + HashMap content08Properties = new HashMap(); + MLTextPropertyValue desc08 = new MLTextPropertyValue(); + desc08.addValue(Locale.ENGLISH, "Eight"); + desc08.addValue(Locale.US, "Eight"); + content08Properties.put(ContentModel.PROP_DESCRIPTION, desc08); + content08Properties.put(ContentModel.PROP_TITLE, desc08); + content08Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-8", + "text/plain", null)); + content08Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("HH?HH")); + content08Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content08Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date08 = new Date(date07.getTime() + 1000); + content08Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date08))); + content08Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date08))); + HashMap content08Content = new HashMap(); + content08Content.put(ContentModel.PROP_CONTENT, "Eight zebra jackfruit score score score score pad pad pad pad pad pad pad"); + NodeRef content08NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content08QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "HH?HH"); + ChildAssociationRef content08CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder08NodeRef, + content08QName, content08NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 21, + 1, + ContentModel.TYPE_CONTENT, + new QName[] { ContentModel.ASPECT_TITLED }, + content08Properties, + content08Content, + null, + new ChildAssociationRef[] { content08CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef, folder07NodeRef, folder08NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + folder07QName.toString() + "/" + folder08QName.toString() + "/" + + content08QName.toString() }, content08NodeRef, true); + + HashMap content09Properties = new HashMap(); + MLTextPropertyValue desc09 = new MLTextPropertyValue(); + desc09.addValue(Locale.ENGLISH, "Nine"); + desc09.addValue(Locale.US, "Nine"); + content09Properties.put(ContentModel.PROP_DESCRIPTION, desc09); + content09Properties.put(ContentModel.PROP_TITLE, desc09); + content09Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-9", + "text/plain", null)); + content09Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("aa")); + content09Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content09Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date09 = new Date(date08.getTime() + 1000); + content09Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date09))); + content09Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date09))); + content09Properties.put(ContentModel.PROP_VERSION_LABEL, new StringPropertyValue("label")); + HashMap content09Content = new HashMap(); + content09Content.put(ContentModel.PROP_CONTENT, "Nine zebra kiwi score score score pad pad pad pad pad pad pad pad"); + NodeRef content09NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content09QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "aa"); + ChildAssociationRef content09CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder09NodeRef, + content09QName, content09NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 22, + 1, + ContentModel.TYPE_CONTENT, + new QName[] { ContentModel.ASPECT_TITLED }, + content09Properties, + content09Content, + null, + new ChildAssociationRef[] { content09CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef, folder07NodeRef, folder08NodeRef, folder09NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + folder07QName.toString() + "/" + folder08QName.toString() + "/" + + folder09QName.toString() + "/" + content09QName.toString() }, content09NodeRef, + true); + + HashMap content10Properties = new HashMap(); + MLTextPropertyValue desc10 = new MLTextPropertyValue(); + desc10.addValue(Locale.ENGLISH, "Ten"); + desc10.addValue(Locale.US, "Ten"); + content10Properties.put(ContentModel.PROP_DESCRIPTION, desc10); + content10Properties.put(ContentModel.PROP_TITLE, desc10); + content10Properties.put(ContentModel.PROP_CONTENT, new ContentPropertyValue(Locale.UK, 0l, "UTF-9", + "text/plain", null)); + content10Properties.put(ContentModel.PROP_NAME, new StringPropertyValue("aa-thumb")); + content10Properties.put(ContentModel.PROP_CREATOR, new StringPropertyValue("System")); + content10Properties.put(ContentModel.PROP_MODIFIER, new StringPropertyValue("System")); + Date date10 = new Date(date09.getTime() + 1000); + content10Properties.put(ContentModel.PROP_CREATED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date10))); + content10Properties.put(ContentModel.PROP_MODIFIED, + new StringPropertyValue(DefaultTypeConverter.INSTANCE.convert(String.class, date10))); + content10Properties.put(ContentModel.PROP_VERSION_LABEL, new StringPropertyValue("label")); + HashMap content10Content = new HashMap(); + content10Content.put(ContentModel.PROP_CONTENT, "Ten zebra kiwi thumb score pad pad pad pad pad pad pad pad pad"); + NodeRef content10NodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID()); + QName content10QName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "aa-thumb"); + ChildAssociationRef content10CAR = new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, folder09NodeRef, + content10QName, content10NodeRef, true, 0); + addNode(core, + dataModel, + 1, + 23, + 1, + ContentModel.TYPE_DICTIONARY_MODEL, + new QName[] { ContentModel.ASPECT_TITLED }, + content10Properties, + content10Content, + null, + new ChildAssociationRef[] { content10CAR }, + new NodeRef[] { baseFolderNodeRef, rootNodeRef, folder00NodeRef, folder05NodeRef, + folder06NodeRef, folder07NodeRef, folder08NodeRef, folder09NodeRef }, + new String[] { "/" + baseFolderQName.toString() + "/" + folder00QName.toString() + "/" + + folder05QName.toString() + "/" + folder06QName.toString() + "/" + + folder07QName.toString() + "/" + folder08QName.toString() + "/" + + folder09QName.toString() + "/" + content10QName.toString() }, content10NodeRef, + true); + } +} diff --git a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/AlfrescoCMISQParserPluginTest.java b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/cmis/TestAlfrescoCMISQParserPlugin.java similarity index 95% rename from search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/AlfrescoCMISQParserPluginTest.java rename to search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/cmis/TestAlfrescoCMISQParserPlugin.java index f02018d8d..5e64d955e 100644 --- a/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/AlfrescoCMISQParserPluginTest.java +++ b/search-services/alfresco-solr/src/test/java/org/alfresco/solr/query/cmis/TestAlfrescoCMISQParserPlugin.java @@ -17,48 +17,19 @@ * along with Alfresco. If not, see . */ -package org.alfresco.solr.query; +package org.alfresco.solr.query.cmis; -import org.alfresco.model.ContentModel; -import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.StoreRef; -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.alfresco.solr.AbstractAlfrescoSolrTests; +import org.apache.lucene.util.LuceneTestCase; import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.common.params.ModifiableSolrParams; -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 AlfrescoCMISQParserPluginTest extends AlfrescoSolrTestCaseJ4 implements QueryConstants { - - @BeforeClass - public static void beforeClass() throws Exception { - initAlfrescoCore("solrconfig-afts.xml", "schema-afts.xml"); - Thread.sleep(30000); - loadCMISTestSet(); - } - - @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()); - } - +public class TestAlfrescoCMISQParserPlugin extends AbstractAlfrescoSolrTests implements QueryConstants +{ @Test public void dataChecks() throws Exception {