You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2010/03/29 17:57:45 UTC

svn commit: r928813 - in /myfaces/tobago/trunk/core/src: main/java/org/apache/myfaces/tobago/context/UserAgent.java test/java/org/apache/myfaces/tobago/context/UserAgentUnitTest.java

Author: bommel
Date: Mon Mar 29 15:57:45 2010
New Revision: 928813

URL: http://svn.apache.org/viewvc?rev=928813&view=rev
Log:
(TOBAGO-866) Add capabilities and update browsers in UserAgent class

Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/UserAgent.java
    myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/context/UserAgentUnitTest.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/UserAgent.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/UserAgent.java?rev=928813&r1=928812&r2=928813&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/UserAgent.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/UserAgent.java Mon Mar 29 15:57:45 2010
@@ -97,7 +97,13 @@ public class UserAgent implements Serial
 
   public static final UserAgent GECKO = new UserAgent("gecko", null);
 
-  public static final UserAgent WEBKIT = new UserAgent("webkit", null);
+  public static final UserAgent CHROME = new UserAgent("chrome", null);
+
+  public static final UserAgent CHROME_5_0 = new UserAgent("chrome", "5.0", Capability.PLACEHOLDER);
+
+  public static final UserAgent SAFARI = new UserAgent("safari", null);
+
+  public static final UserAgent SAFARI_4_0 = new UserAgent("safari", "4.0", Capability.PLACEHOLDER);
 
   private String name;
 
@@ -147,62 +153,44 @@ public class UserAgent implements Serial
       return DEFAULT;
     }
 
-    // remove .replace('/', ' ')
-    header = header.toLowerCase(Locale.ENGLISH).replace('/', ' ');
-    if (header.contains("opera")) {
-      if (header.contains("opera 5.0")) {
+    if (header.contains("Opera")) {
+      if (header.contains("Opera/5.0")) {
         return OPERA_5_0;
-      } else if (header.contains("opera 6.0")) {
+      } else if (header.contains("Opera/6.0")) {
         return OPERA_6_0;
-      } else if (header.contains("opera 7.11")) {
+      } else if (header.contains("Opera/7.11")) {
         return OPERA_7_11;
-      } else if (header.contains("presto")) {
+      } else if (header.contains("Presto")) {
         return OPERA_PRESTO;
       } else {
         return OPERA;
       }
-    } else if (header.indexOf("chrome") > -1) {
-      /*if (header.indexOf("chrome 5.0") > -1) {
-        return WEBKIT_5_0;
-      } else {*/
-        return WEBKIT;
-      //}
-    } else if (header.contains("msie")) {
-      if (header.contains("msie 5.0")) {
-        if (header.contains("mac")) {
-          return MSIE_5_0_MAC;
-        } else {
-          return MSIE_5_0;
-        }
-      } else if (header.contains("msie 5.5")) {
+    } else if (header.contains("AppleWebKit")) {
+      if (header.contains("Chrome/5.0")) {
+        return CHROME_5_0;
+      } else if (header.contains("Chrome")) {
+        return CHROME;
+      } else if (header.contains("Version/4.")) {
+        return SAFARI_4_0;
+      } else {
+        return SAFARI;
+      }
+    } else if (header.contains("MSIE")) {
+      if (header.contains("MSIE 5.0")) {
+        return MSIE_5_0;
+      } else if (header.contains("MSIE 5.5")) {
         return MSIE_5_5;
-      } else if (header.contains("msie 6.0")) {
-        if (header.contains("mac")) {
-          return MSIE_6_0_MAC;
-        } else {
-          return MSIE_6_0;
-        }
-      } else if (header.contains("msie 7.0")) {
+      } else if (header.contains("MSIE 6.0")) {
+        return MSIE_6_0;
+      } else if (header.contains("MSIE 7.0")) {
         return MSIE_7_0;
-      } else if (header.contains("msie 8.0")) {
+      } else if (header.contains("MSIE 8.0")) {
         return MSIE_8_0;
       } else {
         return MSIE;
       }
-    } else if (header.contains("mozilla")) {
-      if (header.contains("mozilla 4.7")) {
-        return MOZILLA_4_7;
-      } else if (header.contains("mozilla 5.0")) {
-        if (header.contains("rv:1.6")) {
-          return MOZILLA_5_0_R1_6;
-        } else if (header.contains("gecko")) {
-          return GECKO;
-        } else {
-          return MOZILLA_5_0;
-        }
-      } else {
-        return MOZILLA;
-      }
+    } else if (header.contains("Gecko")) {
+       return GECKO;
     }
 
     return DEFAULT;

Modified: myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/context/UserAgentUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/context/UserAgentUnitTest.java?rev=928813&r1=928812&r2=928813&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/context/UserAgentUnitTest.java (original)
+++ myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/context/UserAgentUnitTest.java Mon Mar 29 15:57:45 2010
@@ -22,17 +22,13 @@ import org.junit.Test;
 
 public class UserAgentUnitTest {
 
-  private static final String SAFARI_4_MACOSX
-      = "User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-de) AppleWebKit/531.22.7 (KHTML, like Gecko) " 
-      + "Version/4.0.5 Safari/531.22.7";
   private static final String IE_8_WINDOWS_XP
-      = "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727;"
+      = "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)";
   private static final String FIREFOX_3_6_UBUNTU_10_4
-      = "User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100308 Ubuntu/10.04 (lucid)"
-      + " Firefox/3.6";
+      = "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100308 Ubuntu/10.04 (lucid) Firefox/3.6";
   private static final String OPERA_10_10_MACOSX
-      = "User-Agent: Opera/9.80 (Macintosh; Intel Mac OS X; U; de) Presto/2.2.15 Version/10.10";
+      = "Opera/9.80 (Macintosh; Intel Mac OS X; U; de) Presto/2.2.15 Version/10.10";
 
   private static final String OPERA_10_51_UBUNTU_9_10
       = "Opera/9.80 (X11; Linux i686; U; en) Presto/2.5.22 Version/10.51";
@@ -44,12 +40,15 @@ public class UserAgentUnitTest {
       = "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.365.0 Safari/533.3";
 
   private static final String CHROME_4_1_WINDOWS_7
-      = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko)"
+      = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko)"
       + " Chrome/4.1.249.1042 Safari/532.5";
 
   private static final String CHROME_5_0_360_UBUNTO_9_10
       = "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.360.0 Safari/533.3";
 
+   private static final String SAFARI_4_MACOSX
+      = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-de) AppleWebKit/531.22.7 (KHTML, like Gecko) "
+      + "Version/4.0.5 Safari/531.22.7";
 
 
   @Test
@@ -59,14 +58,18 @@ public class UserAgentUnitTest {
 
     Assert.assertEquals(UserAgent.GECKO, UserAgent.getInstance(FIREFOX_3_6_UBUNTU_10_4));
 
-    Assert.assertEquals(UserAgent.OPERA, UserAgent.getInstance(OPERA_10_10_MACOSX));
+    Assert.assertEquals(UserAgent.GECKO, UserAgent.getInstance(FIREFOX_3_6_UBUNTU_9_10));
+
+    Assert.assertEquals(UserAgent.OPERA_PRESTO, UserAgent.getInstance(OPERA_10_10_MACOSX));
+
+    Assert.assertEquals(UserAgent.OPERA_PRESTO, UserAgent.getInstance(OPERA_10_51_UBUNTU_9_10));
 
-    Assert.assertEquals(UserAgent.OPERA, UserAgent.getInstance(OPERA_10_51_UBUNTU_9_10));
+    Assert.assertEquals(UserAgent.CHROME, UserAgent.getInstance(CHROME_4_1_WINDOWS_7));
 
-    Assert.assertEquals(UserAgent.WEBKIT, UserAgent.getInstance(CHROME_5_0_360_UBUNTO_9_10));
+    Assert.assertEquals(UserAgent.CHROME_5_0, UserAgent.getInstance(CHROME_5_0_360_UBUNTO_9_10));
 
-    Assert.assertEquals(UserAgent.WEBKIT, UserAgent.getInstance(CHROMIUM_5_0_365_UBUNTU_9_10));
+    Assert.assertEquals(UserAgent.CHROME_5_0, UserAgent.getInstance(CHROMIUM_5_0_365_UBUNTU_9_10));
     
-    Assert.assertEquals(UserAgent.WEBKIT, UserAgent.getInstance(SAFARI_4_MACOSX));
+    Assert.assertEquals(UserAgent.SAFARI_4_0, UserAgent.getInstance(SAFARI_4_MACOSX));
   }
 }