From: <asa...@us...> - 2012-12-29 06:13:12
|
Revision: 7918 http://sourceforge.net/p/htmlunit/code/7918 Author: asashour Date: 2012-12-29 06:13:09 +0000 (Sat, 29 Dec 2012) Log Message: ----------- CSS3: nth_child selector Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSSelectorTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2012-12-29 05:18:30 UTC (rev 7917) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2012-12-29 06:13:09 UTC (rev 7918) @@ -97,7 +97,7 @@ * Indicates that the pseudo classes 'root', 'enabled', 'disabled' * and 'checked' are supported. */ - @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) + @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(value = IE, minVersion = 9) }) CSS_SPECIAL_PSEUDO_CLASSES, /** Internet Explorer versions 5 and later support the behavior property. The behavior property lets Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java 2012-12-29 05:18:30 UTC (rev 7917) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java 2012-12-29 06:13:09 UTC (rev 7918) @@ -1880,7 +1880,7 @@ * @param selectors the selectors * @return the static node list */ - @JsxFunction({ @WebBrowser(value = IE, minVersion = 8), @WebBrowser(FF) }) + @JsxFunction({ @WebBrowser(value = IE, minVersion = 9), @WebBrowser(FF) }) public StaticNodeList querySelectorAll(final String selectors) { try { final List<Node> nodes = new ArrayList<Node>(); Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSSelectorTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSSelectorTest.java 2012-12-29 05:18:30 UTC (rev 7917) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSSelectorTest.java 2012-12-29 06:13:09 UTC (rev 7918) @@ -19,8 +19,6 @@ import com.gargoylesoftware.htmlunit.BrowserRunner; import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; -import com.gargoylesoftware.htmlunit.BrowserRunner.Browser; -import com.gargoylesoftware.htmlunit.BrowserRunner.NotYetImplemented; import com.gargoylesoftware.htmlunit.WebDriverTestCase; import com.gargoylesoftware.htmlunit.html.HtmlPageTest; @@ -41,13 +39,14 @@ * @throws Exception if an error occurs */ @Test - @Alerts("li2") - @NotYetImplemented(Browser.IE) + @Alerts(DEFAULT = "li2", IE8 = { }) public void nth_child() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>First</title><script>\n" + "function test() {\n" - + " alert(document.querySelectorAll('li:nth-child(2)')[0].id);\n" + + " if (document.querySelectorAll) {\n" + + " alert(document.querySelectorAll('li:nth-child(2)')[0].id);\n" + + " }\n" + "}\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -90,15 +89,16 @@ * @throws Exception if an error occurs */ @Test - @Alerts({ "li1", "li4", "li7", "li10" }) - @NotYetImplemented(Browser.IE) + @Alerts(DEFAULT = { "li1", "li4", "li7", "li10" }, IE8 = { }) public void nth_child_equation() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>First</title><script>\n" + "function test() {\n" - + " var list = document.querySelectorAll('li:nth-child(3n+1)');\n" - + " for (var i = 0 ; i < list.length; i++) {\n" - + " alert(list[i].id);\n" + + " if (document.querySelectorAll) {\n" + + " var list = document.querySelectorAll('li:nth-child(3n+1)');\n" + + " for (var i = 0 ; i < list.length; i++) {\n" + + " alert(list[i].id);\n" + + " }\n" + " }\n" + "}\n" + "</script></head>\n" @@ -146,16 +146,16 @@ * @throws Exception if an error occurs */ @Test - @Alerts({ "1", "ul2" }) + @Alerts(DEFAULT = { "1", "ul2" }, IE8 = { }) public void directAdjacentSelector() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>First</title><script>\n" + "function test() {\n" - + " try {\n" + + " if (document.querySelectorAll) {\n" + " var list = document.querySelectorAll('p+ul');\n" + " alert(list.length);\n" + " alert(list[0].id);\n" - + " } catch(e) {alert('exception')}\n" + + " }\n" + "}\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -172,16 +172,16 @@ * @throws Exception if an error occurs */ @Test - @Alerts({ "1", "thing1" }) + @Alerts(DEFAULT = { "1", "thing1" }, IE8 = { }) public void prefixAttribute() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>First</title><script>\n" + "function test() {\n" - + " try {\n" + + " if (document.querySelectorAll) {\n" + " var list = document.querySelectorAll('[id^=\"thing\"]');\n" + " alert(list.length);\n" + " alert(list[0].id);\n" - + " } catch(e) {alert('exception')}\n" + + " }\n" + "}\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -198,16 +198,16 @@ * @throws Exception if an error occurs */ @Test - @Alerts({ "1", "something" }) + @Alerts(DEFAULT = { "1", "something" }, IE8 = { }) public void suffixAttribute() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>First</title><script>\n" + "function test() {\n" - + " try {\n" + + " if (document.querySelectorAll) {\n" + " var list = document.querySelectorAll('[id$=\"thing\"]');\n" + " alert(list.length);\n" + " alert(list[0].id);\n" - + " } catch(e) {alert('exception')}\n" + + " }\n" + "}\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -224,17 +224,17 @@ * @throws Exception if an error occurs */ @Test - @Alerts({ "2", "something", "thing2" }) + @Alerts(DEFAULT = { "2", "something", "thing2" }, IE8 = { }) public void substringAttribute() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>First</title><script>\n" + "function test() {\n" - + " try {\n" + + " if (document.querySelectorAll) {\n" + " var list = document.querySelectorAll('[id*=\"thing\"]');\n" + " alert(list.length);\n" + " alert(list[0].id);\n" + " alert(list[1].id);\n" - + " } catch(e) {alert('exception')}\n" + + " }\n" + "}\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -251,16 +251,16 @@ * @throws Exception if an error occurs */ @Test - @Alerts({ "1", "ul2" }) + @Alerts(DEFAULT = { "1", "ul2" }, IE8 = { }) public void generalAdjacentSelector() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>First</title><script>\n" + "function test() {\n" - + " try {\n" + + " if (document.querySelectorAll) {\n" + " var list = document.querySelectorAll('div~ul');\n" + " alert(list.length);\n" + " alert(list[0].id);\n" - + " } catch(e) {alert('exception')}\n" + + " }\n" + "}\n" + "</script></head>\n" + "<body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java 2012-12-29 05:18:30 UTC (rev 7917) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java 2012-12-29 06:13:09 UTC (rev 7918) @@ -859,9 +859,7 @@ * @throws Exception if the test fails */ @Test - @Alerts(FF = { "3", "div1" }, - IE = "undefined", - IE8 = { "3", "div1" }) + @Alerts(DEFAULT = { "3", "div1" }, IE8 = "undefined") public void querySelectorAll() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>Test</title>\n" + "<style>\n" |