|
From: <fn...@us...> - 2013-07-24 09:29:57
|
Revision: 4280
http://openutils.svn.sourceforge.net/openutils/?rev=4280&view=rev
Author: fnecci
Date: 2013-07-24 09:29:54 +0000 (Wed, 24 Jul 2013)
Log Message:
-----------
CRIT-55 Added unit test to prove that jackrabbit 1.6.2 handles the issue correctly
Modified Paths:
--------------
magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java
magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.contains.xml
Modified: magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java
===================================================================
--- magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2013-07-24 09:27:13 UTC (rev 4279)
+++ magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2013-07-24 09:29:54 UTC (rev 4280)
@@ -208,6 +208,30 @@
Assert.assertEquals(item.getTitle(), "hello \"Milano\" world");
}
+ @Test
+ public void testColonEscape() throws Exception
+ {
+ String textEnteredByUser = "l:u";
+ Criteria criteria = criteria(textEnteredByUser, true);
+ Assert.assertEquals(
+ StringUtils.remove(criteria.toXpathExpression(), ' '),
+ "//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'l\\:u')))]orderby@jcr:scoredescending");
+ AdvancedResult advResult = null;
+ try
+ {
+ advResult = criteria.execute();
+ }
+ catch (JCRQueryException e)
+ {
+ Assert.fail("Invalid query. " + e.getMessage());
+ }
+ Assert.assertNotNull(advResult);
+ Assert.assertEquals(advResult.getTotalSize(), 1);
+ ResultIterator<AdvancedResultItem> items = advResult.getItems();
+ AdvancedResultItem item = items.next();
+ Assert.assertEquals(item.getTitle(), "hello l:u");
+ }
+
private Criteria criteria(String titleSearch, boolean escape)
{
Criteria criteria = JCRCriteriaFactory.createCriteria().setWorkspace(ContentRepository.WEBSITE);
Modified: magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.contains.xml
===================================================================
--- magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.contains.xml 2013-07-24 09:27:13 UTC (rev 4279)
+++ magnoliamodules/branches/magnolia44/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.contains.xml 2013-07-24 09:29:54 UTC (rev 4280)
@@ -3,7 +3,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -36,7 +36,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -76,7 +76,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -116,7 +116,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -156,7 +156,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -193,7 +193,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -239,7 +239,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -279,7 +279,7 @@
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:content</sv:value>
</sv:property>
- <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="jcr:uuid" sv:type="String">
@@ -315,4 +315,41 @@
</sv:property>
</sv:node>
</sv:node>
+ <sv:node sv:name="colon">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:content</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>17d8648e-155e-47aa-b848-bcefd16aeb2e</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="title" sv:type="String">
+ <sv:value>hello l:u</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="Date">
+ <sv:value>2013-07-24T10:37:29.994+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2013-07-24T10:38:00.532+02:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:template" sv:type="String">
+ <sv:value>t-redirect</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
</sv:node>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|