[298519] [xpath2] committing test cases for the bug, https://bugs.eclipse.org/bugs/show_bug.cgi?id=298519
diff --git a/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/fnNumberBug.xml b/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/fnNumberBug.xml
new file mode 100644
index 0000000..bd4c24a
--- /dev/null
+++ b/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/fnNumberBug.xml
@@ -0,0 +1,3 @@
+<Example>
+ <x>19</x>
+</Example>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/fnNumberBug.xsd b/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/fnNumberBug.xsd
new file mode 100644
index 0000000..7a2c1d4
--- /dev/null
+++ b/tests/org.eclipse.wst.xml.xpath2.processor.tests/bugTestFiles/fnNumberBug.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="Example">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="x" type="xs:unsignedByte"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
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 64c238a..22e1aa5 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
@@ -33,6 +33,8 @@
* Jesper S Moller - bug 286061 correct handling of quoted string
* Jesper S Moller - bug 280555 - Add pluggable collation support
* Jesper S Moller - bug 297958 Fix fn:nilled for elements
+ * Mukul Gandhi - bug 298519 improvements to fn:number implementation, catering
+ * to node arguments.
*******************************************************************************/
package org.eclipse.wst.xml.xpath2.processor.test;
@@ -1134,7 +1136,6 @@
String actual = result.string_value();
assertEquals("true", actual);
-
}
public void testXPathInstanceOf2() throws Exception {
@@ -1161,7 +1162,6 @@
String actual = result.string_value();
assertEquals("true", actual);
-
}
public void testXPathInstanceOf3() throws Exception {
@@ -1188,7 +1188,6 @@
String actual = result.string_value();
assertEquals("false", actual);
-
}
public void testXPathInstanceOf4() throws Exception {
@@ -1215,7 +1214,55 @@
String actual = result.string_value();
assertEquals("false", actual);
+ }
+
+ public void testFnNumber_Evaluation1() throws Exception {
+ // Bug 298519
+ URL fileURL = bundle.getEntry("/bugTestFiles/fnNumberBug.xml");
+ URL schemaURL = bundle.getEntry("/bugTestFiles/fnNumberBug.xsd");
+ loadDOMDocument(fileURL, schemaURL);
+
+ // Get XSModel object for the Schema
+ XSModel schema = getGrammar(schemaURL);
+
+ DynamicContext dc = setupDynamicContext(schema);
+
+ String xpath = "number(Example/x) ge 18";
+ 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 testFnNumber_Evaluation2() throws Exception {
+ // Bug 298519
+ bundle = Platform.getBundle("org.w3c.xqts.testsuite");
+ URL fileURL = bundle.getEntry("/TestSources/emptydoc.xml");
+ loadDOMDocument(fileURL);
+
+ // Get XML Schema Information for the Document
+ XSModel schema = getGrammar();
+
+ DynamicContext dc = setupDynamicContext(schema);
+
+ String xpath = "number(xs:unsignedByte('20')) ge 18";
+ 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);
}
private CollationProvider createLengthCollatorProvider() {