]> source.dussan.org Git - vaadin-framework.git/commitdiff
WebBrowser.isWindowsPhone() is added (#14425).
authorDenis Anisimov <denis@vaadin.com>
Sun, 7 Sep 2014 14:39:56 +0000 (17:39 +0300)
committerVaadin Code Review <review@vaadin.com>
Fri, 12 Sep 2014 17:11:45 +0000 (17:11 +0000)
Change-Id: Ia279c4da78ca04e0d3727b605e2ce68b99e8cd65

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

index e38054e3e4e491ce5f02a856c1a11fcfe27a835d..dd892b19ec0678f01d9b96a290dc5c82fe6ebf66 100644 (file)
@@ -2,6 +2,8 @@ package com.vaadin.client;
 
 import junit.framework.TestCase;
 
+import org.junit.Assert;
+
 import com.vaadin.shared.VBrowserDetails;
 
 public class TestVBrowserDetailsUserAgentParser extends TestCase {
@@ -404,7 +406,7 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
         assertIE(bd);
         assertBrowserMajorVersion(bd, 11);
         assertBrowserMinorVersion(bd, 0);
-        assertWindows(bd);
+        assertWindows(bd, true);
     }
 
     /*
@@ -538,11 +540,17 @@ public class TestVBrowserDetailsUserAgentParser extends TestCase {
     }
 
     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) {
index af20bcbb8f19a5890a58c5f542d0048a8a4af229..5ec4e6b19c59601cbe62faa92f3c14a22ddfa81e 100644 (file)
@@ -258,6 +258,17 @@ public class WebBrowser implements Serializable {
         return browserDetails.isWindows();
     }
 
+    /**
+     * Tests whether the user is using Windows Phone.
+     * 
+     * @return true if the user is using Windows Phone, false if the user is not
+     *         using Windows Phone or if no information on the browser is
+     *         present
+     */
+    public boolean isWindowsPhone() {
+        return browserDetails.isWindowsPhone();
+    }
+
     /**
      * Tests if the browser is run on Android.
      * 
index 81a39cdedc7db90f3393bac703dbd4a23a844b6c..3c89bdb6bbf0b165870429d2be3e7c6948eebb14 100644 (file)
@@ -42,6 +42,8 @@ public class VBrowserDetails implements Serializable {
     private boolean isOpera = false;
     private boolean isIE = false;
 
+    private boolean isWindowsPhone;
+
     private OperatingSystem os = OperatingSystem.UNKNOWN;
 
     public enum OperatingSystem {
@@ -162,6 +164,7 @@ public class VBrowserDetails implements Serializable {
         // Operating system
         if (userAgent.contains("windows ")) {
             os = OperatingSystem.WINDOWS;
+            isWindowsPhone = userAgent.contains("windows phone");
         } else if (userAgent.contains("linux")) {
             if (userAgent.contains("android")) {
                 os = OperatingSystem.ANDROID;
@@ -424,6 +427,15 @@ public class VBrowserDetails implements Serializable {
         return os == OperatingSystem.WINDOWS;
     }
 
+    /**
+     * Tests if the browser is run on Windows Phone.
+     * 
+     * @return true if run on Windows Phone, false otherwise
+     */
+    public boolean isWindowsPhone() {
+        return isWindowsPhone;
+    }
+
     /**
      * Tests if the browser is run on Mac OSX.
      *