You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2009/08/17 22:54:55 UTC
svn commit: r805136 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/http/HttpResponse.java
test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java
Author: johnh
Date: Mon Aug 17 20:54:55 2009
New Revision: 805136
URL: http://svn.apache.org/viewvc?rev=805136&view=rev
Log:
Make charset parsing case-insensitive. Per RFC 2616 sec 3.7:
"The ... parameter attribute names are case- insensitive"
...so this behavior is RFC-compliant.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java?rev=805136&r1=805135&r2=805136&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java Mon Aug 17 20:54:55 2009
@@ -432,7 +432,7 @@
return DEFAULT_ENCODING;
}
if (parts.length == 2) {
- int offset = parts[1].indexOf("charset=");
+ int offset = parts[1].toLowerCase().indexOf("charset=");
if (offset != -1) {
String charset = parts[1].substring(offset + 8).toUpperCase();
// Some servers include quotes around the charset:
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java?rev=805136&r1=805135&r2=805136&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java Mon Aug 17 20:54:55 2009
@@ -72,6 +72,16 @@
}
@Test
+ public void testEncodingDetectionUtf8WithBomCaseInsensitiveKey() throws Exception {
+ HttpResponse response = new HttpResponseBuilder()
+ .addHeader("Content-Type", "text/plain; Charset=utf-8")
+ // Legitimate data, should be ignored in favor of explicit charset.
+ .setResponse(LATIN1_DATA)
+ .create();
+ assertEquals("UTF-8", response.getEncoding());
+ }
+
+ @Test
public void testEncodingDetectionLatin1() throws Exception {
// Input is a basic latin-1 string with 1 non-UTF8 compatible char.
HttpResponse response = new HttpResponseBuilder()