From: <asa...@us...> - 2013-09-26 19:28:57
|
Revision: 8515 http://sourceforge.net/p/htmlunit/code/8515 Author: asashour Date: 2013-09-26 19:28:53 +0000 (Thu, 26 Sep 2013) Log Message: ----------- JavaScript: node.addEventListener() and .removeEventListener() are supported in Chrome. Issue 1545 Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml 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/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2013-09-26 18:43:00 UTC (rev 8514) +++ trunk/htmlunit/src/changes/changes.xml 2013-09-26 19:28:53 UTC (rev 8515) @@ -8,6 +8,9 @@ <body> <release version="2.13" date="???" description="Bugfixes"> + <action type="add" dev="asashour" issue="1545"> + JavaScript: node.addEventListener() and .removeEventListener() are supported in Chrome. + </action> <action type="fix" dev="rbri"> CSS: Support seclectors with more than one pseudo element (like '#list li:not(#item_1):not(#item_3)'). This was a problem with CSSParser and is fixed in version 0.9.11. 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-09-26 18:43:00 UTC (rev 8514) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Node.java 2013-09-26 19:28:53 UTC (rev 8515) @@ -674,7 +674,7 @@ * @see <a href="https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener">Mozilla documentation</a> * @see #attachEvent(String, Function) */ - @JsxFunction(@WebBrowser(FF)) + @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME) }) public void addEventListener(final String type, final Function listener, final boolean useCapture) { getEventListenersContainer().addEventListener(type, listener, useCapture); } @@ -709,7 +709,7 @@ * @see <a href="https://developer.mozilla.org/en-US/docs/DOM/element.removeEventListener">Mozilla * documentation</a> */ - @JsxFunction(@WebBrowser(FF)) + @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME) }) public void removeEventListener(final String type, final Function listener, final boolean useCapture) { getEventListenersContainer().removeEventListener(type, listener, useCapture); } 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-09-26 18:43:00 UTC (rev 8514) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/NodeTest.java 2013-09-26 19:28:53 UTC (rev 8515) @@ -894,4 +894,29 @@ loadPageWithAlerts2(html); } + + /** + * Verifies that listeners are copied only for IE. + * @throws Exception if an error occurs + */ + @Test + @Alerts(DEFAULT = { "true", "true" }, IE = { "false", "false" }) + public void addEventListener() throws Exception { + final String html = + "<html>\n" + + " <head>\n" + + " <script type='text/javascript'>\n" + + " function test() {\n" + + " var node = document.createElement('button');\n" + + " alert(node.addEventListener !== undefined);\n" + + " alert(node.removeEventListener !== undefined);\n" + + " }\n" + + " </script>\n" + + " </head>\n" + + " <body onload='test()'>\n" + + " </body>\n" + + "</html>"; + + loadPageWithAlerts2(html); + } } |