]> source.dussan.org Git - vaadin-framework.git/commitdiff
VBrowserDetails fails to detect Android when using Firefox (#15183)
authorSergey Budkin <sergey@vaadin.com>
Fri, 7 Nov 2014 13:22:24 +0000 (15:22 +0200)
committerSauli Tähkäpää <sauli@vaadin.com>
Tue, 16 Dec 2014 20:59:02 +0000 (22:59 +0200)
Changed detection logic.

Change-Id: I9cb8e94fe6bb5be587fa73ed6a71d2c7c1d91733

client/tests/src/com/vaadin/client/TestVBrowserDetailsUserAgentParser.java
shared/src/com/vaadin/shared/VBrowserDetails.java

index 6cd06301377083e79f10f1c39edc7485cfbaa98c..cb70fc7a396ed6ae975cd507d44451bf950621fc 100644 (file)
@@ -10,6 +10,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
 
     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";
@@ -209,6 +210,15 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         assertLinux(bd);
     }
 
+    public void testFirefox33Android() {
+        VBrowserDetails bd = new VBrowserDetails(FIREFOX33_ANDROID);
+        assertGecko(bd);
+        assertFirefox(bd);
+        assertBrowserMajorVersion(bd, 33);
+        assertBrowserMinorVersion(bd, 0);
+        assertAndroid(bd, -1, -1);
+    }
+
     public void testFirefox35() {
         VBrowserDetails bd = new VBrowserDetails(FIREFOX35_WINDOWS);
         assertGecko(bd);
index fa21bddc96f150ad41946913b3888e2308353a46..6e45d33e168ceef8eee1ad8d6623a134890c5858 100644 (file)
@@ -167,14 +167,11 @@ public class VBrowserDetails implements Serializable {
         if (userAgent.contains("windows ")) {
             os = OperatingSystem.WINDOWS;
             isWindowsPhone = userAgent.contains("windows phone");
+        } else if (userAgent.contains("android")) {
+            os = OperatingSystem.ANDROID;
+            parseAndroidVersion(userAgent);
         } else if (userAgent.contains("linux")) {
-            if (userAgent.contains("android")) {
-                os = OperatingSystem.ANDROID;
-                parseAndroidVersion(userAgent);
-            } else {
-                os = OperatingSystem.LINUX;
-
-            }
+            os = OperatingSystem.LINUX;
         } else if (userAgent.contains("macintosh")
                 || userAgent.contains("mac osx")
                 || userAgent.contains("mac os x")) {