package com.vaadin.client;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Assert;
import org.junit.Test;
import com.vaadin.shared.VBrowserDetails;
public class VBrowserDetailsUserAgentParserTest {
private static final String FIREFOX30_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6";
private static final String FIREFOX30_LINUX = "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.0.12) Gecko/2009070811 Ubuntu/9.04 (jaunty) Firefox/3.0.12";
private static final String FIREFOX33_ANDROID = "Mozilla/5.0 (Android; Tablet; rv:33.0) Gecko/33.0 Firefox/33.0";
private static final String FIREFOX35_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 (.NET CLR 3.5.30729) FirePHP/0.4";
private static final String FIREFOX36_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)";
private static final String FIREFOX36B_MAC = "UAString mozilla/5.0 (macintosh; u; intel mac os x 10.6; en-us; rv:1.9.2) gecko/20100115 firefox/3.6";
private static final String FIREFOX_30B5_MAC = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9b5) Gecko/2008032619 Firefox/3.0b5";
private static final String FIREFOX_40B7_WIN = "Mozilla/5.0 (Windows NT 5.1; rv:2.0b7) Gecko/20100101 Firefox/4.0b7";
private static final String FIREFOX_40B11_WIN = "Mozilla/5.0 (Windows NT 5.1; rv:2.0b11) Gecko/20100101 Firefox/4.0b11";
private static final String FIREFOX_SUPPORTED = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Firefox/45.0";
private static final String KONQUEROR_LINUX = "Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Exabot-Thumbnails)";
private static final String IE11_WINDOWS_7 = "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; rv:11.0) like Gecko";
private static final String IE11_WINDOWS_7_COMPATIBILITY_VIEW_IE7 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";
private static final String IE11_WINDOWS_10_COMPATIBILITY_VIEW_IE7 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)";
private static final String IE11_INITIAL_WINDOWS_10_COMPATIBILITY_VIEW_IE7 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/8.0; .NET4.0C; .NET4.0E)";
private static final String IE11_WINDOWS_PHONE_8_1_UPDATE = "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 920) Like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537";
// "Version/" was added in 10.00
private static final String OPERA964_WINDOWS = "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1";
private static final String OPERA1010_WINDOWS = "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10";
private static final String OPERA1050_WINDOWS = "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.5.22 Version/10.50";
private static final String CHROME3_MAC = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.198 Safari/532.0";
private static final String CHROME4_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5";
private static final String SAFARI3_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 5.1; cs-CZ) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.29";
private static final String SAFARI4_MAC = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7";
private static final String IPHONE_IOS_5_1 = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3";
private static final String IPHONE_IOS_4_0 = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7";
private static final String IPAD_IOS_4_3_1 = "Mozilla/5.0 (iPad; U; CPU OS 4_3_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5";
// application on the home screen, without Safari in user agent
private static final String IPHONE_IOS_6_1_HOMESCREEN_SIMULATOR = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B141";
private static final String ANDROID_HTC_2_1 = "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; ADR6300 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17";
private static final String ANDROID_GOOGLE_NEXUS_2_2 = "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
private static final String ANDROID_MOTOROLA_3_0 = "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13";
private static final String ANDROID_GALAXY_NEXUS_4_0_4_CHROME = "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19";
private static final String EDGE_WINDOWS_10 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240";
private static final String PHANTOMJS_211_MAC = "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1";
private static final String CHROME_57_ON_IOS_10_3_1 = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/57.0.2987.137 Mobile/14E304 Safari/602.1";
@Test
public void testSafari3() {
VBrowserDetails bd = new VBrowserDetails(SAFARI3_WINDOWS);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 2);
assertEngineVersion(bd, 525.0f);
assertWindows(bd);
}
@Test
public void testSafari4() {
VBrowserDetails bd = new VBrowserDetails(SAFARI4_MAC);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 531f);
assertMacOSX(bd);
}
@Test
public void testIPhoneIOS6Homescreen() {
VBrowserDetails bd = new VBrowserDetails(
IPHONE_IOS_6_1_HOMESCREEN_SIMULATOR);
assertWebKit(bd);
// not identified as Safari, no browser version available
// assertSafari(bd);
// assertBrowserMajorVersion(bd, 6);
// assertBrowserMinorVersion(bd, 1);
assertEngineVersion(bd, 536f);
assertIOS(bd, 6, 1);
assertIPhone(bd);
}
@Test
public void testIPhoneIOS5() {
VBrowserDetails bd = new VBrowserDetails(IPHONE_IOS_5_1);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 5);
assertBrowserMinorVersion(bd, 1);
assertEngineVersion(bd, 534f);
assertIOS(bd, 5, 1);
assertIPhone(bd);
}
@Test
public void testIPhoneIOS4() {
VBrowserDetails bd = new VBrowserDetails(IPHONE_IOS_4_0);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 532f);
assertIOS(bd, 4, 0);
assertIPhone(bd);
}
@Test
public void testIPadIOS4() {
VBrowserDetails bd = new VBrowserDetails(IPAD_IOS_4_3_1);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 5);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 533f);
assertIOS(bd, 4, 3);
assertIPad(bd);
}
@Test
public void testAndroid21() {
VBrowserDetails bd = new VBrowserDetails(ANDROID_HTC_2_1);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 530f);
assertAndroid(bd, 2, 1);
}
@Test
public void testAndroid22() {
VBrowserDetails bd = new VBrowserDetails(ANDROID_GOOGLE_NEXUS_2_2);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 533f);
assertAndroid(bd, 2, 2);
}
@Test
public void testAndroid30() {
VBrowserDetails bd = new VBrowserDetails(ANDROID_MOTOROLA_3_0);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 534f);
assertAndroid(bd, 3, 0);
}
@Test
public void testAndroid40Chrome() {
VBrowserDetails bd = new VBrowserDetails(
ANDROID_GALAXY_NEXUS_4_0_4_CHROME);
assertWebKit(bd);
assertChrome(bd);
assertBrowserMajorVersion(bd, 18);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 535f);
assertAndroid(bd, 4, 0);
}
private void assertOSMajorVersion(VBrowserDetails bd, int i) {
assertEquals(i, bd.getOperatingSystemMajorVersion());
}
private void assertOSMinorVersion(VBrowserDetails bd, int i) {
assertEquals(i, bd.getOperatingSystemMinorVersion());
}
@Test
public void testChrome3() {
VBrowserDetails bd = new VBrowserDetails(CHROME3_MAC);
assertWebKit(bd);
assertChrome(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 532.0f);
assertMacOSX(bd);
}
@Test
public void testChrome4() {
VBrowserDetails bd = new VBrowserDetails(CHROME4_WINDOWS);
assertWebKit(bd);
assertChrome(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 532f);
assertWindows(bd);
}
@Test
public void testChromeIOS() {
VBrowserDetails bd = new VBrowserDetails(CHROME_57_ON_IOS_10_3_1);
assertWebKit(bd);
assertChrome(bd);
assertBrowserMajorVersion(bd, 57);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 602f);
assertIOS(bd, 10, 3);
}
@Test
public void testFirefox3() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX30_WINDOWS);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 1.9f);
assertWindows(bd);
bd = new VBrowserDetails(FIREFOX30_LINUX);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 1.9f);
assertLinux(bd);
}
@Test
public void testFirefox33Android() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX33_ANDROID);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 33);
assertBrowserMinorVersion(bd, 0);
assertAndroid(bd, -1, -1);
}
@Test
public void testFirefox35() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX35_WINDOWS);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 5);
assertEngineVersion(bd, 1.9f);
assertWindows(bd);
}
@Test
public void testFirefox36() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX36_WINDOWS);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 6);
assertEngineVersion(bd, 1.9f);
assertWindows(bd);
}
@Test
public void testFirefox30b5() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX_30B5_MAC);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 1.9f);
assertMacOSX(bd);
}
@Test
public void testFirefox40b11() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX_40B11_WIN);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 2.0f);
assertWindows(bd);
}
@Test
public void testFirefox40b7() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX_40B7_WIN);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 4);
assertBrowserMinorVersion(bd, 0);
assertEngineVersion(bd, 2.0f);
assertWindows(bd);
}
@Test
public void testKonquerorLinux() {
// Just ensure detection does not crash
VBrowserDetails bd = new VBrowserDetails(KONQUEROR_LINUX);
assertLinux(bd);
}
@Test
public void testFirefox36b() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX36B_MAC);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertBrowserMinorVersion(bd, 6);
assertEngineVersion(bd, 1.9f);
assertMacOSX(bd);
}
@Test
public void testOpera964() {
VBrowserDetails bd = new VBrowserDetails(OPERA964_WINDOWS);
assertPresto(bd);
assertOpera(bd);
assertBrowserMajorVersion(bd, 9);
assertBrowserMinorVersion(bd, 64);
assertWindows(bd);
}
@Test
public void testOpera1010() {
VBrowserDetails bd = new VBrowserDetails(OPERA1010_WINDOWS);
assertPresto(bd);
assertOpera(bd);
assertBrowserMajorVersion(bd, 10);
assertBrowserMinorVersion(bd, 10);
assertWindows(bd);
}
@Test
public void testOpera1050() {
VBrowserDetails bd = new VBrowserDetails(OPERA1050_WINDOWS);
assertPresto(bd);
assertOpera(bd);
assertBrowserMajorVersion(bd, 10);
assertBrowserMinorVersion(bd, 50);
assertWindows(bd);
}
@Test
public void testIE11() {
VBrowserDetails bd = new VBrowserDetails(IE11_WINDOWS_7);
assertTrident(bd);
assertEngineVersion(bd, 7);
assertIE(bd);
assertBrowserMajorVersion(bd, 11);
assertBrowserMinorVersion(bd, 0);
assertWindows(bd);
}
@Test
public void testIE11Windows7CompatibilityViewIE7() {
VBrowserDetails bd = new VBrowserDetails(
IE11_WINDOWS_7_COMPATIBILITY_VIEW_IE7);
assertTrident(bd);
assertEngineVersion(bd, 7);
assertIE(bd);
assertBrowserMajorVersion(bd, 11);
assertBrowserMinorVersion(bd, 0);
assertWindows(bd);
}
@Test
public void testIE11Windows10CompatibilityViewIE7() {
VBrowserDetails bd = new VBrowserDetails(
IE11_WINDOWS_10_COMPATIBILITY_VIEW_IE7);
assertTrident(bd);
assertEngineVersion(bd, 7);
assertIE(bd);
assertBrowserMajorVersion(bd, 11);
assertBrowserMinorVersion(bd, 0);
assertWindows(bd);
}
@Test
public void testIE11InitialWindows10CompatibilityViewIE7() {
VBrowserDetails bd = new VBrowserDetails(
IE11_INITIAL_WINDOWS_10_COMPATIBILITY_VIEW_IE7);
assertTrident(bd);
assertEngineVersion(bd, 7);
assertIE(bd);
assertBrowserMajorVersion(bd, 11);
assertBrowserMinorVersion(bd, 0);
assertWindows(bd);
}
@Test
public void testIE11WindowsPhone81Update() {
VBrowserDetails bd = new VBrowserDetails(IE11_WINDOWS_PHONE_8_1_UPDATE);
assertTrident(bd);
assertEngineVersion(bd, 7);
assertIE(bd);
assertBrowserMajorVersion(bd, 11);
assertBrowserMinorVersion(bd, 0);
assertWindows(bd, true);
}
@Test
public void testEdgeWindows10() {
VBrowserDetails bd = new VBrowserDetails(EDGE_WINDOWS_10);
assertEdge(bd);
assertBrowserMajorVersion(bd, 12);
assertBrowserMinorVersion(bd, 10240);
assertWindows(bd, false);
}
@Test
public void testPhantomJs211() {
VBrowserDetails bd = new VBrowserDetails(PHANTOMJS_211_MAC);
assertPhantomJS(bd);
assertWebKit(bd);
assertBrowserMajorVersion(bd, 2);
assertBrowserMinorVersion(bd, 1);
assertMacOSX(bd);
}
@Test
public void checkFFsupportedVersions() {
VBrowserDetails details = new VBrowserDetails(FIREFOX_40B11_WIN);
Assert.assertTrue(details.isTooOldToFunctionProperly());
details = new VBrowserDetails(FIREFOX_SUPPORTED);
Assert.assertFalse(details.isTooOldToFunctionProperly());
}
/*
* Helper methods below
*/
private void assertEngineVersion(VBrowserDetails browserDetails,
float version) {
assertEquals(version, browserDetails.getBrowserEngineVersion(), 0.01d);
}
private void assertBrowserMajorVersion(VBrowserDetails browserDetails,
int version) {
assertEquals(version, browserDetails.getBrowserMajorVersion());
}
private void assertBrowserMinorVersion(VBrowserDetails browserDetails,
int version) {
assertEquals(version, browserDetails.getBrowserMinorVersion());
}
private void assertGecko(VBrowserDetails browserDetails) {
// Engine
assertTrue(browserDetails.isGecko());
assertFalse(browserDetails.isWebKit());
assertFalse(browserDetails.isPresto());
assertFalse(browserDetails.isTrident());
}
private void assertPresto(VBrowserDetails browserDetails) {
// Engine
assertFalse(browserDetails.isGecko());
assertFalse(browserDetails.isWebKit());
assertTrue(browserDetails.isPresto());
assertFalse(browserDetails.isTrident());
}
private void assertTrident(VBrowserDetails browserDetails) {
// Engine
assertFalse(browserDetails.isGecko());
assertFalse(browserDetails.isWebKit());
assertFalse(browserDetails.isPresto());
assertTrue(browserDetails.isTrident());
}
private void assertWebKit(VBrowserDetails browserDetails) {
// Engine
assertFalse(browserDetails.isGecko());
assertTrue(browserDetails.isWebKit());
assertFalse(browserDetails.isPresto());
assertFalse(browserDetails.isTrident());
}
private void assertPhantomJS(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
assertFalse(browserDetails.isEdge());
assertTrue(browserDetails.isPhantomJS());
}
private void assertFirefox(VBrowserDetails browserDetails) {
// Browser
assertTrue(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
assertFalse(browserDetails.isEdge());
assertFalse(browserDetails.isPhantomJS());
}
private void assertChrome(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertTrue(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
assertFalse(browserDetails.isEdge());
assertFalse(browserDetails.isPhantomJS());
}
private void assertIE(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertTrue(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
assertFalse(browserDetails.isEdge());
assertFalse(browserDetails.isPhantomJS());
}
private void assertOpera(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertTrue(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
assertFalse(browserDetails.isEdge());
assertFalse(browserDetails.isPhantomJS());
}
private void assertSafari(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertTrue(browserDetails.isSafari());
assertFalse(browserDetails.isEdge());
assertFalse(browserDetails.isPhantomJS());
}
private void assertEdge(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
assertTrue(browserDetails.isEdge());
assertFalse(browserDetails.isPhantomJS());
}
private void assertMacOSX(VBrowserDetails browserDetails) {
assertFalse(browserDetails.isLinux());
assertFalse(browserDetails.isWindows());
assertTrue(browserDetails.isMacOSX());
assertFalse(browserDetails.isAndroid());
}
private void assertAndroid(VBrowserDetails browserDetails, int majorVersion,
int minorVersion) {
assertFalse(browserDetails.isLinux());
assertFalse(browserDetails.isWindows());
assertFalse(browserDetails.isMacOSX());
assertFalse(browserDetails.isIOS());
assertTrue(browserDetails.isAndroid());
assertOSMajorVersion(browserDetails, majorVersion);
assertOSMinorVersion(browserDetails, minorVersion);
}
private void assertIOS(VBrowserDetails browserDetails, int majorVersion,
int minorVersion) {
assertFalse(browserDetails.isLinux());
assertFalse(browserDetails.isWindows());
assertFalse(browserDetails.isMacOSX());
assertTrue(browserDetails.isIOS());
assertFalse(browserDetails.isAndroid());
assertOSMajorVersion(browserDetails, majorVersion);
assertOSMinorVersion(browserDetails, minorVersion);
}
private void assertIPhone(VBrowserDetails browserDetails) {
assertTrue(browserDetails.isIPhone());
assertFalse(browserDetails.isIPad());
}
private void assertIPad(VBrowserDetails browserDetails) {
assertFalse(browserDetails.isIPhone());
assertTrue(browserDetails.isIPad());
}
private void assertWindows(VBrowserDetails browserDetails) {
assertWindows(browserDetails, false);
}
private void assertWindows(VBrowserDetails browserDetails,
boolean isWindowsPhone) {
assertFalse(browserDetails.isLinux());
assertTrue(browserDetails.isWindows());
assertFalse(browserDetails.isMacOSX());
assertFalse(browserDetails.isIOS());
assertFalse(browserDetails.isAndroid());
Assert.assertEquals(isWindowsPhone, browserDetails.isWindowsPhone());
}
private void assertLinux(VBrowserDetails browserDetails) {
assertTrue(browserDetails.isLinux());
assertFalse(browserDetails.isWindows());
assertFalse(browserDetails.isMacOSX());
assertFalse(browserDetails.isIOS());
assertFalse(browserDetails.isAndroid());
}
}