From: <die...@us...> - 2010-03-19 07:58:23
|
Revision: 2153 http://openutils.svn.sourceforge.net/openutils/?rev=2153&view=rev Author: diego_schivo Date: 2010-03-19 07:58:17 +0000 (Fri, 19 Mar 2010) Log Message: ----------- CRIT-9 unit tests of Restrictions.contains with search-engine syntax enabled Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java Modified: trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java =================================================================== --- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2010-03-19 07:45:10 UTC (rev 2152) +++ trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2010-03-19 07:58:17 UTC (rev 2153) @@ -7,6 +7,7 @@ import info.magnolia.cms.core.Content; import info.magnolia.context.MgnlContext; +import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -40,14 +41,39 @@ super.setUp(); - bootstrapSingleResource("/crit-bootstrap/website.jcr-contains.xml"); + bootstrapSingleResource("/crit-bootstrap/website.contains.xml"); MgnlContext.getHierarchyManager(ContentRepository.WEBSITE).save(); } @Test + public void testLoremAndAmet() throws Exception + { + Criteria criteria = criteria("lorem amet", false); + AdvancedResult advResult = criteria.execute(); + Assert.assertNotNull(advResult); + Assert.assertEquals(1, advResult.getTotalSize()); + ResultIterator<AdvancedResultItem> items = advResult.getItems(); + AdvancedResultItem item = items.next(); + Assert.assertEquals("Lorem ipsum dolor sit amet", item.getTitle()); + } + + @Test + public void testSitAndNotAmet() throws Exception + { + Criteria criteria = criteria("sit -amet", false); + AdvancedResult advResult = criteria.execute(); + Assert.assertNotNull(advResult); + Assert.assertEquals(1, advResult.getTotalSize()); + ResultIterator<AdvancedResultItem> items = advResult.getItems(); + AdvancedResultItem item = items.next(); + Assert.assertEquals("Lorem ipsum dolor sit", item.getTitle()); + } + + @Test public void testTest1() throws Exception { - Criteria criteria = criteria("test?"); + String textEnteredByUser = "test?"; + Criteria criteria = criteria(textEnteredByUser, true); Assert.assertEquals("//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'test\\?')))]", StringUtils .remove(criteria.toXpathExpression(), ' ')); AdvancedResult advResult = null; @@ -69,7 +95,8 @@ @Test public void testTest2() throws Exception { - Criteria criteria = criteria("te?st"); + String textEnteredByUser = "te?st"; + Criteria criteria = criteria(textEnteredByUser, true); // Assert.assertEquals("//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'te\\?st')))]", StringUtils // .remove(criteria.toXpathExpression(), ' ')); AdvancedResult advResult = null; @@ -91,7 +118,8 @@ @Test public void testMilano() throws Exception { - Criteria criteria = criteria("\"Milano\""); + String textEnteredByUser = "\"Milano\""; + Criteria criteria = criteria(encode(textEnteredByUser), true); // Assert.assertEquals("//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'\\\"Milano\\\"')))]", StringUtils // .remove(criteria.toXpathExpression(), ' ')); AdvancedResult advResult = null; @@ -110,12 +138,21 @@ Assert.assertEquals("hello \\\"Milano\\\" world", item.getTitle()); } - private Criteria criteria(String titleSearch) + private String encode(String textEnteredByUser) { + return StringUtils.replaceEach(textEnteredByUser, new String[]{ + "\"", "-" + }, new String[]{ + "\\\"", "\\-" + }); + } + + private Criteria criteria(String titleSearch, boolean escape) + { Criteria criteria = JCRCriteriaFactory.createCriteria().setWorkspace(ContentRepository.WEBSITE); criteria.setBasePath(StringUtils.EMPTY); criteria.add(Restrictions.eq("@jcr:primaryType", "mgnl:content")); - criteria.add(Restrictions.contains("@title", titleSearch)); + criteria.add(Restrictions.contains("@title", titleSearch, escape)); return criteria; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2170 http://openutils.svn.sourceforge.net/openutils/?rev=2170&view=rev Author: fgiust Date: 2010-03-19 22:32:27 +0000 (Fri, 19 Mar 2010) Log Message: ----------- remove System.out Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java Modified: trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java =================================================================== --- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2010-03-19 22:32:08 UTC (rev 2169) +++ trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2010-03-19 22:32:27 UTC (rev 2170) @@ -164,7 +164,6 @@ { String textEnteredByUser = "\"Milano\""; Criteria criteria = criteria(textEnteredByUser, true); - System.out.println("> " + criteria.toXpathExpression()); Assert.assertEquals( "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'\\\"Milano\\\"')))]", StringUtils.remove(criteria.toXpathExpression(), ' ')); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2914 http://openutils.svn.sourceforge.net/openutils/?rev=2914&view=rev Author: fgiust Date: 2010-08-28 08:14:49 +0000 (Sat, 28 Aug 2010) Log Message: ----------- CRIT-19 fix test for jackrabbit 2.x (totalSize is, according to specifications, not required and evaluated by jackrabbit only where is an "order by" clause) Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java Modified: trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java =================================================================== --- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2010-08-28 07:55:31 UTC (rev 2913) +++ trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2010-08-28 08:14:49 UTC (rev 2914) @@ -32,6 +32,7 @@ import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRCriteriaFactory; import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRQueryException; import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIterator; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Order; import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Restrictions; import net.sourceforge.openutils.mgnlcriteria.tests.RepositoryTestNgTestcase; @@ -139,7 +140,7 @@ Criteria criteria = criteria(textEnteredByUser, true); Assert.assertEquals( StringUtils.remove(criteria.toXpathExpression(), ' '), - "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'test\\?')))]"); + "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'test\\?')))]orderby@jcr:scoredescending"); AdvancedResult advResult = null; try { @@ -163,7 +164,7 @@ Criteria criteria = criteria(textEnteredByUser, true); Assert.assertEquals( StringUtils.remove(criteria.toXpathExpression(), ' '), - "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'te\\?st')))]"); + "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'te\\?st')))]orderby@jcr:scoredescending"); AdvancedResult advResult = null; try { @@ -187,7 +188,7 @@ Criteria criteria = criteria(textEnteredByUser, true); Assert.assertEquals( StringUtils.remove(criteria.toXpathExpression(), ' '), - "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'\\\"Milano\\\"')))]"); + "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'\\\"Milano\\\"')))]orderby@jcr:scoredescending"); AdvancedResult advResult = null; try { @@ -210,6 +211,7 @@ criteria.setBasePath(StringUtils.EMPTY); criteria.add(Restrictions.eq("@jcr:primaryType", "mgnl:content")); criteria.add(Restrictions.contains("@title", titleSearch, escape)); + criteria.addOrder(Order.desc("@jcr:score")); return criteria; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 3200 http://openutils.svn.sourceforge.net/openutils/?rev=3200&view=rev Author: fgiust Date: 2011-01-01 20:52:43 +0000 (Sat, 01 Jan 2011) Log Message: ----------- fix test Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java Modified: trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java =================================================================== --- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2011-01-01 20:22:00 UTC (rev 3199) +++ trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2011-01-01 20:52:43 UTC (rev 3200) @@ -117,7 +117,10 @@ @Test public void testIpsumOrSitAndAmet() throws Exception { - Criteria criteria = criteria("ipsum OR \"sit AND amet\"", false); + // Criteria criteria = criteria("ipsum OR \"sit AND amet\"", false); + // AND is not a lucene keywords, but a stop word which is stripped when using the default lucene analyzer + // search terms are ANDed by default + Criteria criteria = criteria("ipsum OR \"sit amet\"", false); AdvancedResult advResult = criteria.execute(); Assert.assertNotNull(advResult); Assert.assertEquals(advResult.getTotalSize(), 2); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |