]> source.dussan.org Git - vaadin-framework.git/commitdiff
Update VBrowserDetails to handle the new IE11 UA on WP 8.1 Update (#14376)
authorJuho Nurminen <juho@vaadin.com>
Thu, 14 Aug 2014 14:54:24 +0000 (17:54 +0300)
committerVaadin Code Review <review@vaadin.com>
Fri, 15 Aug 2014 09:04:42 +0000 (09:04 +0000)
Change-Id: I7fdd091a3b2994270e9928eb4f118ab5ca59ef30

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

index 5b428574e2d9a46ccae700003a245fe5009adae6..e38054e3e4e491ce5f02a856c1a11fcfe27a835d 100644 (file)
@@ -28,6 +28,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
 
     private static final String IE10_WINDOWS_8 = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
     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_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";
@@ -396,6 +397,16 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         assertWindows(bd);
     }
 
+    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);
+    }
+
     /*
      * Helper methods below
      */
index 3680e4168ef0a97eab314c7a68bae07ca1471dc1..81a39cdedc7db90f3393bac703dbd4a23a844b6c 100644 (file)
@@ -68,19 +68,19 @@ public class VBrowserDetails implements Serializable {
         isGecko = userAgent.indexOf("gecko") != -1
                 && userAgent.indexOf("webkit") == -1
                 && userAgent.indexOf("trident/") == -1;
-        isWebKit = userAgent.indexOf("applewebkit") != -1;
         isPresto = userAgent.indexOf(" presto/") != -1;
         isTrident = userAgent.indexOf("trident/") != -1;
+        isWebKit = !isTrident && userAgent.indexOf("applewebkit") != -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);
         // IE 11 no longer contains MSIE in the user agent
         isIE = isIE || isTrident;
 
+        isSafari = !isChrome && !isIE && userAgent.indexOf("safari") != -1;
         isFirefox = userAgent.indexOf(" firefox/") != -1;
 
         // chromeframe