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));
}
}