From: <mgu...@us...> - 2013-02-04 12:57:09
|
Revision: 8091 http://sourceforge.net/p/htmlunit/code/8091 Author: mguillem Date: 2013-02-04 12:57:07 +0000 (Mon, 04 Feb 2013) Log Message: ----------- compareDocumentPosition: throw runtime exception when argument's type is wrong Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Node.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/NodeTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Node.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Node.java 2013-02-04 12:56:08 UTC (rev 8090) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Node.java 2013-02-04 12:57:07 UTC (rev 8091) @@ -946,8 +946,11 @@ * @see org.w3c.dom.Node#compareDocumentPosition(org.w3c.dom.Node) */ @JsxFunction(@WebBrowser(FF)) - public short compareDocumentPosition(final Node node) { - return getDomNodeOrDie().compareDocumentPosition(node.getDomNodeOrDie()); + public short compareDocumentPosition(final Object node) { + if (!(node instanceof Node)) { + throw Context.reportRuntimeError("Could not convert JavaScript argument arg 0"); + } + return getDomNodeOrDie().compareDocumentPosition(((Node) node).getDomNodeOrDie()); } /** Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/NodeTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/NodeTest.java 2013-02-04 12:56:08 UTC (rev 8090) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/NodeTest.java 2013-02-04 12:57:07 UTC (rev 8091) @@ -617,7 +617,7 @@ */ @Test @Browsers(FF) - @Alerts({ "0", "20", "20", "4", "10", "10", "2", "20" }) + @Alerts({ "0", "20", "20", "4", "10", "10", "2", "20", "exception" }) public void compareDocumentPosition() throws Exception { final String html = "<html><head>\n" @@ -634,6 +634,9 @@ + " alert(div3.compareDocumentPosition(div1));\n" + " alert(div4.compareDocumentPosition(div1));\n" + " alert(div2.compareDocumentPosition(div3));\n" + + " try {\n" + + " alert(div2.compareDocumentPosition({}));\n" + + " } catch(e) { alert('exception'); }\n" + "}\n" + "</script></head><body onload='test()'>\n" + "<div id='div1'>\n" |