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:07:57 UTC
svn commit: r1222382 - in /abdera/abdera2:
common/src/main/java/org/apache/abdera2/common/http/Preference.java
test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java
Author: jmsnell
Date: Thu Dec 22 18:07:57 2011
New Revision: 1222382
URL: http://svn.apache.org/viewvc?rev=1222382&view=rev
Log:
fixes and test cases
Modified:
abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java
abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java?rev=1222382&r1=1222381&r2=1222382&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java Thu Dec 22 18:07:57 2011
@@ -282,22 +282,22 @@ public class Preference implements Seria
public int getIntParam(String name) {
String val = getParam(name);
- return val != null ? Integer.parseInt(name) : -1;
+ return val != null ? Integer.parseInt(val) : -1;
}
public long getLongParam(String name) {
String val = getParam(name);
- return val != null ? Long.parseLong(name) : -1;
+ return val != null ? Long.parseLong(val) : -1;
}
public short getShortParam(String name) {
String val = getParam(name);
- return val != null ? Short.parseShort(name) : -1;
+ return val != null ? Short.parseShort(val) : -1;
}
public boolean getBooleanParam(String name) {
String val = getParam(name);
- return val != null ? Boolean.parseBoolean(name) : false;
+ return val != null ? Boolean.parseBoolean(val) : false;
}
public String getParam(String name) {
@@ -359,12 +359,11 @@ public class Preference implements Seria
String pref = matcher.group(1);
String params = matcher.group(2);
String token = null, tokenval = null;
-
if (pref != null) {
String[] ps = pref.split("\\s*\\*?=\\s*", 2);
token = ps[0].trim();
if (ps.length == 2)
- tokenval = Codec.decode(CharUtils.unquote(CharUtils.unescape(ps[1])));
+ tokenval = Codec.decode(CharUtils.unescape(CharUtils.unquote(ps[1])));
}
Preference.Builder maker =
@@ -375,7 +374,7 @@ public class Preference implements Seria
String p = mparams.group(1);
String[] ps = p.split("\\s*\\*?=\\s*", 2);
if (ps.length == 2)
- maker.param(ps[0], Codec.decode(CharUtils.unquote(CharUtils.unescape(ps[1]))));
+ maker.param(ps[0], Codec.decode(CharUtils.unescape(CharUtils.unquote(ps[1]))));
else maker.param(ps[0]);
}
}
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java?rev=1222382&r1=1222381&r2=1222382&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java Thu Dec 22 18:07:57 2011
@@ -4,6 +4,8 @@ import org.apache.abdera2.common.http.Pr
import static org.apache.abdera2.common.http.Preference.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertThat;
+import static org.hamcrest.CoreMatchers.*;
import org.junit.Test;
@@ -42,4 +44,100 @@ public class PreferenceTest {
}
+ @Test
+ public void simplepref() {
+ Iterable<Preference> list = parse("lenient");
+ assertEquals(1,Iterables.size(list));
+ Preference pref = list.iterator().next();
+ assertEquals("lenient",pref.getToken());
+ }
+
+ @Test
+ public void simpleprefval() {
+ Iterable<Preference> list = parse("wait=10");
+ assertEquals(1,Iterables.size(list));
+ Preference pref = list.iterator().next();
+ assertEquals("wait",pref.getToken());
+ assertEquals(10,pref.getIntValue());
+ }
+
+ @Test
+ public void simpleprefvalq() {
+ Iterable<Preference> list = parse("foo=\"bar\"");
+ assertEquals(1,Iterables.size(list));
+ Preference pref = list.iterator().next();
+ assertEquals("foo",pref.getToken());
+ assertEquals("bar",pref.getValue());
+ }
+
+ @Test
+ public void simpleprefparam() {
+ Iterable<Preference> list = parse("foo; bar");
+ assertEquals(1,Iterables.size(list));
+ Preference pref = list.iterator().next();
+ assertEquals("foo", pref.getToken());
+ assertTrue(pref.hasParam("bar"));
+ assertEquals("",pref.getParam("bar"));
+ }
+
+ @Test
+ public void simpleprefparamval() {
+ Iterable<Preference> list = parse("foo; bar=1");
+ assertEquals(1,Iterables.size(list));
+ Preference pref = list.iterator().next();
+ assertEquals("foo", pref.getToken());
+ assertTrue(pref.hasParam("bar"));
+ assertEquals(1,pref.getIntParam("bar"));
+ }
+
+ @Test
+ public void simpleprefparamvalq() {
+ Iterable<Preference> list = parse("foo; bar=\"testing \\\" testing \\\\\"");
+ assertEquals(1,Iterables.size(list));
+ Preference pref = list.iterator().next();
+ assertEquals("foo", pref.getToken());
+ assertTrue(pref.hasParam("bar"));
+ assertEquals("testing \" testing \\",pref.getParam("bar"));
+ }
+
+ @Test
+ public void simpleprefvalparamval() {
+ Iterable<Preference> list = parse("foo=10; bar=\"testing \\\" testing \\\\\"");
+ assertEquals(1,Iterables.size(list));
+ Preference pref = list.iterator().next();
+ assertEquals("foo", pref.getToken());
+ assertEquals(10, pref.getIntValue());
+ assertTrue(pref.hasParam("bar"));
+ assertEquals("testing \" testing \\",pref.getParam("bar"));
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void multipref() {
+ Iterable<Preference> list = parse("lenient, wait=10; bar=\"foo\"");
+ assertEquals(2, Iterables.size(list));
+ for (Preference pref : list) {
+ assertThat(pref.getToken(),anyOf(is("lenient"),is("wait")));
+ if ("wait".equals(pref.getToken())) {
+ assertEquals(10,pref.getIntValue());
+ assertTrue(pref.hasParam("bar"));
+ assertEquals("foo",pref.getParam("bar"));
+ }
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void multiprefr() {
+ Iterable<Preference> list = parse("wait=10; bar=\"foo\", lenient");
+ assertEquals(2, Iterables.size(list));
+ for (Preference pref : list) {
+ assertThat(pref.getToken(),anyOf(is("lenient"),is("wait")));
+ if ("wait".equals(pref.getToken())) {
+ assertEquals(10,pref.getIntValue());
+ assertTrue(pref.hasParam("bar"));
+ assertEquals("foo",pref.getParam("bar"));
+ }
+ }
+ }
}