From: <rb...@us...> - 2013-10-23 17:54:20
|
Revision: 8676 http://sourceforge.net/p/htmlunit/code/8676 Author: rbri Date: 2013-10-23 17:54:15 +0000 (Wed, 23 Oct 2013) Log Message: ----------- start work on FF24 (wip) Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/BrowserConfiguration.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebDriverTestCase.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java 2013-10-23 10:13:22 UTC (rev 8675) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java 2013-10-23 17:54:15 UTC (rev 8676) @@ -123,6 +123,15 @@ "Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0", (float) 17.0, "FF17", null); + /** + * Firefox 24 ESR. + * @since 2.14 + **/ + public static final BrowserVersion FIREFOX_24 = new BrowserVersion( + NETSCAPE, "5.0 (Windows)", + "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0", + (float) 24.0, "FF24", null); + /** Internet Explorer 8. */ public static final BrowserVersion INTERNET_EXPLORER_8 = new BrowserVersion( INTERNET_EXPLORER, "4.0 (compatible; MSIE 8.0; Windows NT 6.0)", @@ -161,6 +170,12 @@ FIREFOX_17.setImgAcceptHeader("image/png,image/*;q=0.8,*/*;q=0.5"); FIREFOX_17.setCssAcceptHeader("text/css,*/*;q=0.1"); + FIREFOX_24.initDefaultFeatures(); + + FIREFOX_24.setHtmlAcceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); + FIREFOX_24.setImgAcceptHeader("image/png,image/*;q=0.8,*/*;q=0.5"); + FIREFOX_24.setCssAcceptHeader("text/css,*/*;q=0.1"); + INTERNET_EXPLORER_8.setHtmlAcceptHeader("image/gif, image/jpeg, image/pjpeg, image/pjpeg, */*"); final PluginConfiguration flash = new PluginConfiguration("Shockwave Flash", @@ -168,6 +183,7 @@ flash.getMimeTypes().add(new PluginConfiguration.MimeType("application/x-shockwave-flash", "Shockwave Flash", "swf")); FIREFOX_17.getPlugins().add(flash); + FIREFOX_24.getPlugins().add(flash); CHROME.initDefaultFeatures(); CHROME.setApplicationCodeName("Mozilla"); @@ -310,7 +326,7 @@ /** * Returns <tt>true</tt> if this <tt>BrowserVersion</tt> instance represents some - * version of Firefox like {@link #FIREFOX_3_6} or {@link #FIREFOX_17}. + * version of Firefox like {@link #FIREFOX_17} or {@link #FIREFOX_24}. * @return whether or not this version is a version of a Firefox browser */ public final boolean isFirefox() { Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/BrowserConfiguration.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/BrowserConfiguration.java 2013-10-23 10:13:22 UTC (rev 8675) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/BrowserConfiguration.java 2013-10-23 17:54:15 UTC (rev 8676) @@ -53,6 +53,14 @@ return ff(defaultValue).startingWith(17); } + public static BrowserConfiguration ffBelow24(final String defaultValue) { + return ff(defaultValue).upTo(23); + } + + public static BrowserConfiguration ff24up(final String defaultValue) { + return ff(defaultValue).startingWith(24); + } + public static BrowserConfiguration ie8up(final String defaultValue) { return ie(defaultValue).startingWith(8); } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java 2013-10-23 10:13:22 UTC (rev 8675) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java 2013-10-23 17:54:15 UTC (rev 8676) @@ -73,6 +73,9 @@ if (browsers.contains("hu") || browsers.contains("hu-ff17")) { runners_.add(new BrowserVersionClassRunner(klass, BrowserVersion.FIREFOX_17, false)); } + if (browsers.contains("hu") || browsers.contains("hu-ff24")) { + runners_.add(new BrowserVersionClassRunner(klass, BrowserVersion.FIREFOX_24, false)); + } if (browsers.contains("hu") || browsers.contains("hu-ie8")) { runners_.add(new BrowserVersionClassRunner(klass, BrowserVersion.INTERNET_EXPLORER_8, false)); } @@ -90,6 +93,9 @@ if (browsers.contains("ff17")) { runners_.add(new BrowserVersionClassRunner(klass, BrowserVersion.FIREFOX_17, true)); } + if (browsers.contains("ff24")) { + runners_.add(new BrowserVersionClassRunner(klass, BrowserVersion.FIREFOX_24, true)); + } if (browsers.contains("ie8")) { runners_.add(new BrowserVersionClassRunner(klass, BrowserVersion.INTERNET_EXPLORER_8, true)); } @@ -172,6 +178,9 @@ /** Firefox 17. */ FF17, + /** Firefox 24. */ + FF24, + /** * Not Browser-specific, it will run only once. Don't use this with other Browsers. * And don't call directly or indirectly {@link WebTestCase#getBrowserVersion()} @@ -230,6 +239,9 @@ /** Alerts for Firefox 17. If not defined, {@link #FF()} is used. */ String[] FF17() default { EMPTY_DEFAULT }; + /** Alerts for Firefox 24. If not defined, {@link #FF()} is used. */ + String[] FF24() default { EMPTY_DEFAULT }; + /** Alerts for latest Chrome. */ String[] CHROME() default { EMPTY_DEFAULT }; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java 2013-10-23 10:13:22 UTC (rev 8675) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java 2013-10-23 17:54:15 UTC (rev 8676) @@ -83,6 +83,9 @@ else if (browserVersion_ == BrowserVersion.FIREFOX_17) { expectedAlerts = firstDefined(alerts.FF17(), alerts.FF(), alerts.DEFAULT()); } + else if (browserVersion_ == BrowserVersion.FIREFOX_24) { + expectedAlerts = firstDefined(alerts.FF24(), alerts.FF(), alerts.DEFAULT()); + } else if (browserVersion_ == BrowserVersion.CHROME) { expectedAlerts = firstDefined(alerts.CHROME(), alerts.DEFAULT()); } @@ -254,6 +257,12 @@ } break; + case FF24: + if (browserVersion_ == BrowserVersion.FIREFOX_24) { + return true; + } + break; + case CHROME: if (browserVersion_.isChrome()) { return true; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebDriverTestCase.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebDriverTestCase.java 2013-10-23 10:13:22 UTC (rev 8675) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebDriverTestCase.java 2013-10-23 17:54:15 UTC (rev 8676) @@ -75,21 +75,23 @@ * "test.properties" in the HtmlUnit root directory. * Sample: * <pre> - browsers=hu,ff17,ie9 + browsers=hu,ff17,ff24,ie9 ie.bin=C:\\path\\to\\32bit\\IEDriverServer.exe [Windows] ff17.bin=/usr/bin/firefox [Unix-like] + ff24.bin=/usr/bin/firefox [Unix-like] chrome.bin=/path/to/chromedriver [Unix-like] * </pre> * The file should contain four properties: "browsers", "ie.bin", "ff17.bin", and "chrome.bin". * <ul> * <li>browsers: is a comma separated list contains any combination of "hu" (for HtmlUnit with all browser versions), - * "hu-ie8", "hu-ie9", "hu-ff17", - * "ff17", "ie8", "ie9", "chrome", which will be used to driver real browsers, + * "hu-ie8", "hu-ie9", "hu-ff17, "hu-ff24", + * "ff17", ff24", "ie8", "ie9", "chrome", which will be used to driver real browsers, * note that you can't define more than one IE as there is no standard way * to have multiple IEs on the same machine</li> * <li>ie.bin: is the location of the IEDriverServer binary (see * <a href="http://code.google.com/p/selenium/downloads/list">IEDriverServer downloads</a></li> * <li>ff17.bin: is the location of the FF17 binary, in Windows use double back-slashes</li> + * <li>ff24.bin: is the location of the FF24 binary, in Windows use double back-slashes</li> * <li>chrome.bin: is the location of the ChromeDriver binary (see * <a href="http://code.google.com/p/chromedriver/downloads/list">Chrome Driver downloads</a></li> * </ul> @@ -108,6 +110,7 @@ private static List<String> BROWSERS_PROPERTIES_; private static String IE_BIN_; private static String FF17_BIN_; + private static String FF24_BIN_; private static String CHROME_BIN_; /** The driver cache. */ @@ -145,6 +148,7 @@ .replaceAll(" ", "").toLowerCase().split(",")); IE_BIN_ = properties.getProperty("ie.bin"); FF17_BIN_ = properties.getProperty("ff17.bin"); + FF24_BIN_ = properties.getProperty("ff24.bin"); CHROME_BIN_ = properties.getProperty("chrome.bin"); } } @@ -248,6 +252,9 @@ if (BrowserVersion.FIREFOX_17 == getBrowserVersion()) { ffBinary = FF17_BIN_; } + if (BrowserVersion.FIREFOX_24 == getBrowserVersion()) { + ffBinary = FF24_BIN_; + } if (ffBinary != null) { return new FirefoxDriver(new FirefoxBinary(new File(ffBinary)), new FirefoxProfile()); } |