diff options
author | Henri Sara <hesara@vaadin.com> | 2016-04-28 09:27:55 +0300 |
---|---|---|
committer | Henri Sara <hesara@vaadin.com> | 2016-04-28 09:27:55 +0300 |
commit | 553e614b51a7a063e1d105daa737ec2c24ba5c02 (patch) | |
tree | 07030bb81abcd35442418b6bbc6ec696367ee18c /uitest | |
parent | 98598f4f930da161849023917dd4e964cf8f0303 (diff) | |
download | vaadin-framework-553e614b51a7a063e1d105daa737ec2c24ba5c02.tar.gz vaadin-framework-553e614b51a7a063e1d105daa737ec2c24ba5c02.zip |
Add browser factory for SauceLabs
Change-Id: I91fffa8e88ab83e262d09c55282dc51562709b76
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/tb3/SauceLabsBrowserFactory.java | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/SauceLabsBrowserFactory.java b/uitest/src/test/java/com/vaadin/tests/tb3/SauceLabsBrowserFactory.java new file mode 100644 index 0000000000..59ef94c5ad --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/tb3/SauceLabsBrowserFactory.java @@ -0,0 +1,112 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.tb3; + +import org.openqa.selenium.Platform; +import org.openqa.selenium.ie.InternetExplorerDriver; +import org.openqa.selenium.remote.DesiredCapabilities; + +import com.vaadin.shared.Version; +import com.vaadin.testbench.parallel.Browser; +import com.vaadin.testbench.parallel.DefaultBrowserFactory; + +public class SauceLabsBrowserFactory extends DefaultBrowserFactory { + + @Override + public DesiredCapabilities create(Browser browser) { + String version = ""; + // need to pick a version to request, but for these two auto-updating + // browsers there is a special value "latest" (and "latest-1", + // "latest-2") + if (Browser.FIREFOX.equals(browser) || Browser.CHROME.equals(browser)) { + version = "latest"; + } + return create(browser, version, Platform.ANY); + } + + @Override + public DesiredCapabilities create(Browser browser, String version, + Platform platform) { + DesiredCapabilities caps; + + switch (browser) { + case CHROME: + caps = DesiredCapabilities.chrome(); + caps.setVersion(version); + break; + case PHANTOMJS: + throw new IllegalArgumentException( + "PhantomJS is not supported by SauceLabs"); + case SAFARI: + caps = DesiredCapabilities.safari(); + caps.setVersion(version); + break; + case IE8: + caps = DesiredCapabilities.internetExplorer(); + caps.setVersion("8.0"); + caps.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, + true); + break; + case IE9: + caps = DesiredCapabilities.internetExplorer(); + caps.setVersion("9.0"); + caps.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, + true); + break; + case IE10: + caps = DesiredCapabilities.internetExplorer(); + caps.setVersion("10.0"); + caps.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, + true); + break; + case IE11: + caps = DesiredCapabilities.internetExplorer(); + caps.setVersion("11.0"); + // There are 2 capabilities ie.ensureCleanSession and + // ensureCleanSession in Selenium + // IE 11 uses ie.ensureCleanSession + caps.setCapability("ie.ensureCleanSession", true); + caps.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, + true); + break; + case FIREFOX: + caps = DesiredCapabilities.firefox(); + caps.setVersion(version); + break; + default: + caps = DesiredCapabilities.firefox(); + caps.setVersion(version); + caps.setPlatform(platform); + } + + if (!Browser.PHANTOMJS.equals(browser)) { + caps.setCapability("platform", "Windows 7"); + } + + // accept self-signed certificates + caps.setCapability("acceptSslCerts", "true"); + + // SauceLabs specific parts + + caps.setCapability("screenResolution", "1680x1050"); + + // build and project for easy identification in SauceLabs UI + caps.setCapability("build", Version.getFullVersion()); + + return caps; + } + +} |