You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2011/12/22 19:20:53 UTC

svn commit: r1222387 - in /abdera/abdera2: common/src/main/java/org/apache/abdera2/common/http/EntityTag.java test/src/main/java/org/apache/abdera2/test/common/http/EntityTagTest.java

Author: jmsnell
Date: Thu Dec 22 18:20:52 2011
New Revision: 1222387

URL: http://svn.apache.org/viewvc?rev=1222387&view=rev
Log:
Test cases and fixes

Modified:
    abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/EntityTag.java
    abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/EntityTagTest.java

Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/EntityTag.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/EntityTag.java?rev=1222387&r1=1222386&r2=1222387&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/EntityTag.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/EntityTag.java Thu Dec 22 18:20:52 2011
@@ -28,6 +28,7 @@ import java.util.List;
 
 import org.apache.abdera2.common.misc.ExceptionHelper;
 import org.apache.abdera2.common.misc.MoreFunctions;
+import org.apache.abdera2.common.text.CharUtils;
 import org.apache.abdera2.common.text.UrlEncoding;
 
 import com.google.common.base.Function;
@@ -62,6 +63,7 @@ public class EntityTag 
         entity_tag.charAt(pos) == '"' && 
         entity_tag.charAt(l) == '"',"Invalid");
       String tag = entity_tag.substring(pos+1,l);
+      tag = CharUtils.unescape(CharUtils.unquote(tag));
       return new EntityTag(tag, weak, false);
     }
 

Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/EntityTagTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/EntityTagTest.java?rev=1222387&r1=1222386&r2=1222387&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/EntityTagTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/EntityTagTest.java Thu Dec 22 18:20:52 2011
@@ -3,12 +3,16 @@ package org.apache.abdera2.test.common.h
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertThat;
+import static org.hamcrest.CoreMatchers.*;
 
 import java.util.Arrays;
 
 import org.apache.abdera2.common.http.EntityTag;
 import org.junit.Test;
 
+import com.google.common.collect.Iterables;
+
 public class EntityTagTest {
   @Test
   public void testEntityTag() throws Exception {
@@ -56,4 +60,22 @@ public class EntityTagTest {
       assertEquals("\"e2fc714c4727ee9395f324cd2e7f331f\"", etag.toString().toLowerCase());
   }
 
+  @Test
+  public void simpleetagquoted() {
+    EntityTag etag = new EntityTag("W/\"\\\"foo\\\\\"");
+    assertTrue(etag.isWeak());
+    assertEquals("\"foo\\",etag.getTag());
+  }
+  
+  @SuppressWarnings("unchecked")
+  @Test
+  public void multiple() {
+    Iterable<EntityTag> tags = EntityTag.parseTags("\"foo\", W/\"bar\", \"\\\\whee\\\"\"");
+    assertEquals(3,Iterables.size(tags));
+    for (EntityTag etag : tags) {
+      assertThat(etag.getTag(), anyOf(is("foo"),is("bar"),is("\\whee\"")));
+      if (etag.getTag().equals("bar"))
+        assertTrue(etag.isWeak());
+    }
+  }
 }