From: <mgu...@us...> - 2013-03-13 12:12:40
|
Revision: 8164 http://sourceforge.net/p/htmlunit/code/8164 Author: mguillem Date: 2013-03-13 12:12:37 +0000 (Wed, 13 Mar 2013) Log Message: ----------- DomNode.querySelectorAll: return nodes matched by many selectors only once. Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomNode.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2013-03-13 11:20:01 UTC (rev 8163) +++ trunk/htmlunit/src/changes/changes.xml 2013-03-13 12:12:37 UTC (rev 8164) @@ -9,6 +9,9 @@ <body> <release version="2.13" date="???" description="Bugfixes"> <action type="fix" dev="mguillem"> + DomNode.querySelectorAll: return nodes matched by many selectors only once. + </action> + <action type="fix" dev="mguillem"> JavaScript: JS click() method triggers onchange handler on checkbox and radio button. </action> <action type="fix" dev="mguillem" issue="1494"> Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomNode.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomNode.java 2013-03-13 11:20:01 UTC (rev 8163) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomNode.java 2013-03-13 12:12:37 UTC (rev 8164) @@ -1578,6 +1578,7 @@ final Selector selector = selectorList.item(i); if (CSSStyleSheet.selects(browserVersion, selector, child)) { elements.add(child); + break; } } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement2Test.java 2013-03-13 11:20:01 UTC (rev 8163) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement2Test.java 2013-03-13 12:12:37 UTC (rev 8164) @@ -973,4 +973,25 @@ loadPageWithAlerts2(html); } + + /** + * querySelectorAll should return nodes matched by many rules only once. + * @throws Exception if the test fails + */ + @Test + @Alerts(FF = "1", IE = "undefined") + public void querySelectorAll_noDuplication() throws Exception { + final String html = "<html><body>\n" + + "<div><span>First</span></div>\n" + + "<script>\n" + + " if(document.body.querySelectorAll) {\n" + + " var tags = document.body.querySelectorAll('span, div > span');\n" + + " alert(tags.length);\n" + + " }\n" + + " else\n" + + " alert('undefined');\n" + + "</script></body></html>"; + + loadPageWithAlerts2(html); + } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java 2013-03-13 11:20:01 UTC (rev 8163) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java 2013-03-13 12:12:37 UTC (rev 8164) @@ -6748,7 +6748,6 @@ */ @Test @Alerts("0, 36, 36") - @NotYetImplemented(FF) public void Sizzle__selector__element() throws Exception { runTest("Sizzle: selector: element"); } |