From: <rb...@us...> - 2013-11-08 20:05:13
|
Revision: 8754 http://sourceforge.net/p/htmlunit/code/8754 Author: rbri Date: 2013-11-08 20:05:10 +0000 (Fri, 08 Nov 2013) Log Message: ----------- fix test, expectation and implementation Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluator.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluatorTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluator.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluator.java 2013-11-08 18:01:40 UTC (rev 8753) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluator.java 2013-11-08 20:05:10 UTC (rev 8754) @@ -15,7 +15,7 @@ package com.gargoylesoftware.htmlunit.javascript.host; import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF; -import net.sourceforge.htmlunit.corejs.javascript.NativeArray; +import net.sourceforge.htmlunit.corejs.javascript.Context; import net.sourceforge.htmlunit.corejs.javascript.NativeFunction; import org.apache.xml.utils.PrefixResolver; @@ -82,12 +82,10 @@ } // contextNodeObj can be either a node or an array with the node as the first element. Node contextNode = null; - if (contextNodeObj instanceof NativeArray) { - contextNode = (Node) ((NativeArray) contextNodeObj).get(0); + if (!(contextNodeObj instanceof Node)) { + throw Context.reportRuntimeError("Illegal value for parameter 'context'"); } - else { - contextNode = (Node) contextNodeObj; - } + contextNode = (Node) contextNodeObj; PrefixResolver prefixResolver = null; if (resolver instanceof PrefixResolver) { prefixResolver = (PrefixResolver) resolver; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluatorTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluatorTest.java 2013-11-08 18:01:40 UTC (rev 8753) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/XPathEvaluatorTest.java 2013-11-08 20:05:10 UTC (rev 8754) @@ -65,7 +65,7 @@ * @throws Exception if the test fails */ @Test - @Alerts(DEFAULT = "window.XPathEvaluator undefined", FF17 = "Immortality") + @Alerts(DEFAULT = "window.XPathEvaluator undefined", FF17 = "exception") public void namespacesWithNodeInArray() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -84,9 +84,11 @@ + " var doc = (new DOMParser).parseFromString(xml, 'text/xml');" + " var xpe = new XPathEvaluator();\n" + " var nsResolver = xpe.createNSResolver(doc.documentElement);\n" - + " var result = xpe.evaluate('/soap:Envelope/soap:books/soap:book/title/text()', " - + "[doc.documentElement], nsResolver, XPathResult.STRING_TYPE, null);\n" - + " alert(result.stringValue);\n" + + " try {\n" + + " var result = xpe.evaluate('/soap:Envelope/soap:books/soap:book/title/text()', " + + "[doc.documentElement], nsResolver, XPathResult.STRING_TYPE, null);\n" + + " alert(result.stringValue);\n" + + " } catch(e) { alert('exception'); }\n" + " } else {\n" + " alert('window.XPathEvaluator undefined');\n" + " }\n" |