From: <asa...@us...> - 2012-12-31 08:08:02
|
Revision: 7928 http://sourceforge.net/p/htmlunit/code/7928 Author: asashour Date: 2012-12-31 08:07:59 +0000 (Mon, 31 Dec 2012) Log Message: ----------- CSS3 selector "empty" Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSSelectorTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java 2012-12-31 06:54:50 UTC (rev 7927) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java 2012-12-31 08:07:59 UTC (rev 7928) @@ -662,6 +662,9 @@ } return true; } + else if ("empty".equals(value)) { + return element.getFirstChild() == null; + } return false; } 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-31 06:54:50 UTC (rev 7927) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSSelectorTest.java 2012-12-31 08:07:59 UTC (rev 7928) @@ -538,4 +538,29 @@ loadPageWithAlerts2(html); } + /** + * @throws Exception if an error occurs + */ + @Test + @Alerts(DEFAULT = "id1", IE8 = "exception") + public void empty() throws Exception { + final String html = "<html><head><title>First</title>\n" + + "<meta http-equiv='X-UA-Compatible' content='IE=9'>\n" + + "<script>\n" + + "function test() {\n" + + " if (document.querySelectorAll) {\n" + + " try {\n" + + " alert(document.querySelectorAll('p:empty')[0].id);\n" + + " } catch(e) {alert('exception')}\n" + + " }\n" + + "}\n" + + "</script></head>\n" + + "<body onload='test()'>\n" + + " <p id='id1'></p>\n" + + " <p id='id2'>Hello, World!</p>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } + } |