From: <mgu...@us...> - 2013-03-14 08:04:17
|
Revision: 8169 http://sourceforge.net/p/htmlunit/code/8169 Author: mguillem Date: 2013-03-14 08:04:13 +0000 (Thu, 14 Mar 2013) Log Message: ----------- oops, we can't yet reject some invalid selectors like ":nth-child(- 1n)" as CSSParser trims the spaces 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/html/HTMLElement2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.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 2013-03-13 17:13:38 UTC (rev 8168) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java 2013-03-14 08:04:13 UTC (rev 8169) @@ -124,7 +124,7 @@ private static final Log LOG = LogFactory.getLog(CSSStyleSheet.class); private static final Pattern NTH_NUMERIC = Pattern.compile("\\d+"); - private static final Pattern NTH_COMPLEX = Pattern.compile("[-+]?\\d*n\\w*([+-]\\w\\d*)?"); + private static final Pattern NTH_COMPLEX = Pattern.compile("[+-]?\\d*n\\w*([+-]\\w\\d*)?"); /** The parsed stylesheet which this host object wraps. */ private final org.w3c.dom.css.CSSStyleSheet wrapped_; 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 17:13:38 UTC (rev 8168) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement2Test.java 2013-03-14 08:04:13 UTC (rev 8169) @@ -14,6 +14,7 @@ */ package com.gargoylesoftware.htmlunit.javascript.host.html; +import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF17; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.IE; @@ -941,18 +942,31 @@ } // some other bad selectors tested in jQuery 1.8.2 tests - final String[] otherBadSelectors = {":nth-child(2n+-0)", ":nth-child(2+0)", ":nth-child(- 1n)", - ":nth-child(-1 n)" }; + final String[] otherBadSelectors = {":nth-child(2n+-0)", ":nth-child(2+0)" }; for (final String selector : otherBadSelectors) { doTestQuerySelectorAll_badSelector(selector); } } + /** + * To be moved in the above test once it works. + * The problem is that spaces are trimmed in the value of PseudoClassConditionImpl + * and therefore the selector is not invalid anymore. + * @throws Exception if the test fails + */ + @Test + @Alerts("exception") + @NotYetImplemented(FF) + public void querySelectorAll_badSelectorNYI() throws Exception { + doTestQuerySelectorAll_badSelector(":nth-child(- 1n)"); + doTestQuerySelectorAll_badSelector(":nth-child(-1 n)"); + } + private void doTestQuerySelectorAll_badSelector(final String selector) throws Exception { final String html = "<html><body><div id='it'></div><script>\n" + "try {\n" + " document.getElementById('it').querySelectorAll('" + selector + "');\n" - + " alert('working: + " + selector + "');\n" + + " alert('working: " + selector + "');\n" + "} catch(e) { alert('exception'); }\n" + "</script></body></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 17:13:38 UTC (rev 8168) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java 2013-03-14 08:04:13 UTC (rev 8169) @@ -108,6 +108,7 @@ result = result.substring(0, result.indexOf("Rerun")).trim(); final String expected = testName + " (" + getExpectedAlerts()[0] + ")"; if (!expected.contains(result)) { + System.out.println("-> " + webdriver.findElement(By.id("qunit-tests")).getText()); fail(new ComparisonFailure("", expected, result).getMessage()); } } @@ -6769,6 +6770,7 @@ */ @Test @Alerts("0, 21, 21") + @NotYetImplemented(FF) public void Sizzle__selector__broken() throws Exception { runTest("Sizzle: selector: broken"); } |