Fix ALF-4363 - XPath based queries don't work when attribute value contains @

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@22190 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2010-09-02 16:00:14 +00:00
parent 846d79c06e
commit f41285ba21
3 changed files with 17 additions and 11 deletions

View File

@@ -349,10 +349,20 @@ public class SearcherComponentTest extends TestCase
assertEquals(9, answer.size());
QName qname = QName.createQName(BaseNodeServiceTest.NAMESPACE, "my@test_with_at_sign");
ChildAssociationRef assoc = nodeService.createNode(n1, BaseNodeServiceTest.ASSOC_TYPE_QNAME_TEST_CHILDREN, qname, ContentModel.TYPE_CONTAINER);
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
properties.put(QName.createQName(BaseNodeServiceTest.NAMESPACE, "mytest"), "my@test_value_with_at_sign");
ChildAssociationRef assoc = nodeService.createNode(n1, BaseNodeServiceTest.ASSOC_TYPE_QNAME_TEST_CHILDREN, qname, ContentModel.TYPE_CONTAINER, properties);
NodeRef n4 = assoc.getChildRef();
answer = searcher.selectNodes(rootNodeRef, "/test:root_p_n1/test:my@test_with_at_sign", null, namespacePrefixResolver, false);
StringBuffer path = new StringBuffer().append("test:root_p_n1/").append(ISO9075.getXPathName(qname, namespacePrefixResolver));
answer = searcher.selectNodes(rootNodeRef, path.toString(), null, namespacePrefixResolver, false);
assertEquals(1, answer.size());
assertTrue(answer.contains(n4));
String xpathQuery = "//*[@test:mytest='my@test_value_with_at_sign']";
answer = searcher.selectNodes(rootNodeRef, xpathQuery, null, namespacePrefixResolver, false);
assertEquals(1, answer.size());
assertTrue(answer.contains(n4));
}