From: <rb...@us...> - 2017-07-22 15:07:12
|
Revision: 14688 http://sourceforge.net/p/htmlunit/code/14688 Author: rbri Date: 2017-07-22 15:07:10 +0000 (Sat, 22 Jul 2017) Log Message: ----------- more detailed tests, add isFirefox52 to make updates more robust Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/configuration/AbstractJavaScriptConfiguration.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/intl/DateTimeFormat.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/CodeStyleTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection2Test.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java 2017-07-22 12:38:14 UTC (rev 14687) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java 2017-07-22 15:07:10 UTC (rev 14688) @@ -535,6 +535,14 @@ } /** + * <span style="color:red">INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.</span><br> + * @return whether or not this version version 52 of a Firefox browser + */ + public final boolean isFirefox52() { + return isFirefox() && getBrowserVersionNumeric() == 52; + } + + /** * Returns the application code name, for example "Mozilla". * Default value is "Mozilla" if not explicitly configured. * @return the application code name Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/configuration/AbstractJavaScriptConfiguration.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/configuration/AbstractJavaScriptConfiguration.java 2017-07-22 12:38:14 UTC (rev 14687) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/configuration/AbstractJavaScriptConfiguration.java 2017-07-22 15:07:10 UTC (rev 14688) @@ -105,13 +105,11 @@ else if (browser.isEdge()) { expectedBrowser = SupportedBrowser.EDGE; } + else if (browser.isFirefox52()) { + expectedBrowser = SupportedBrowser.FF52; + } else if (browser.isFirefox()) { - if (browser.getBrowserVersionNumeric() < 52) { - expectedBrowser = SupportedBrowser.FF45; - } - else { - expectedBrowser = SupportedBrowser.FF52; - } + expectedBrowser = SupportedBrowser.FF45; } else { expectedBrowser = SupportedBrowser.CHROME; // our current fallback Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java 2017-07-22 12:38:14 UTC (rev 14687) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java 2017-07-22 15:07:10 UTC (rev 14688) @@ -941,12 +941,11 @@ compatMode_ = "CSS1Compat"; - final BrowserVersion browserVersion = getBrowserVersion(); if (isQuirksDocType()) { compatMode_ = "BackCompat"; } - final float version = browserVersion.getBrowserVersionNumeric(); + final float version = getBrowserVersion().getBrowserVersionNumeric(); documentMode_ = (int) Math.floor(version); return documentMode_; } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/intl/DateTimeFormat.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/intl/DateTimeFormat.java 2017-07-22 12:38:14 UTC (rev 14687) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/intl/DateTimeFormat.java 2017-07-22 15:07:10 UTC (rev 14688) @@ -242,8 +242,7 @@ else if (browserVersion.isIE()) { formats = IE_FORMATS_; } - else if (browserVersion.isFirefox() - && browserVersion.getBrowserVersionNumeric() < BrowserVersion.FIREFOX_52.getBrowserVersionNumeric()) { + else if (!browserVersion.isFirefox52()) { formats = FF_45_FORMATS_; } else { Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/CodeStyleTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/CodeStyleTest.java 2017-07-22 12:38:14 UTC (rev 14687) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/CodeStyleTest.java 2017-07-22 15:07:10 UTC (rev 14688) @@ -639,22 +639,39 @@ */ private void browserVersion_isIE(final List<String> lines, final String relativePath) { if (relativePath.replace('\\', '/').contains("src/main/java") - && !relativePath.contains("JavaScriptConfiguration") - && !relativePath.contains("BrowserVersionFeatures") - && !relativePath.contains("Document") - && !relativePath.contains("HTMLParser") - && !relativePath.contains("DateTimeFormat") - && !relativePath.contains("NashornJavaScriptEngine")) { + && !relativePath.contains("JavaScriptConfiguration.java") + && !relativePath.contains("BrowserVersionFeatures.java") + && !relativePath.contains("DateTimeFormat.java") + && !relativePath.contains("Document.java") + && !relativePath.contains("HTMLDocument2.java") + && !relativePath.contains("NashornJavaScriptEngine.java")) { int index = 1; for (final String line : lines) { - if (line.contains(".isIE()") || line.contains(".isFirefox()")) { - addFailure(".isIE() and .isFirefox() should not be used, please use .hasFeature(): " + if (line.contains(".isIE()")) { + addFailure(".isIE() should not be used, please use .hasFeature(): " + relativePath + ", line: " + index); } - if (line.contains(".getBrowserVersionNumeric()") - && !relativePath.contains("BrowserConfiguration") - && !relativePath.contains("Window.java") - && !relativePath.contains("Window2.java")) { + if (line.contains(".isFirefox()")) { + addFailure(".isFirefox() should not be used, please use .hasFeature(): " + + relativePath + ", line: " + index); + } + if (line.contains(".isChrome()")) { + addFailure(".isChrome() should not be used, please use .hasFeature(): " + + relativePath + ", line: " + index); + } + index++; + } + } + if (relativePath.replace('\\', '/').contains("src/main/java") + && !relativePath.contains("BrowserConfiguration.java") + && !relativePath.contains("BrowserVersion.java") + && !relativePath.contains("Document.java") + && !relativePath.contains("HTMLParser.java") + && !relativePath.contains("Window.java") + && !relativePath.contains("Window2.java")) { + int index = 1; + for (final String line : lines) { + if (line.contains(".getBrowserVersionNumeric()")) { addFailure(".getBrowserVersionNumeric() should not be used, please use .hasFeature(): " + relativePath + ", line: " + index); } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection2Test.java 2017-07-22 12:38:14 UTC (rev 14687) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection2Test.java 2017-07-22 15:07:10 UTC (rev 14688) @@ -79,17 +79,17 @@ + "User-Agent: " + getBrowserVersion().getUserAgent() + "\n"; } if (getBrowserVersion().isFirefox()) { - if (getBrowserVersion().getBrowserVersionNumeric() < 52) { + if (getBrowserVersion().isFirefox52()) { expectedHeaders = "Connection: keep-alive\n" - + "Host: localhost:" + PORT + "\n" - + "Referer: http://localhost:" + PORT + "/\n" - + "User-Agent: " + getBrowserVersion().getUserAgent() + "\n"; + + "Host: localhost:" + PORT + "\n" + + "Referer: http://localhost:" + PORT + "/\n" + + "Upgrade-Insecure-Requests: 1\n" + + "User-Agent: " + getBrowserVersion().getUserAgent() + "\n"; } else { expectedHeaders = "Connection: keep-alive\n" + "Host: localhost:" + PORT + "\n" + "Referer: http://localhost:" + PORT + "/\n" - + "Upgrade-Insecure-Requests: 1\n" + "User-Agent: " + getBrowserVersion().getUserAgent() + "\n"; } } |