mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Another attemp at encoding
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2707 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -55,18 +55,22 @@ public class SearcherComponentTest extends TestCase
|
|||||||
|
|
||||||
//private static String COMPLEX_LOCAL_NAME = " `¬¦!\"£$%^&*()-_=+\t\n\\\u0000[]{};'#:@~,./<>?\\|\u0123\u4567\u8900\uabcd\uefff_xT65A_";
|
//private static String COMPLEX_LOCAL_NAME = " `¬¦!\"£$%^&*()-_=+\t\n\\\u0000[]{};'#:@~,./<>?\\|\u0123\u4567\u8900\uabcd\uefff_xT65A_";
|
||||||
|
|
||||||
private static String COMPLEX_LOCAL_NAME ="\u0020\u0060\u00ac\u00a6\u0021\\u0022\u00a3\u0024\u0025\u005e\u0026\u002a\u0028\u0029\u002d\u005f\u003d\u002b\\u0009\\u000a\\u005c\u0000\u005b\u005d\u007b\u007d\u003b\u0027\u0023\u003a\u0040\u007e\u002c\u002e\u002f\u003c\u003e\u003f\\u005c\u007c\u0123\u4567\u8900\uabcd\uefff\u005f\u0078\u0054\u0036\u0035\u0041\u005f";
|
private static String COMPLEX_LOCAL_NAME = "\u0020\u0060\u00ac\u00a6\u0021\"\u00a3\u0024\u0025\u005e\u0026\u002a\u0028\u0029\u002d\u005f\u003d\u002b\t\n\\\u0000\u005b\u005d\u007b\u007d\u003b\u0027\u0023\u003a\u0040\u007e\u002c\u002e\u002f\u003c\u003e\u003f\\u007c\u0123\u4567\u8900\uabcd\uefff\u005f\u0078\u0054\u0036\u0035\u0041\u005f";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private ServiceRegistry serviceRegistry;
|
private ServiceRegistry serviceRegistry;
|
||||||
|
|
||||||
private TransactionService transactionService;
|
private TransactionService transactionService;
|
||||||
|
|
||||||
private DictionaryService dictionaryService;
|
private DictionaryService dictionaryService;
|
||||||
|
|
||||||
private SearcherComponent searcher;
|
private SearcherComponent searcher;
|
||||||
|
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
|
|
||||||
private AuthenticationComponent authenticationComponent;
|
private AuthenticationComponent authenticationComponent;
|
||||||
|
|
||||||
private NodeRef rootNodeRef;
|
private NodeRef rootNodeRef;
|
||||||
|
|
||||||
private UserTransaction txn;
|
private UserTransaction txn;
|
||||||
|
|
||||||
public void setUp() throws Exception
|
public void setUp() throws Exception
|
||||||
@@ -84,9 +88,8 @@ public class SearcherComponentTest extends TestCase
|
|||||||
searcher = new SearcherComponent();
|
searcher = new SearcherComponent();
|
||||||
searcher.setIndexerAndSearcherFactory(indexerAndSearcher);
|
searcher.setIndexerAndSearcherFactory(indexerAndSearcher);
|
||||||
// create a test workspace
|
// create a test workspace
|
||||||
StoreRef storeRef = nodeService.createStore(
|
StoreRef storeRef = nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, getName()
|
||||||
StoreRef.PROTOCOL_WORKSPACE,
|
+ "_" + System.currentTimeMillis());
|
||||||
getName() + "_" + System.currentTimeMillis());
|
|
||||||
rootNodeRef = nodeService.getRootNode(storeRef);
|
rootNodeRef = nodeService.getRootNode(storeRef);
|
||||||
// begin a transaction
|
// begin a transaction
|
||||||
txn = transactionService.getUserTransaction();
|
txn = transactionService.getUserTransaction();
|
||||||
@@ -111,10 +114,10 @@ public class SearcherComponentTest extends TestCase
|
|||||||
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
||||||
properties.put(QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME), "monkey");
|
properties.put(QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME), "monkey");
|
||||||
QName qnamerequiringescaping = QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME);
|
QName qnamerequiringescaping = QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME);
|
||||||
nodeService.createNode(rootNodeRef, BaseNodeServiceTest.ASSOC_TYPE_QNAME_TEST_CHILDREN, qnamerequiringescaping, ContentModel.TYPE_CONTAINER);
|
nodeService.createNode(rootNodeRef, BaseNodeServiceTest.ASSOC_TYPE_QNAME_TEST_CHILDREN, qnamerequiringescaping,
|
||||||
|
ContentModel.TYPE_CONTAINER);
|
||||||
QName qname = QName.createQName(BaseNodeServiceTest.NAMESPACE, "n2_p_n4");
|
QName qname = QName.createQName(BaseNodeServiceTest.NAMESPACE, "n2_p_n4");
|
||||||
|
|
||||||
|
|
||||||
NodeServiceXPath xpath;
|
NodeServiceXPath xpath;
|
||||||
String xpathStr;
|
String xpathStr;
|
||||||
QueryParameterDefImpl paramDef;
|
QueryParameterDefImpl paramDef;
|
||||||
@@ -123,12 +126,8 @@ public class SearcherComponentTest extends TestCase
|
|||||||
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
||||||
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
// create the document navigator
|
// create the document navigator
|
||||||
DocumentNavigator documentNavigator = new DocumentNavigator(
|
DocumentNavigator documentNavigator = new DocumentNavigator(dictionaryService, nodeService, searcher,
|
||||||
dictionaryService,
|
namespacePrefixResolver, false, false);
|
||||||
nodeService,
|
|
||||||
searcher,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false, false);
|
|
||||||
|
|
||||||
xpath = new NodeServiceXPath("//.[@test:animal='monkey']", documentNavigator, null);
|
xpath = new NodeServiceXPath("//.[@test:animal='monkey']", documentNavigator, null);
|
||||||
xpath.addNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
xpath.addNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
@@ -183,11 +182,8 @@ public class SearcherComponentTest extends TestCase
|
|||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
|
|
||||||
paramDef = new QueryParameterDefImpl(
|
paramDef = new QueryParameterDefImpl(QName.createQName("test:test", namespacePrefixResolver), dictionaryService
|
||||||
QName.createQName("test:test", namespacePrefixResolver),
|
.getDataType(DataTypeDefinition.TEXT), true, "monkey");
|
||||||
dictionaryService.getDataType(DataTypeDefinition.TEXT),
|
|
||||||
true,
|
|
||||||
"monkey");
|
|
||||||
xpathStr = "//.[@test:animal=$test:test]";
|
xpathStr = "//.[@test:animal=$test:test]";
|
||||||
xpath = new NodeServiceXPath(xpathStr, documentNavigator, new QueryParameterDefinition[] { paramDef });
|
xpath = new NodeServiceXPath(xpathStr, documentNavigator, new QueryParameterDefinition[] { paramDef });
|
||||||
xpath.addNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
xpath.addNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
@@ -251,13 +247,10 @@ public class SearcherComponentTest extends TestCase
|
|||||||
list = xpath.selectNodes(assocRefs.get(qname));
|
list = xpath.selectNodes(assocRefs.get(qname));
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
|
|
||||||
|
|
||||||
// test 'subtypeOf' function
|
// test 'subtypeOf' function
|
||||||
paramDef = new QueryParameterDefImpl(
|
paramDef = new QueryParameterDefImpl(QName.createQName("test:type", namespacePrefixResolver), dictionaryService
|
||||||
QName.createQName("test:type", namespacePrefixResolver),
|
.getDataType(DataTypeDefinition.QNAME), true, BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT
|
||||||
dictionaryService.getDataType(DataTypeDefinition.QNAME),
|
.toPrefixString(namespacePrefixResolver));
|
||||||
true,
|
|
||||||
BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT.toPrefixString(namespacePrefixResolver));
|
|
||||||
xpathStr = "//.[subtypeOf($test:type)]";
|
xpathStr = "//.[subtypeOf($test:type)]";
|
||||||
xpath = new NodeServiceXPath(xpathStr, documentNavigator, new QueryParameterDefinition[] { paramDef });
|
xpath = new NodeServiceXPath(xpathStr, documentNavigator, new QueryParameterDefinition[] { paramDef });
|
||||||
xpath.addNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
xpath.addNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
@@ -270,7 +263,6 @@ public class SearcherComponentTest extends TestCase
|
|||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void testSelectAPI() throws Exception
|
public void testSelectAPI() throws Exception
|
||||||
{
|
{
|
||||||
Map<QName, ChildAssociationRef> assocRefs = BaseNodeServiceTest.buildNodeGraph(nodeService, rootNodeRef);
|
Map<QName, ChildAssociationRef> assocRefs = BaseNodeServiceTest.buildNodeGraph(nodeService, rootNodeRef);
|
||||||
@@ -279,7 +271,8 @@ public class SearcherComponentTest extends TestCase
|
|||||||
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
||||||
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
|
|
||||||
List<NodeRef> answer = searcher.selectNodes(rootNodeRef, "/test:root_p_n1/test:n1_p_n3/*", null, namespacePrefixResolver, false);
|
List<NodeRef> answer = searcher.selectNodes(rootNodeRef, "/test:root_p_n1/test:n1_p_n3/*", null,
|
||||||
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
assertTrue(answer.contains(n6Ref));
|
assertTrue(answer.contains(n6Ref));
|
||||||
|
|
||||||
@@ -287,23 +280,23 @@ public class SearcherComponentTest extends TestCase
|
|||||||
answer = searcher.selectNodes(rootNodeRef, "*", null, namespacePrefixResolver, false);
|
answer = searcher.selectNodes(rootNodeRef, "*", null, namespacePrefixResolver, false);
|
||||||
assertEquals(2, answer.size());
|
assertEquals(2, answer.size());
|
||||||
|
|
||||||
List<Serializable> attributes = searcher.selectProperties(rootNodeRef, "//@test:animal", null, namespacePrefixResolver, false);
|
List<Serializable> attributes = searcher.selectProperties(rootNodeRef, "//@test:animal", null,
|
||||||
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, attributes.size());
|
assertEquals(1, attributes.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests the <b>like</b> and <b>contains</b> functions (FTS functions) within a currently executing
|
* Tests the <b>like</b> and <b>contains</b> functions (FTS functions) within a currently executing transaction
|
||||||
* transaction
|
|
||||||
*/
|
*/
|
||||||
public void testLikeAndContains() throws Exception
|
public void testLikeAndContains() throws Exception
|
||||||
{
|
{
|
||||||
Map<QName, ChildAssociationRef> assocRefs = BaseNodeServiceTest.buildNodeGraph(nodeService, rootNodeRef);
|
Map<QName, ChildAssociationRef> assocRefs = BaseNodeServiceTest.buildNodeGraph(nodeService, rootNodeRef);
|
||||||
|
|
||||||
|
|
||||||
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
||||||
properties.put(QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME), "monkey");
|
properties.put(QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME), "monkey");
|
||||||
QName qnamerequiringescaping = QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME);
|
QName qnamerequiringescaping = QName.createQName(BaseNodeServiceTest.NAMESPACE, COMPLEX_LOCAL_NAME);
|
||||||
nodeService.createNode(rootNodeRef, BaseNodeServiceTest.ASSOC_TYPE_QNAME_TEST_CHILDREN, qnamerequiringescaping, ContentModel.TYPE_CONTAINER, properties);
|
nodeService.createNode(rootNodeRef, BaseNodeServiceTest.ASSOC_TYPE_QNAME_TEST_CHILDREN, qnamerequiringescaping,
|
||||||
|
ContentModel.TYPE_CONTAINER, properties);
|
||||||
|
|
||||||
// commit the node graph
|
// commit the node graph
|
||||||
txn.commit();
|
txn.commit();
|
||||||
@@ -314,52 +307,31 @@ public class SearcherComponentTest extends TestCase
|
|||||||
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
||||||
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
|
|
||||||
List<NodeRef> answer = searcher.selectNodes(
|
List<NodeRef> answer = searcher.selectNodes(rootNodeRef, "//*[like(@test:animal, 'm__k%', false)]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[like(@test:animal, 'm__k%', false)]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[like(@test:"
|
||||||
rootNodeRef,
|
+ ISO9075.encode(COMPLEX_LOCAL_NAME) + ", 'm__k%', false)]", null, namespacePrefixResolver, false);
|
||||||
"//*[like(@test:"+ISO9075.encode(COMPLEX_LOCAL_NAME)+", 'm__k%', false)]",
|
assertEquals(1, answer.size());
|
||||||
null,
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[like(@test:animal, 'M__K%', false)]", null,
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[like(@test:"
|
||||||
rootNodeRef,
|
+ ISO9075.encode(COMPLEX_LOCAL_NAME) + ", 'M__K%', false)]", null, namespacePrefixResolver, false);
|
||||||
"//*[like(@test:animal, 'M__K%', false)]",
|
assertEquals(1, answer.size());
|
||||||
null,
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[like(@test:UPPERANIMAL, 'm__k%', false)]", null,
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[like(@test:UPPERANIMAL, 'M__K%', false)]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[like(@test:"+ISO9075.encode(COMPLEX_LOCAL_NAME)+", 'M__K%', false)]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[like(@test:UPPERANIMAL, 'M__K%', true)]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[like(@test:UPPERANIMAL, 'm__k%', false)]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(1, answer.size());
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[like(@test:UPPERANIMAL, 'M__K%', false)]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(1, answer.size());
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[like(@test:UPPERANIMAL, 'M__K%', true)]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
@@ -369,47 +341,32 @@ public class SearcherComponentTest extends TestCase
|
|||||||
answer = searcher.selectNodes(rootNodeRef, "//*[contains('MONKEY')]", null, namespacePrefixResolver, false);
|
answer = searcher.selectNodes(rootNodeRef, "//*[contains('MONKEY')]", null, namespacePrefixResolver, false);
|
||||||
assertEquals(2, answer.size());
|
assertEquals(2, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(rootNodeRef, "//*[contains(lower-case('MONKEY'))]", null, namespacePrefixResolver, false);
|
answer = searcher.selectNodes(rootNodeRef, "//*[contains(lower-case('MONKEY'))]", null,
|
||||||
|
namespacePrefixResolver, false);
|
||||||
assertEquals(2, answer.size());
|
assertEquals(2, answer.size());
|
||||||
|
|
||||||
// select the monkey node in the second level
|
// select the monkey node in the second level
|
||||||
QueryParameterDefinition[] paramDefs = new QueryParameterDefinition[2];
|
QueryParameterDefinition[] paramDefs = new QueryParameterDefinition[2];
|
||||||
paramDefs[0] = new QueryParameterDefImpl(
|
paramDefs[0] = new QueryParameterDefImpl(QName.createQName("test:animal", namespacePrefixResolver),
|
||||||
QName.createQName("test:animal", namespacePrefixResolver),
|
dictionaryService.getDataType(DataTypeDefinition.TEXT), true, "monkey%");
|
||||||
dictionaryService.getDataType(DataTypeDefinition.TEXT),
|
paramDefs[1] = new QueryParameterDefImpl(QName.createQName("test:type", namespacePrefixResolver),
|
||||||
true,
|
dictionaryService.getDataType(DataTypeDefinition.TEXT), true,
|
||||||
"monkey%");
|
|
||||||
paramDefs[1] = new QueryParameterDefImpl(
|
|
||||||
QName.createQName("test:type", namespacePrefixResolver),
|
|
||||||
dictionaryService.getDataType(DataTypeDefinition.TEXT),
|
|
||||||
true,
|
|
||||||
BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT.toString());
|
BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT.toString());
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef,
|
||||||
rootNodeRef,
|
"./*/*[like(@test:animal, $test:animal, false) or subtypeOf($test:type)]", paramDefs,
|
||||||
"./*/*[like(@test:animal, $test:animal, false) or subtypeOf($test:type)]",
|
namespacePrefixResolver, false);
|
||||||
paramDefs,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false);
|
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
// select the monkey node again, but use the first level as the starting poing
|
// select the monkey node again, but use the first level as the starting poing
|
||||||
NodeRef n1Ref = assocRefs.get(QName.createQName(BaseNodeServiceTest.NAMESPACE, "root_p_n1")).getChildRef();
|
NodeRef n1Ref = assocRefs.get(QName.createQName(BaseNodeServiceTest.NAMESPACE, "root_p_n1")).getChildRef();
|
||||||
NodeRef n3Ref = assocRefs.get(QName.createQName(BaseNodeServiceTest.NAMESPACE, "n1_p_n3")).getChildRef();
|
NodeRef n3Ref = assocRefs.get(QName.createQName(BaseNodeServiceTest.NAMESPACE, "n1_p_n3")).getChildRef();
|
||||||
// first time go too deep
|
// first time go too deep
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(n1Ref, "./*/*[like(@test:animal, $test:animal, false) or subtypeOf($test:type)]",
|
||||||
n1Ref,
|
paramDefs, namespacePrefixResolver, false);
|
||||||
"./*/*[like(@test:animal, $test:animal, false) or subtypeOf($test:type)]",
|
|
||||||
paramDefs,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false);
|
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
// second time get it right
|
// second time get it right
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(n1Ref, "./*[like(@test:animal, $test:animal, false) or subtypeOf($test:type)]",
|
||||||
n1Ref,
|
paramDefs, namespacePrefixResolver, false);
|
||||||
"./*[like(@test:animal, $test:animal, false) or subtypeOf($test:type)]",
|
|
||||||
paramDefs,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false);
|
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
assertFalse("Incorrect result: search root node pulled back", answer.contains(n1Ref));
|
assertFalse("Incorrect result: search root node pulled back", answer.contains(n1Ref));
|
||||||
assertTrue("Incorrect result: incorrect node retrieved", answer.contains(n3Ref));
|
assertTrue("Incorrect result: incorrect node retrieved", answer.contains(n3Ref));
|
||||||
@@ -431,12 +388,8 @@ public class SearcherComponentTest extends TestCase
|
|||||||
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
||||||
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
||||||
// create the document navigator
|
// create the document navigator
|
||||||
DocumentNavigator documentNavigator = new DocumentNavigator(
|
DocumentNavigator documentNavigator = new DocumentNavigator(dictionaryService, nodeService, searcher,
|
||||||
dictionaryService,
|
namespacePrefixResolver, false, true);
|
||||||
nodeService,
|
|
||||||
searcher,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false, true);
|
|
||||||
|
|
||||||
xpath = new NodeServiceXPath("/jcr:root", documentNavigator, null);
|
xpath = new NodeServiceXPath("/jcr:root", documentNavigator, null);
|
||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
@@ -466,12 +419,8 @@ public class SearcherComponentTest extends TestCase
|
|||||||
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
||||||
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
||||||
// create the document navigator
|
// create the document navigator
|
||||||
DocumentNavigator documentNavigator = new DocumentNavigator(
|
DocumentNavigator documentNavigator = new DocumentNavigator(dictionaryService, nodeService, searcher,
|
||||||
dictionaryService,
|
namespacePrefixResolver, false, true);
|
||||||
nodeService,
|
|
||||||
searcher,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false, true);
|
|
||||||
|
|
||||||
xpath = new NodeServiceXPath("/jcr:root[true()]", documentNavigator, null);
|
xpath = new NodeServiceXPath("/jcr:root[true()]", documentNavigator, null);
|
||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
@@ -506,12 +455,8 @@ public class SearcherComponentTest extends TestCase
|
|||||||
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
||||||
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
// create the document navigator
|
// create the document navigator
|
||||||
DocumentNavigator documentNavigator = new DocumentNavigator(
|
DocumentNavigator documentNavigator = new DocumentNavigator(dictionaryService, nodeService, searcher,
|
||||||
dictionaryService,
|
namespacePrefixResolver, false, true);
|
||||||
nodeService,
|
|
||||||
searcher,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false, true);
|
|
||||||
|
|
||||||
xpath = new NodeServiceXPath("/jcr:root//*[@test:mvp = 'first']", documentNavigator, null);
|
xpath = new NodeServiceXPath("/jcr:root//*[@test:mvp = 'first']", documentNavigator, null);
|
||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
@@ -586,38 +531,38 @@ public class SearcherComponentTest extends TestCase
|
|||||||
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
||||||
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
// create the document navigator
|
// create the document navigator
|
||||||
DocumentNavigator documentNavigator = new DocumentNavigator(
|
DocumentNavigator documentNavigator = new DocumentNavigator(dictionaryService, nodeService, searcher,
|
||||||
dictionaryService,
|
namespacePrefixResolver, false, true);
|
||||||
nodeService,
|
|
||||||
searcher,
|
|
||||||
namespacePrefixResolver,
|
|
||||||
false, true);
|
|
||||||
|
|
||||||
xpath = new NodeServiceXPath("//element(*, *)".replaceAll("element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"), documentNavigator, null);
|
xpath = new NodeServiceXPath("//element(*, *)".replaceAll(
|
||||||
|
"element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"),
|
||||||
|
documentNavigator, null);
|
||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
assertEquals(12, list.size());
|
assertEquals(12, list.size());
|
||||||
|
|
||||||
xpath = new NodeServiceXPath("//element(jcr:root, *)".replaceAll("element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"), documentNavigator, null);
|
xpath = new NodeServiceXPath("//element(jcr:root, *)".replaceAll(
|
||||||
|
"element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"),
|
||||||
|
documentNavigator, null);
|
||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
|
|
||||||
QueryParameterDefImpl paramDef;
|
QueryParameterDefImpl paramDef;
|
||||||
|
|
||||||
paramDef = new QueryParameterDefImpl(
|
paramDef = new QueryParameterDefImpl(QName.createQName("test:type", namespacePrefixResolver), dictionaryService
|
||||||
QName.createQName("test:type", namespacePrefixResolver),
|
.getDataType(DataTypeDefinition.QNAME), true, BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT
|
||||||
dictionaryService.getDataType(DataTypeDefinition.QNAME),
|
.toPrefixString(namespacePrefixResolver));
|
||||||
true,
|
xpath = new NodeServiceXPath("//element(*, test:content)".replaceAll(
|
||||||
BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT.toPrefixString(namespacePrefixResolver));
|
"element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"),
|
||||||
xpath = new NodeServiceXPath("//element(*, test:content)".replaceAll("element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"), documentNavigator, new QueryParameterDefinition[]{paramDef});
|
documentNavigator, new QueryParameterDefinition[] { paramDef });
|
||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
assertEquals(2, list.size());
|
assertEquals(2, list.size());
|
||||||
|
|
||||||
paramDef = new QueryParameterDefImpl(
|
paramDef = new QueryParameterDefImpl(QName.createQName("test:type", namespacePrefixResolver), dictionaryService
|
||||||
QName.createQName("test:type", namespacePrefixResolver),
|
.getDataType(DataTypeDefinition.QNAME), true, BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT
|
||||||
dictionaryService.getDataType(DataTypeDefinition.QNAME),
|
.toPrefixString(namespacePrefixResolver));
|
||||||
true,
|
xpath = new NodeServiceXPath("//element(test:n6_p_n8, test:content)".replaceAll(
|
||||||
BaseNodeServiceTest.TYPE_QNAME_TEST_CONTENT.toPrefixString(namespacePrefixResolver));
|
"element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"),
|
||||||
xpath = new NodeServiceXPath("//element(test:n6_p_n8, test:content)".replaceAll("element\\(\\s*(\\*|\\$?\\w*:\\w*)\\s*,\\s*(\\*|\\$?\\w*:\\w*)\\s*\\)", "$1[subtypeOf(\"$2\")]"), documentNavigator, new QueryParameterDefinition[]{paramDef});
|
documentNavigator, new QueryParameterDefinition[] { paramDef });
|
||||||
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
list = xpath.selectNodes(new ChildAssociationRef(null, null, null, rootNodeRef));
|
||||||
assertEquals(1, list.size());
|
assertEquals(1, list.size());
|
||||||
|
|
||||||
@@ -643,11 +588,7 @@ public class SearcherComponentTest extends TestCase
|
|||||||
// namespacePrefixResolver,
|
// namespacePrefixResolver,
|
||||||
// false, true);
|
// false, true);
|
||||||
|
|
||||||
|
List<NodeRef> answer = searcher.selectNodes(rootNodeRef, "//*[jcr:like(@test:animal, 'm__k%')]", null,
|
||||||
List<NodeRef> answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:like(@test:animal, 'm__k%')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
}
|
}
|
||||||
@@ -674,18 +615,10 @@ public class SearcherComponentTest extends TestCase
|
|||||||
|
|
||||||
List<NodeRef> answer;
|
List<NodeRef> answer;
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//.", null, namespacePrefixResolver, false);
|
||||||
rootNodeRef,
|
|
||||||
"//.",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(9, answer.size());
|
assertEquals(9, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//.[jcr:score() = 1.0]", null, namespacePrefixResolver, false);
|
||||||
rootNodeRef,
|
|
||||||
"//.[jcr:score() = 1.0]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(9, answer.size());
|
assertEquals(9, answer.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -698,7 +631,6 @@ public class SearcherComponentTest extends TestCase
|
|||||||
txn = transactionService.getUserTransaction();
|
txn = transactionService.getUserTransaction();
|
||||||
txn.begin();
|
txn.begin();
|
||||||
|
|
||||||
|
|
||||||
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
DynamicNamespacePrefixResolver namespacePrefixResolver = new DynamicNamespacePrefixResolver(null);
|
||||||
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
namespacePrefixResolver.registerNamespace("jcr", "http://www.jcp.org/jcr/1.0");
|
||||||
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
namespacePrefixResolver.registerNamespace(BaseNodeServiceTest.TEST_PREFIX, BaseNodeServiceTest.NAMESPACE);
|
||||||
@@ -712,428 +644,226 @@ public class SearcherComponentTest extends TestCase
|
|||||||
|
|
||||||
List<NodeRef> answer;
|
List<NodeRef> answer;
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text1, 'bun')]", null,
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text1, 'bun')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text1, 'cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text1, 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text1, 'biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text1, 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text1, 'bun cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text1, 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text1, 'cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text1, 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text1, 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text1, 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text1, 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text1, 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'bun')]", null,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'bun')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'bun cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text3, 'bun')]", null,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text3, 'bun')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text3, 'cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text3, 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text3, 'biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text3, 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text3, 'bun cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text3, 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text3, 'cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text3, 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text2, 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text2, 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text12, 'bun')]", null,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text12, 'bun')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text12, 'cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text12, 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text12, 'biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text12, 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text12, 'bun cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text12, 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text12, 'cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text12, 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text12, 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text12, 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text12, 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text12, 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text13, 'bun')]", null,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text13, 'bun')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text13, 'cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text13, 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text13, 'biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text13, 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text13, 'bun cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text13, 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text13, 'cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text13, 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text13, 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text13, 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text13, 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text13, 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text23, 'bun')]", null,
|
||||||
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text23, 'bun')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text23, 'cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text23, 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text23, 'biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text23, 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text23, 'bun cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text23, 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text23, 'cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text23, 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text23, 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text23, 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text23, 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text23, 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(0, answer.size());
|
assertEquals(0, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text123, 'bun')]", null,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text123, 'bun')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text123, 'cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text123, 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text123, 'biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text123, 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text123, 'bun cake')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text123, 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text123, 'cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text123, 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text123, 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text123, 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(@test:text123, 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(@test:text123, 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(., 'bun')]", null, namespacePrefixResolver, false);
|
||||||
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
|
answer = searcher
|
||||||
|
.selectNodes(rootNodeRef, "//*[jcr:contains(., 'cake')]", null, namespacePrefixResolver, false);
|
||||||
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(., 'biscuit')]", null, namespacePrefixResolver,
|
||||||
rootNodeRef,
|
false);
|
||||||
"//*[jcr:contains(., 'bun')]",
|
assertEquals(1, answer.size());
|
||||||
null,
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(., 'bun cake')]", null, namespacePrefixResolver,
|
||||||
|
false);
|
||||||
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(., 'cake biscuit')]", null,
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(., 'bun biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(., 'cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
answer = searcher.selectNodes(rootNodeRef, "//*[jcr:contains(., 'bun cake biscuit')]", null,
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(., 'biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(1, answer.size());
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(., 'bun cake')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(1, answer.size());
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(., 'cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(1, answer.size());
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(., 'bun biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
|
||||||
assertEquals(1, answer.size());
|
|
||||||
|
|
||||||
answer = searcher.selectNodes(
|
|
||||||
rootNodeRef,
|
|
||||||
"//*[jcr:contains(., 'bun cake biscuit')]",
|
|
||||||
null,
|
|
||||||
namespacePrefixResolver, false);
|
namespacePrefixResolver, false);
|
||||||
assertEquals(1, answer.size());
|
assertEquals(1, answer.size());
|
||||||
|
|
||||||
@@ -1148,8 +878,10 @@ public class SearcherComponentTest extends TestCase
|
|||||||
{
|
{
|
||||||
if (escape.indexOf(COMPLEX_LOCAL_NAME.charAt(i)) != -1)
|
if (escape.indexOf(COMPLEX_LOCAL_NAME.charAt(i)) != -1)
|
||||||
{
|
{
|
||||||
builder.append("\\");
|
builder.append(COMPLEX_LOCAL_NAME.charAt(i));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
String part = Integer.toHexString(COMPLEX_LOCAL_NAME.charAt(i));
|
String part = Integer.toHexString(COMPLEX_LOCAL_NAME.charAt(i));
|
||||||
builder.append("\\u");
|
builder.append("\\u");
|
||||||
if (part.length() == 0)
|
if (part.length() == 0)
|
||||||
@@ -1170,7 +902,9 @@ public class SearcherComponentTest extends TestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
builder.append(part);
|
builder.append(part);
|
||||||
System.out.println(part);
|
System.out.println(COMPLEX_LOCAL_NAME.charAt(i) + " = " + part);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
builder.append("\"");
|
builder.append("\"");
|
||||||
System.out.println(builder.toString());
|
System.out.println(builder.toString());
|
||||||
|
Reference in New Issue
Block a user