package com.vaadin.tests;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openqa.selenium.remote.DesiredCapabilities;
+
import com.vaadin.server.WebBrowser;
import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.ui.Label;
public class VerifyBrowserVersion extends TestBase {
+ public static class BrowserVersionTest extends MultiBrowserTest {
+
+ private Map<DesiredCapabilities, String> expectedUserAgent = new HashMap<DesiredCapabilities, String>();
+
+ {
+ expectedUserAgent
+ .put(BrowserUtil.firefox(24),
+ "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0");
+ expectedUserAgent
+ .put(BrowserUtil.ie(8),
+ "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");
+ expectedUserAgent
+ .put(BrowserUtil.ie(9),
+ "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
+ expectedUserAgent
+ .put(BrowserUtil.ie(10),
+ "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)");
+ expectedUserAgent
+ .put(BrowserUtil.chrome(29),
+ "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36");
+ expectedUserAgent
+ .put(BrowserUtil.opera(12),
+ "Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.15");
+
+ }
+
+ @Test
+ public void verifyUserAgent() {
+ Assert.assertEquals(
+ expectedUserAgent.get(getDesiredCapabilities()),
+ vaadinElementById("userAgent").getText());
+ Assert.assertEquals("Touch device? No",
+ vaadinElementById("touchDevice").getText());
+ }
+ }
+
@Override
protected void setup() {
WebBrowser browser = getBrowser();
- addComponent(new Label(browser.getBrowserApplication()));
- addComponent(new Label("Touch device? "
- + (browser.isTouchDevice() ? "YES" : "No")));
+ Label userAgent = new Label(browser.getBrowserApplication());
+ userAgent.setId("userAgent");
+ addComponent(userAgent);
+ Label touchDevice = new Label("Touch device? "
+ + (browser.isTouchDevice() ? "YES" : "No"));
+ touchDevice.setId("touchDevice");
+ addComponent(touchDevice);
}
@Override