/* * Copyright 2014 GoDataDriven B.V. * * 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 io.divolte.server; import java.util.Collection; import java.util.function.Supplier; import java.util.stream.StreamSupport; import org.openqa.selenium.remote.DesiredCapabilities; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; public final class BrowserLists { public static final Collection<Object[]> SAUCE_BROWSER_LIST = ImmutableList.of( // Windows XP new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability("platform", "Windows XP"); caps.setCapability("version", "6"); caps.setCapability("deviceName", ""); return caps; }, "IE6 on Windows XP" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setCapability("platform", "Windows XP"); caps.setCapability("version", "30"); caps.setCapability("deviceName", ""); return caps; }, "Chrome 30 on Windows XP" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.firefox(); caps.setCapability("platform", "Windows XP"); caps.setCapability("version", "27"); caps.setCapability("deviceName", ""); return caps; }, "FF27 on Windows XP" }, // Windows 7 new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability("platform", "Windows 7"); caps.setCapability("version", "10"); caps.setCapability("deviceName", ""); return caps; }, "IE10 on Windows 7" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.operaBlink(); caps.setCapability("platform", "Windows 7"); caps.setCapability("version", "12"); caps.setCapability("deviceName", ""); return caps; }, "Opera 12 on Windows 7" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setCapability("platform", "Windows 7"); caps.setCapability("version", "35"); caps.setCapability("deviceName", ""); return caps; }, "Chrome 35 on Windows 7" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.firefox(); caps.setCapability("platform", "Windows 7"); caps.setCapability("version", "30"); caps.setCapability("deviceName", ""); return caps; }, "FF30 on Windows 7" }, // Windows 8 new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability("platform", "Windows 8"); caps.setCapability("version", "10"); caps.setCapability("deviceName", ""); return caps; }, "IE10 on Windows 8" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setCapability("platform", "Windows 8"); caps.setCapability("version", "35"); caps.setCapability("deviceName", ""); return caps; }, "Chrome 35 on Windows 8" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.firefox(); caps.setCapability("platform", "Windows 8"); caps.setCapability("version", "30"); caps.setCapability("deviceName", ""); return caps; }, "FF30 on Windows 8" }, // Windows 8.1 new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability("platform", "Windows 8.1"); caps.setCapability("version", "11"); caps.setCapability("deviceName", ""); return caps; }, "IE11 on Windows 8.1" }, // OS X new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.safari(); caps.setCapability("platform", "OS X 10.6"); caps.setCapability("version", "5"); caps.setCapability("deviceName", ""); return caps; }, "Safari 5 on OS X 10.6" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.safari(); caps.setCapability("platform", "OS X 10.8"); caps.setCapability("version", "6"); caps.setCapability("deviceName", ""); return caps; }, "Safari 6 on OS X 10.8" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.safari(); caps.setCapability("platform", "OS X 10.9"); caps.setCapability("version", "7"); caps.setCapability("deviceName", ""); return caps; }, "Safari 7 on OS X 10.9" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setCapability("platform", "OS X 10.9"); caps.setCapability("version", "33"); caps.setCapability("deviceName", ""); return caps; }, "Chrome 33 on OS X 10.9" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { DesiredCapabilities caps = DesiredCapabilities.firefox(); caps.setCapability("platform", "OS X 10.9"); caps.setCapability("version", "30"); caps.setCapability("deviceName", ""); return caps; }, "FF30 on OS X 10.9" }, // Linux new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.operaBlink(); caps.setCapability("platform", "Linux"); caps.setCapability("version", "12"); caps.setCapability("deviceName", ""); return caps; }, "Opera 12 on Linux" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setCapability("platform", "Linux"); caps.setCapability("version", "35"); caps.setCapability("deviceName", ""); return caps; }, "Chrome 35 on Linux" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.firefox(); caps.setCapability("platform", "Linux"); caps.setCapability("version", "30"); caps.setCapability("deviceName", ""); return caps; }, "FF30 on Linux" }, // iOS new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.iphone(); caps.setCapability("platform", "OS X 10.9"); caps.setCapability("version", "7.1"); caps.setCapability("device-orientation", "portrait"); return caps; }, "iOS 7.1 on iPhone" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = DesiredCapabilities.iphone(); caps.setCapability("platform", "OS X 10.8"); caps.setCapability("version", "6.1"); caps.setCapability("device-orientation", "portrait"); return caps; }, "iOS 6.1 on iPhone" }); public static final Collection<Object[]> BS_BROWSER_LIST = ImmutableList.of( // Windows XP new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browser", "IE"); caps.setCapability("browser_version", "11.0"); caps.setCapability("os", "Windows"); caps.setCapability("os_version", "8.1"); caps.setCapability("resolution", "1280x1024"); caps.setCapability("browserstack.local", "true"); return caps; }, "IE11 on Windows 8.1" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browser", "IE"); caps.setCapability("browser_version", "10.0"); caps.setCapability("os", "Windows"); caps.setCapability("os_version", "8"); caps.setCapability("resolution", "1280x1024"); caps.setCapability("browserstack.local", "true"); return caps; }, "IE10 on Windows 8" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browser", "Safari"); caps.setCapability("browser_version", "7.0"); caps.setCapability("os", "OS X"); caps.setCapability("os_version", "Mavericks"); caps.setCapability("resolution", "1280x1024"); caps.setCapability("browserstack.local", "true"); return caps; }, "Safari 7 on OS X Mavericks" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browser", "IE"); caps.setCapability("browser_version", "8.0"); caps.setCapability("os", "Windows"); caps.setCapability("os_version", "7"); caps.setCapability("resolution", "1280x1024"); caps.setCapability("browserstack.local", "true"); return caps; }, "IE8 on Windows 7" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browserName", "iPhone"); caps.setCapability("platform", "MAC"); caps.setCapability("device", "iPhone 5"); caps.setCapability("browserstack.local", "true"); return caps; }, "iOS 6.1 on iPhone 5" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browserName", "iPhone"); caps.setCapability("platform", "MAC"); caps.setCapability("device", "iPhone 5C"); caps.setCapability("browserstack.local", "true"); return caps; }, "iOS 7.0 on iPhone 5C" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browserName", "android"); caps.setCapability("platform", "ANDROID"); caps.setCapability("device", "Samsung Galaxy S III"); caps.setCapability("browserstack.local", "true"); return caps; }, "Android 4.1 on Samsung Galaxy S III" }, new Object[] { (Supplier<DesiredCapabilities>) () -> { final DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browserName", "android"); caps.setCapability("platform", "ANDROID"); caps.setCapability("device", "Amazon Kindle Fire 2"); caps.setCapability("browserstack.local", "true"); return caps; }, "Android 4 on Amazon Kindle Fire 2" } ); public static String browserNameList(final Iterable<Object[]> list) { Joiner joiner = Joiner.on('\n'); return joiner.join(StreamSupport.stream(list.spliterator(), false).map((param) -> param[1]).toArray()); } }