[273795] [xpath2] improvements to function, substring(..) https://bugs.eclipse.org/bugs/show_bug.cgi?id=273795
diff --git a/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/bug273795.xml b/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/bug273795.xml new file mode 100644 index 0000000..ef4cdab --- /dev/null +++ b/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/bug273795.xml
@@ -0,0 +1 @@ +<x>unhappy</x> \ No newline at end of file
diff --git a/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java b/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java index f35e70d..f1be646 100644 --- a/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java +++ b/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java
@@ -7,7 +7,8 @@ * * Contributors: * David Carver (STAR) - initial API and implementation - * Mukul Gandhi - bug 273719 - String-Length with Element Arg. + * Mukul Gandhi - bug 273719 - String-Length with Element Arg + * Mukul Gandhi - bug 273795 - improvements to substring function *******************************************************************************/ package org.eclipse.wst.xml.xpath2.processor.test; @@ -45,6 +46,54 @@ String actual = result.string_value(); assertEquals("true", actual); - } + } + + public void testBug273795Arity2() throws Exception { + // Bug 273795 + URL fileURL = bundle.getEntry("/bugTestFiles/bug273795.xml"); + loadDOMDocument(fileURL); + + // Get XML Schema Information for the Document + XSModel schema = getGrammar(); + + DynamicContext dc = setupDynamicContext(schema); + + // test with arity 2 + String xpath = "substring(x, 3) = 'happy'"; + XPath path = compileXPath(dc, xpath); + + Evaluator eval = new DefaultEvaluator(dc, domDoc); + ResultSequence rs = eval.evaluate(path); + + XSBoolean result = (XSBoolean) rs.first(); + + String actual = result.string_value(); + + assertEquals("true", actual); + } + + public void testBug273795Arity3() throws Exception { + // Bug 273795 + URL fileURL = bundle.getEntry("/bugTestFiles/bug273795.xml"); + loadDOMDocument(fileURL); + + // Get XML Schema Information for the Document + XSModel schema = getGrammar(); + + DynamicContext dc = setupDynamicContext(schema); + + // test with arity 3 + String xpath = "substring(x, 3, 4) = 'happ'"; + XPath path = compileXPath(dc, xpath); + + Evaluator eval = new DefaultEvaluator(dc, domDoc); + ResultSequence rs = eval.evaluate(path); + + XSBoolean result = (XSBoolean) rs.first(); + + String actual = result.string_value(); + + assertEquals("true", actual); + } }