Browse Source

Test case and fix for #3931 - Provide methods for browser detection in WebBrowser


svn changeset:11911/svn branch:6.3
tags/6.7.0.beta1
Artur Signell 14 years ago
parent
commit
0c943629db

+ 64
- 97
src/com/vaadin/terminal/gwt/client/BrowserInfo.java View File

@@ -37,54 +37,30 @@ public class BrowserInfo {
return instance;
}

private boolean isGecko;
private boolean isAppleWebKit;
private boolean isSafari;
private boolean isOpera;
private boolean isIE;
private float version = -1;
private VBrowserDetails browserDetails;

private BrowserInfo() {
try {
String ua = getBrowserString().toLowerCase();
// browser engine name
isGecko = ua.indexOf("gecko") != -1 && ua.indexOf("webkit") == -1;
isAppleWebKit = ua.indexOf("applewebkit") != -1;

// browser name
isSafari = ua.indexOf("safari") != -1;
isOpera = ua.indexOf("opera") != -1;
isIE = ua.indexOf("msie") != -1 && !isOpera
&& (ua.indexOf("webtv") == -1);

if (isGecko) {
String tmp = ua.substring(ua.indexOf("rv:") + 3);
tmp = tmp.replaceFirst("(\\.[0-9]+).+", "$1");
version = Float.parseFloat(tmp);
browserDetails = new VBrowserDetails(getBrowserString());
if (browserDetails.isIE()
&& browserDetails.getBrowserMajorVersion() == 8
&& isIE8InIE7CompatibilityMode()) {
browserDetails.setIE8InCompatibilityMode();
}
if (isAppleWebKit) {
String tmp = ua.substring(ua.indexOf("webkit/") + 7);
tmp = tmp.replaceFirst("([0-9]+)[^0-9].+", "$1");
version = Float.parseFloat(tmp);

}

if (isIE) {
String ieVersionString = ua.substring(ua.indexOf("msie ") + 5);
ieVersionString = ieVersionString.substring(0, ieVersionString
.indexOf(";"));
version = Float.parseFloat(ieVersionString);

if (version == 8 && isIE8InIE7CompatibilityMode()) {
version = 7;
}

}
} catch (Exception e) {
ClientExceptionHandler.displayError(e);
}
}

private native boolean isIE8InIE7CompatibilityMode()
/*-{
var mode = $wnd.document.documentMode;
if (!mode)
return false;
return (mode == 7);
}-*/;

/**
* Returns a string representing the browser in use, for use in CSS
* classnames. The classnames will be space separated abbrevitaions,
@@ -107,36 +83,24 @@ public class BrowserInfo {
String prefix = "v-";

if (cssClass == null) {
String bs = getBrowserString().toLowerCase();
String b = "";
String v = "";
if (bs.indexOf(" firefox/") != -1) {
if (browserDetails.isFirefox()) {
b = "ff";
int i = bs.indexOf(" firefox/") + 9;
v = b + bs.substring(i, i + 1);
} else if (bs.indexOf(" chrome/") != -1) {
v = "b" + browserDetails.getBrowserMajorVersion();
} else if (browserDetails.isChrome()) {
// TODO update when Chrome is more stable
b = "sa";
v = "ch";
} else if (bs.indexOf(" safari") != -1) {
} else if (browserDetails.isSafari()) {
b = "sa";
int i = bs.indexOf(" version/") + 9;
v = b + bs.substring(i, i + 1);
} else if (bs.indexOf(" msie ") != -1) {
v = "b" + browserDetails.getBrowserMajorVersion();
} else if (browserDetails.isIE()) {
b = "ie";
int i = bs.indexOf(" msie ") + 6;
String ieVersion = bs.substring(i, i + 1);

if (ieVersion != null && ieVersion.equals("8")
&& isIE8InIE7CompatibilityMode()) {
ieVersion = "7";
}

v = b + ieVersion;
} else if (bs.indexOf("opera/") != -1) {
v = b + browserDetails.getBrowserMajorVersion();
} else if (browserDetails.isOpera()) {
b = "op";
int i = bs.indexOf("opera/") + 6;
v = b + bs.substring(i, i + 3).replace(".", "");
v = b + browserDetails.getBrowserMajorVersion();
}
cssClass = prefix + b + " " + prefix + v;
}
@@ -144,64 +108,84 @@ public class BrowserInfo {
return cssClass;
}

private native boolean isIE8InIE7CompatibilityMode()
/*-{
var mode = $wnd.document.documentMode;
if (!mode)
return false;
return (mode == 7);
}-*/;

public boolean isIE() {
return isIE;
return browserDetails.isIE();
}

public boolean isSafari() {
return isSafari;
return browserDetails.isSafari();
}

public boolean isIE6() {
return isIE && version == 6;
return isIE() && browserDetails.getBrowserMajorVersion() == 6;
}

public boolean isIE7() {
return isIE && version == 7;
return isIE() && browserDetails.getBrowserMajorVersion() == 7;
}

public boolean isIE8() {
return isIE && version == 8;
return isIE() && browserDetails.getBrowserMajorVersion() == 8;
}

public boolean isGecko() {
return isGecko;
return browserDetails.isGecko();
}

public boolean isWebkit() {
return isAppleWebKit;
return browserDetails.isWebKit();
}

public boolean isFF2() {
return isGecko && version == 1.8;
// FIXME: Should use browserVersion
return browserDetails.isFirefox()
&& browserDetails.getBrowserEngineVersion() == 1.8;
}

public boolean isFF3() {
return isGecko && version == 1.9;
// FIXME: Should use browserVersion
return browserDetails.isFirefox()
&& browserDetails.getBrowserEngineVersion() == 1.9;
}

/**
* Returns the Gecko version if the browser is Gecko based. The Gecko
* version for Firefox 2 is 1.8 and 1.9 for Firefox 3.
*
* @return The Gecko version or -1 if the browser is not Gecko based
*/
public float getGeckoVersion() {
return (isGecko ? version : -1);
if (!browserDetails.isGecko()) {
return -1;
}

return browserDetails.getBrowserEngineVersion();
}

/**
* Returns the WebKit version if the browser is WebKit based. The WebKit
* version returned is the major version e.g., 523.
*
* @return The WebKit version or -1 if the browser is not WebKit based
*/
public float getWebkitVersion() {
return (isAppleWebKit ? version : -1);
if (!browserDetails.isWebKit()) {
return -1;
}

return browserDetails.getBrowserEngineVersion();
}

public float getIEVersion() {
return (isIE ? version : -1);
if (!browserDetails.isIE()) {
return -1;
}

return browserDetails.getBrowserMajorVersion();
}

public boolean isOpera() {
return isOpera;
return browserDetails.isOpera();
}

public native static String getBrowserString()
@@ -209,23 +193,6 @@ public class BrowserInfo {
return $wnd.navigator.userAgent;
}-*/;

public static void test() {
Console c = ApplicationConnection.getConsole();

c.log("getBrowserString() " + getBrowserString());
c.log("isIE() " + get().isIE());
c.log("isIE6() " + get().isIE6());
c.log("isIE7() " + get().isIE7());
c.log("isIE8() " + get().isIE8());
c.log("isFF2() " + get().isFF2());
c.log("isSafari() " + get().isSafari());
c.log("getGeckoVersion() " + get().getGeckoVersion());
c.log("getWebkitVersion() " + get().getWebkitVersion());
c.log("getIEVersion() " + get().getIEVersion());
c.log("isIE() " + get().isIE());
c.log("isIE() " + get().isIE());
}

public native int getScreenWidth()
/*-{
return $wnd.screen.width;

+ 202
- 0
src/com/vaadin/terminal/gwt/client/VBrowserDetails.java View File

@@ -0,0 +1,202 @@
package com.vaadin.terminal.gwt.client;
/**
* Class that parses the user agent string from the browser and provides
* information about the browser.
*
* @author IT Mill Ltd.
* @version @VERSION@
* @since 6.3
*/
public class VBrowserDetails {
private boolean isGecko;
private boolean isWebKit;
private boolean isPresto;
private boolean isSafari;
private boolean isChrome;
private boolean isFirefox;
private boolean isOpera;
private boolean isIE;
private float browserEngineVersion = -1;
private int browserMajorVersion = -1;
/**
* Create an instance based on the given user agent.
*
* @param userAgent
* User agent as provided by the browser.
*/
public VBrowserDetails(String userAgent) {
userAgent = userAgent.toLowerCase();
// browser engine name
isGecko = userAgent.indexOf("gecko") != -1
&& userAgent.indexOf("webkit") == -1;
isWebKit = userAgent.indexOf("applewebkit") != -1;
isPresto = userAgent.indexOf(" presto/") != -1;
// browser name
isChrome = userAgent.indexOf(" chrome/") != -1;
isSafari = !isChrome && userAgent.indexOf("safari") != -1;
isOpera = userAgent.indexOf("opera") != -1;
isIE = userAgent.indexOf("msie") != -1 && !isOpera
&& (userAgent.indexOf("webtv") == -1);
isFirefox = userAgent.indexOf(" firefox/") != -1;
// Rendering engine version
if (isGecko) {
String tmp = userAgent.substring(userAgent.indexOf("rv:") + 3);
tmp = tmp.replaceFirst("(\\.[0-9]+).+", "$1");
browserEngineVersion = Float.parseFloat(tmp);
} else if (isWebKit) {
String tmp = userAgent.substring(userAgent.indexOf("webkit/") + 7);
tmp = tmp.replaceFirst("([0-9]+)[^0-9].+", "$1");
browserEngineVersion = Float.parseFloat(tmp);
}
// Browser version
if (isIE) {
String ieVersionString = userAgent.substring(userAgent
.indexOf("msie ") + 5);
ieVersionString = ieVersionString.substring(0, ieVersionString
.indexOf(";"));
// FIXME parseInt
browserMajorVersion = (int) Float.parseFloat(ieVersionString);
} else if (isFirefox) {
int i = userAgent.indexOf(" firefox/") + 9;
browserMajorVersion = Integer.parseInt(userAgent
.substring(i, i + 1));
} else if (isChrome) {
int i = userAgent.indexOf(" chrome/") + 8;
browserMajorVersion = Integer.parseInt(userAgent
.substring(i, i + 1));
} else if (isSafari) {
int i = userAgent.indexOf(" version/") + 9;
browserMajorVersion = Integer.parseInt(userAgent
.substring(i, i + 1));
} else if (isOpera) {
int i = userAgent.indexOf(" version/");
if (i != -1) {
// Version present in Opera 10 and newer
i += 9; // " version/".length
} else {
i = userAgent.indexOf("opera/") + 6;
}
browserMajorVersion = Integer.parseInt(userAgent
.substring(i, i + 2).replace(".", ""));
}
}
/**
* Tests if the browser is Firefox.
*
* @return true if it is Firefox, false otherwise
*/
public boolean isFirefox() {
return isFirefox;
}
/**
* Tests if the browser is using the Gecko engine
*
* @return true if it is Gecko, false otherwise
*/
public boolean isGecko() {
return isGecko;
}
/**
* Tests if the browser is using the WebKit engine
*
* @return true if it is WebKit, false otherwise
*/
public boolean isWebKit() {
return isWebKit;
}
/**
* Tests if the browser is using the Presto engine
*
* @return true if it is Presto, false otherwise
*/
public boolean isPresto() {
return isPresto;
}
/**
* Tests if the browser is Safari.
*
* @return true if it is Safari, false otherwise
*/
public boolean isSafari() {
return isSafari;
}
/**
* Tests if the browser is Chrome.
*
* @return true if it is Chrome, false otherwise
*/
public boolean isChrome() {
return isChrome;
}
/**
* Tests if the browser is Opera.
*
* @return true if it is Opera, false otherwise
*/
public boolean isOpera() {
return isOpera;
}
/**
* Tests if the browser is Internet Explorer.
*
* @return true if it is Internet Explorer, false otherwise
*/
public boolean isIE() {
return isIE;
}
/**
* Returns the version of the browser engine. For WebKit this is an integer
* e.g., 532.0. For gecko it is a float e.g., 1.8 or 1.9.
*
* @return The version of the browser engine
*/
public float getBrowserEngineVersion() {
return browserEngineVersion;
}
/**
* Returns the browser major version e.g., 3 for Firefox 3.5, 4 for Chrome
* 4, 8 for Internet Explorer 8.
*
* <pre>
* Note that Internet Explorer 8 in compatibility mode will return 7.
* </pre>
*
* @return The major version of the browser.
*/
public final int getBrowserMajorVersion() {
return browserMajorVersion;
}
/**
* Marks that IE8 is used in compatibility mode. This forces the browser
* version to 7 even if it otherwise was detected as 8.
*
*/
public void setIE8InCompatibilityMode() {
if (isIE && browserMajorVersion == 8) {
browserMajorVersion = 7;
}
}
}

+ 124
- 9
src/com/vaadin/terminal/gwt/server/WebBrowser.java View File

@@ -7,8 +7,16 @@ package com.vaadin.terminal.gwt.server;
import java.util.Locale;

import com.vaadin.terminal.Terminal;
import com.vaadin.terminal.gwt.client.VBrowserDetails;

@SuppressWarnings("serial")
/**
* Class that provides information about the web browser the user is using.
* Provides information such as browser name and version, screen resolution and
* IP address.
*
* @author IT Mill Ltd.
* @version @VERSION@
*/
public class WebBrowser implements Terminal {

private int screenHeight = 0;
@@ -18,26 +26,30 @@ public class WebBrowser implements Terminal {
private String address;
private boolean secureConnection;

private VBrowserDetails browserDetails;

/**
* There is no default-theme for this terminal type.
*
* @return Allways returns null.
* @return Always returns null.
*/
public String getDefaultTheme() {
return null;
}

/**
* Get the height of the users display in pixels.
/*
* (non-Javadoc)
*
* @see com.vaadin.terminal.Terminal#getScreenHeight()
*/
public int getScreenHeight() {
return screenHeight;
}

/**
* Get the width of the users display in pixels.
/*
* (non-Javadoc)
*
* @see com.vaadin.terminal.Terminal#getScreenWidth()
*/
public int getScreenWidth() {
return screenWidth;
@@ -46,7 +58,7 @@ public class WebBrowser implements Terminal {
/**
* Get the browser user-agent string.
*
* @return
* @return The raw browser userAgent string
*/
public String getBrowserApplication() {
return browserApplication;
@@ -54,7 +66,21 @@ public class WebBrowser implements Terminal {

/**
* For internal use by AbstractApplicationServlet/AbstractApplicationPortlet
* only.
* only. Updates all properties in the class according to the given
* information.
*
* @param locale
* The browser primary locale
* @param address
* The browser ip address
* @param secureConnection
* true if using an https connection
* @param agent
* Raw userAgent string from the browser
* @param sw
* Screen width
* @param sh
* Screen height
*/
void updateBrowserProperties(Locale locale, String address,
boolean secureConnection, String agent, String sw, String sh) {
@@ -63,6 +89,7 @@ public class WebBrowser implements Terminal {
this.secureConnection = secureConnection;
if (agent != null) {
browserApplication = agent;
browserDetails = new VBrowserDetails(agent);
}

if (sw != null) {
@@ -76,7 +103,7 @@ public class WebBrowser implements Terminal {
}

/**
* Get the IP-address of the web browser. If the application is running
* Gets the IP-address of the web browser. If the application is running
* inside a portlet, this method will return null.
*
* @return IP-address in 1.12.123.123 -format
@@ -95,4 +122,92 @@ public class WebBrowser implements Terminal {
return secureConnection;
}

/**
* Tests whether the user is using Firefox.
*
* @return true if the user is using Firefox, false if the user is not using
* Firefox or if no information on the browser is present
*/
public boolean isFirefox() {
if (browserDetails == null) {
return false;
}

return browserDetails.isFirefox();
}

/**
* Tests whether the user is using Internet Explorer.
*
* @return true if the user is using Internet Explorer, false if the user is
* not using Internet Explorer or if no information on the browser
* is present
*/
public boolean isIE() {
if (browserDetails == null) {
return false;
}

return browserDetails.isIE();
}

/**
* Tests whether the user is using Safari.
*
* @return true if the user is using Safari, false if the user is not using
* Safari or if no information on the browser is present
*/
public boolean isSafari() {
if (browserDetails == null) {
return false;
}

return browserDetails.isSafari();
}

/**
* Tests whether the user is using Opera.
*
* @return true if the user is using Opera, false if the user is not using
* Opera or if no information on the browser is present
*/
public boolean isOpera() {
if (browserDetails == null) {
return false;
}

return browserDetails.isOpera();
}

/**
* Tests whether the user is using Chrome.
*
* @return true if the user is using Chrome, false if the user is not using
* Chrome or if no information on the browser is present
*/
public boolean isChrome() {
if (browserDetails == null) {
return false;
}

return browserDetails.isChrome();
}

/**
* Gets the major version of the browser the user is using.
*
* <p>
* Note that Internet Explorer in IE7 compatibility mode might return 8 in
* some cases even though it should return 7.
* </p>
*
* @return The major version of the browser or -1 if not known.
*/
public int getBrowserMajorVersion() {
if (browserDetails == null) {
return -1;
}

return browserDetails.getBrowserMajorVersion();
}
}

+ 217
- 0
tests/src/com/vaadin/tests/server/BrowserUserAgentParser.java View File

@@ -0,0 +1,217 @@
package com.vaadin.tests.server;
import junit.framework.TestCase;
import com.vaadin.terminal.gwt.client.VBrowserDetails;
public class BrowserUserAgentParser extends TestCase {
private static final String FIREFOX30 = "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 FIREFOX35 = "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 = "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 IE6 = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
private static final String IE7 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
private static final String IE8 = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)";
private static final String IE8_IN_IE7_MODE = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)";
// "Version/" was added in 10.00
private static final String OPERA960 = "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1";
private static final String OPERA1010 = "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10";
private static final String OPERA1050 = "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.5.22 Version/10.50";
private static final String CHROME3 = "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 = "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 = "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 = "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";
public void testSafari3() {
VBrowserDetails bd = new VBrowserDetails(SAFARI3);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 3);
assertEngineVersion(bd, 525.0f);
}
public void testSafari4() {
VBrowserDetails bd = new VBrowserDetails(SAFARI4);
assertWebKit(bd);
assertSafari(bd);
assertBrowserMajorVersion(bd, 4);
assertEngineVersion(bd, 531f);
}
public void testChrome3() {
VBrowserDetails bd = new VBrowserDetails(CHROME3);
assertWebKit(bd);
assertChrome(bd);
assertBrowserMajorVersion(bd, 3);
assertEngineVersion(bd, 532.0f);
}
public void testChrome4() {
VBrowserDetails bd = new VBrowserDetails(CHROME4);
assertWebKit(bd);
assertChrome(bd);
assertBrowserMajorVersion(bd, 4);
assertEngineVersion(bd, 532f);
}
public void testFirefox3() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX30);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertEngineVersion(bd, 1.9f);
}
public void testFirefox35() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX35);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertEngineVersion(bd, 1.9f);
}
public void testFirefox36() {
VBrowserDetails bd = new VBrowserDetails(FIREFOX36);
assertGecko(bd);
assertFirefox(bd);
assertBrowserMajorVersion(bd, 3);
assertEngineVersion(bd, 1.9f);
}
public void testOpera960() {
VBrowserDetails bd = new VBrowserDetails(OPERA960);
assertPresto(bd);
assertOpera(bd);
assertBrowserMajorVersion(bd, 9);
}
public void testOpera1010() {
VBrowserDetails bd = new VBrowserDetails(OPERA1010);
assertPresto(bd);
assertOpera(bd);
assertBrowserMajorVersion(bd, 10);
}
public void testOpera1050() {
VBrowserDetails bd = new VBrowserDetails(OPERA1050);
assertPresto(bd);
assertOpera(bd);
assertBrowserMajorVersion(bd, 10);
}
public void testIE6() {
VBrowserDetails bd = new VBrowserDetails(IE6);
// assertTrident(bd);
assertIE(bd);
assertBrowserMajorVersion(bd, 6);
}
public void testIE7() {
VBrowserDetails bd = new VBrowserDetails(IE7);
// assertTrident(bd);
assertIE(bd);
assertBrowserMajorVersion(bd, 7);
}
public void testIE8() {
VBrowserDetails bd = new VBrowserDetails(IE8);
// assertTrident(bd);
assertIE(bd);
assertBrowserMajorVersion(bd, 8);
}
public void testIE8CompatibilityMode() {
VBrowserDetails bd = new VBrowserDetails(IE8_IN_IE7_MODE);
bd.setIE8InCompatibilityMode();
// assertTrident(bd);
assertIE(bd);
assertBrowserMajorVersion(bd, 7);
}
/*
* Helper methods below
*/
private void assertEngineVersion(VBrowserDetails browserDetails,
float version) {
assertEquals(version, browserDetails.getBrowserEngineVersion());
}
private void assertBrowserMajorVersion(VBrowserDetails browserDetails,
int version) {
assertEquals(version, browserDetails.getBrowserMajorVersion());
}
private void assertGecko(VBrowserDetails browserDetails) {
// Engine
assertTrue(browserDetails.isGecko());
assertFalse(browserDetails.isWebKit());
assertFalse(browserDetails.isPresto());
}
private void assertPresto(VBrowserDetails browserDetails) {
// Engine
assertFalse(browserDetails.isGecko());
assertFalse(browserDetails.isWebKit());
assertTrue(browserDetails.isPresto());
}
private void assertWebKit(VBrowserDetails browserDetails) {
// Engine
assertFalse(browserDetails.isGecko());
assertTrue(browserDetails.isWebKit());
assertFalse(browserDetails.isPresto());
}
private void assertFirefox(VBrowserDetails browserDetails) {
// Browser
assertTrue(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
}
private void assertChrome(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertTrue(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
}
private void assertIE(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertTrue(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
}
private void assertOpera(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertTrue(browserDetails.isOpera());
assertFalse(browserDetails.isSafari());
}
private void assertSafari(VBrowserDetails browserDetails) {
// Browser
assertFalse(browserDetails.isFirefox());
assertFalse(browserDetails.isChrome());
assertFalse(browserDetails.isIE());
assertFalse(browserDetails.isOpera());
assertTrue(browserDetails.isSafari());
}
}

Loading…
Cancel
Save