You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by et...@apache.org on 2008/08/20 03:14:34 UTC

svn commit: r687214 [2/3] - in /incubator/shindig/trunk/java: common/src/main/java/org/apache/shindig/common/uri/ common/src/test/java/org/apache/shindig/common/uri/ gadgets/src/main/java/org/apache/shindig/gadgets/ gadgets/src/main/java/org/apache/shi...

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java Tue Aug 19 18:14:33 2008
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.http.HttpFetcher;
 import org.apache.shindig.gadgets.http.HttpRequest;
 import org.apache.shindig.gadgets.http.HttpResponse;
@@ -44,31 +45,31 @@
  * Tests for BasicGadgetSpecFactory
  */
 public class BasicGadgetSpecFactoryTest {
-  private final static URI SPEC_URL = URI.create("http://example.org/gadget.xml");
-  private final static URI REMOTE_URL = URI.create("http://example.org/remote.html");
+  private final static Uri SPEC_URL = Uri.parse("http://example.org/gadget.xml");
+  private final static Uri REMOTE_URL = Uri.parse("http://example.org/remote.html");
   private final static String LOCAL_CONTENT = "Hello, local content!";
   private final static String ALT_LOCAL_CONTENT = "Hello, local content!";
   private final static String REMOTE_CONTENT = "Hello, remote content!";
   private final static String LOCAL_SPEC_XML
-      = "<Module>" +
-        "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
-        "  <Content type='html'>" + LOCAL_CONTENT + "</Content>" +
-        "</Module>";
+  = "<Module>" +
+  "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
+  "  <Content type='html'>" + LOCAL_CONTENT + "</Content>" +
+  "</Module>";
   private final static String ALT_LOCAL_SPEC_XML
-      = "<Module>" +
-        "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
-        "  <Content type='html'>" + ALT_LOCAL_CONTENT + "</Content>" +
-        "</Module>";
+  = "<Module>" +
+  "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
+  "  <Content type='html'>" + ALT_LOCAL_CONTENT + "</Content>" +
+  "</Module>";
   private final static String REMOTE_SPEC_XML
-      = "<Module>" +
-        "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
-        "  <Content type='html' href='" + REMOTE_URL + "'/>" +
-        "</Module>";
+  = "<Module>" +
+  "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
+  "  <Content type='html' href='" + REMOTE_URL + "'/>" +
+  "</Module>";
   private final static String URL_SPEC_XML
-      = "<Module>" +
-        "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
-        "  <Content type='url' href='" + REMOTE_URL + "'/>" +
-        "</Module>";
+  = "<Module>" +
+  "  <ModulePrefs title='GadgetSpecFactoryTest'/>" +
+  "  <Content type='url' href='" + REMOTE_URL + "'/>" +
+  "</Module>";
 
   private final static GadgetContext NO_CACHE_CONTEXT = new GadgetContext() {
     @Override
@@ -77,7 +78,7 @@
     }
     @Override
     public URI getUrl() {
-      return SPEC_URL;
+      return SPEC_URL.toJavaUri();
     }
   };
   private final static Executor FAKE_EXECUTOR = new Executor() {
@@ -90,16 +91,16 @@
   private final CaptureRewriter rewriter = new CaptureRewriter();
 
   private final BasicGadgetSpecFactory specFactory
-      = new BasicGadgetSpecFactory(fetcher, rewriter, FAKE_EXECUTOR, 5, -1000, 1000);
+  = new BasicGadgetSpecFactory(fetcher, rewriter, FAKE_EXECUTOR, 5, -1000, 1000);
 
   @Test
   public void specFetched() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
     HttpResponse response = new HttpResponse(LOCAL_SPEC_XML);
     expect(fetcher.fetch(request)).andReturn(response);
     replay(fetcher);
 
-    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL, true);
+    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
 
     assertEquals(LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent());
     assertEquals(LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getRewrittenContent());
@@ -108,7 +109,7 @@
 
   @Test
   public void specFetchedWithContext() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
     HttpResponse response = new HttpResponse(LOCAL_SPEC_XML);
     expect(fetcher.fetch(request)).andReturn(response);
     replay(fetcher);
@@ -122,18 +123,19 @@
 
   @Test
   public void staleSpecIsRefetched() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
+    HttpRequest retriedRequest = new HttpRequest(SPEC_URL).setIgnoreCache(false);
     Map<String, List<String>> headers = Maps.newHashMap();
     headers.put("Pragma", Arrays.asList("no-cache"));
     HttpResponse expiredResponse = new HttpResponse(
         HttpResponse.SC_OK, LOCAL_SPEC_XML.getBytes("UTF-8"), headers);
     HttpResponse updatedResponse = new HttpResponse(ALT_LOCAL_SPEC_XML);
     expect(fetcher.fetch(request)).andReturn(expiredResponse).once();
-    expect(fetcher.fetch(request)).andReturn(updatedResponse).once();
+    expect(fetcher.fetch(retriedRequest)).andReturn(updatedResponse).once();
     replay(fetcher);
 
-    specFactory.getGadgetSpec(SPEC_URL, true);
-    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL, false);
+    specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
+    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), false);
 
     assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent());
     assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getRewrittenContent());
@@ -142,17 +144,18 @@
 
   @Test
   public void staleSpecReturnedFromCacheOnError() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
+    HttpRequest retriedRequest = new HttpRequest(SPEC_URL).setIgnoreCache(false);
     Map<String, List<String>> headers = Maps.newHashMap();
     headers.put("Pragma", Arrays.asList("no-cache"));
     HttpResponse expiredResponse = new HttpResponse(
         HttpResponse.SC_OK, LOCAL_SPEC_XML.getBytes("UTF-8"), headers);
     expect(fetcher.fetch(request)).andReturn(expiredResponse);
-    expect(fetcher.fetch(request)).andReturn(HttpResponse.notFound()).once();
+    expect(fetcher.fetch(retriedRequest)).andReturn(HttpResponse.notFound()).once();
     replay(fetcher);
 
-    specFactory.getGadgetSpec(SPEC_URL, true);
-    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL, false);
+    specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
+    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), false);
 
     assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent());
     assertEquals(ALT_LOCAL_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getRewrittenContent());
@@ -161,15 +164,15 @@
 
   @Test
   public void externalContentFetched() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
     HttpResponse response = new HttpResponse(REMOTE_SPEC_XML);
-    HttpRequest viewRequest = HttpRequest.getRequest(REMOTE_URL, true);
+    HttpRequest viewRequest = new HttpRequest(REMOTE_URL).setIgnoreCache(true);
     HttpResponse viewResponse = new HttpResponse(REMOTE_CONTENT);
     expect(fetcher.fetch(request)).andReturn(response);
     expect(fetcher.fetch(viewRequest)).andReturn(viewResponse);
     replay(fetcher);
 
-    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL, true);
+    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
 
     assertEquals(REMOTE_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getContent());
     assertEquals(REMOTE_CONTENT, spec.getView(GadgetSpec.DEFAULT_VIEW).getRewrittenContent());
@@ -178,14 +181,14 @@
 
   @Test
   public void typeUrlNotFetchedRemote() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
     HttpResponse response = new HttpResponse(URL_SPEC_XML);
     expect(fetcher.fetch(request)).andReturn(response);
     replay(fetcher);
 
-    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL, true);
+    GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
 
-    assertEquals(REMOTE_URL, spec.getView(GadgetSpec.DEFAULT_VIEW).getHref());
+    assertEquals(REMOTE_URL.toJavaUri(), spec.getView(GadgetSpec.DEFAULT_VIEW).getHref());
     assertEquals("", spec.getView(GadgetSpec.DEFAULT_VIEW).getContent());
     assertEquals(null, spec.getView(GadgetSpec.DEFAULT_VIEW).getRewrittenContent());
     assertFalse("Content was rewritten for type=url.", rewriter.rewroteView);
@@ -193,33 +196,33 @@
 
   @Test(expected = GadgetException.class)
   public void badFetchThrows() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
     expect(fetcher.fetch(request)).andReturn(HttpResponse.error());
     replay(fetcher);
 
-    specFactory.getGadgetSpec(SPEC_URL, true);
+    specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
   }
 
   @Test(expected = GadgetException.class)
   public void badRemoteContentThrows() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
     HttpResponse response = new HttpResponse(REMOTE_SPEC_XML);
-    HttpRequest viewRequest = HttpRequest.getRequest(REMOTE_URL, true);
+    HttpRequest viewRequest = new HttpRequest(REMOTE_URL).setIgnoreCache(true);
     expect(fetcher.fetch(request)).andReturn(response);
     expect(fetcher.fetch(viewRequest)).andReturn(HttpResponse.error());
     replay(fetcher);
 
-    specFactory.getGadgetSpec(SPEC_URL, true);
+    specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
   }
 
   @Test(expected = GadgetException.class)
   public void throwingFetcherRethrows() throws Exception {
-    HttpRequest request = HttpRequest.getRequest(SPEC_URL, true);
+    HttpRequest request = new HttpRequest(SPEC_URL).setIgnoreCache(true);
     expect(fetcher.fetch(request)).andThrow(
         new GadgetException(GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT));
     replay(fetcher);
 
-    specFactory.getGadgetSpec(SPEC_URL, true);
+    specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
   }
 
   private static class CaptureRewriter implements ContentRewriter {

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java Tue Aug 19 18:14:33 2008
@@ -21,30 +21,29 @@
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.isA;
 
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.shindig.common.BasicSecurityToken;
 import org.apache.shindig.common.SecurityToken;
 import org.apache.shindig.common.crypto.BlobCrypterException;
+import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.http.HttpRequest;
 import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.oauth.OAuthArguments;
 import org.apache.shindig.gadgets.spec.GadgetSpec;
 
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
+
 public class GadgetServerTest extends GadgetTestFixture {
 
-  private final static URI SPEC_URL = URI.create("http://example.org/g.xml");
-  private final static HttpRequest SPEC_REQUEST
-      = new HttpRequest(SPEC_URL);
-  private final static URI BUNDLE_URL = URI.create("http://example.org/m.xml");
-  private final static HttpRequest BUNDLE_REQUEST
-      = new HttpRequest(BUNDLE_URL);
-  private final static GadgetContext BASIC_CONTEXT = new GadgetContext() {
+  private static final Uri SPEC_URL = Uri.parse("http://example.org/g.xml");
+  private static final HttpRequest SPEC_REQUEST = new HttpRequest(SPEC_URL);
+  private static final Uri BUNDLE_URL = Uri.parse("http://example.org/m.xml");
+  private static final HttpRequest BUNDLE_REQUEST = new HttpRequest(BUNDLE_URL);
+  private static final GadgetContext BASIC_CONTEXT = new GadgetContext() {
     @Override
     public URI getUrl() {
-      return SPEC_URL;
+      return SPEC_URL.toJavaUri();
     }
 
     @Override
@@ -69,13 +68,13 @@
       return new UserPrefs(map);
     }
   };
-  private final static String BASIC_SPEC_XML
+  private static final String BASIC_SPEC_XML
       = "<Module>" +
         "  <ModulePrefs title=\"GadgetServerTest\"/>" +
         "  <Content type=\"html\">Hello, world!</Content>" +
         "</Module>";
 
-  private final static String BASIC_BUNDLE_XML
+  private static final String BASIC_BUNDLE_XML
       = "<messagebundle>" +
         "  <msg name=\"title\">TITLE</msg>" +
        "</messagebundle>";
@@ -167,8 +166,7 @@
   public void testPreloadsFetched() throws Exception {
     String preloadUrl = "http://example.org/preload.txt";
     String preloadData = "Preload Data";
-    HttpRequest preloadRequest
-        = new HttpRequest(URI.create(preloadUrl));
+    HttpRequest preloadRequest = new HttpRequest(Uri.parse(preloadUrl));
 
     String gadgetXml
         = "<Module>" +
@@ -193,8 +191,7 @@
   public void testPreloadViewMatch() throws Exception {
     String preloadUrl = "http://example.org/preload.txt";
     String preloadData = "Preload Data";
-    HttpRequest preloadRequest
-        = new HttpRequest(URI.create(preloadUrl));
+    HttpRequest preloadRequest = new HttpRequest(Uri.parse(preloadUrl));
 
     String gadgetXml
         = "<Module>" +
@@ -213,7 +210,7 @@
     GadgetContext context = new GadgetContext() {
       @Override
       public URI getUrl() {
-        return SPEC_URL;
+        return SPEC_URL.toJavaUri();
       }
 
       @Override
@@ -231,7 +228,7 @@
     String preloadUrl = "http://example.org/preload.txt";
     String preloadData = "Preload Data";
     HttpRequest preloadRequest
-        = new HttpRequest(URI.create(preloadUrl));
+        = new HttpRequest(Uri.parse(preloadUrl));
 
     String gadgetXml
         = "<Module>" +
@@ -250,7 +247,7 @@
     GadgetContext context = new GadgetContext() {
       @Override
       public URI getUrl() {
-        return SPEC_URL;
+        return SPEC_URL.toJavaUri();
       }
 
       @Override
@@ -280,7 +277,7 @@
     GadgetContext context = new GadgetContext() {
       @Override
       public URI getUrl() {
-        return SPEC_URL;
+        return SPEC_URL.toJavaUri();
       }
     };
 
@@ -291,8 +288,7 @@
   public void testSignedPreloadWithToken() throws Exception {
     String preloadUrl = "http://example.org/preload.txt";
     String preloadData = "Preload Data";
-    HttpRequest preloadRequest
-        = new HttpRequest(URI.create(preloadUrl));
+    HttpRequest preloadRequest = new HttpRequest(Uri.parse(preloadUrl));
 
     String gadgetXml
         = "<Module>" +
@@ -312,12 +308,11 @@
     Gadget gadget = gadgetServer.processGadget(BASIC_CONTEXT);
     assertTrue(gadget.getPreloadMap().size() == 1);
   }
-  
+
   public void testOAuthPreload() throws Exception {
     String preloadUrl = "http://example.org/preload.txt";
     String preloadData = "Preload Data";
-    HttpRequest preloadRequest
-        = new HttpRequest(URI.create(preloadUrl));
+    HttpRequest preloadRequest = new HttpRequest(Uri.parse(preloadUrl));
 
     String gadgetXml
         = "<Module>" +
@@ -341,7 +336,8 @@
   }
 
   public void testBlacklistedGadget() throws Exception {
-    expect(blacklist.isBlacklisted(eq(SPEC_URL))).andReturn(true);
+    URI test = SPEC_URL.toJavaUri();
+    expect(blacklist.isBlacklisted(eq(test))).andReturn(true);
     replay();
 
     try {
@@ -354,7 +350,7 @@
   }
 
   public void testViewContentFetching() throws Exception {
-    URI viewUri = URI.create("http://example.org/content.htm");
+    Uri viewUri = Uri.parse("http://example.org/content.htm");
     String gadgetXml
         = "<Module>" +
           "  <ModulePrefs title=\"foo\">" +
@@ -381,7 +377,7 @@
   }
 
   public void testViewContentFetchingWithBadHref() throws Exception {
-    URI viewUri = URI.create("http://example.org/nonexistantcontent.htm");
+    Uri viewUri = Uri.parse("http://example.org/nonexistantcontent.htm");
     String gadgetXml
         = "<Module>" +
           "  <ModulePrefs title=\"foo\">" +

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/InterceptingContentFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/InterceptingContentFetcher.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/InterceptingContentFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/InterceptingContentFetcher.java Tue Aug 19 18:14:33 2008
@@ -14,8 +14,9 @@
 
 package org.apache.shindig.gadgets;
 
-import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.http.HttpRequest;
+import org.apache.shindig.gadgets.http.HttpResponse;
+
 import org.json.JSONException;
 import org.json.JSONObject;
 
@@ -34,7 +35,7 @@
     interceptedRequest = request;
     try {
       JSONObject resp = new JSONObject();
-      resp.put("url", request.getUri().toASCIIString());
+      resp.put("url", request.getUri().toString());
       resp.put("method", request.getMethod());
       resp.put("body", request.getPostBodyAsString());
       return new HttpResponse(resp.toString());

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsFeatureLoaderTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsFeatureLoaderTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsFeatureLoaderTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsFeatureLoaderTest.java Tue Aug 19 18:14:33 2008
@@ -21,13 +21,13 @@
 import static org.easymock.EasyMock.expect;
 
 import org.apache.shindig.common.ContainerConfig;
+import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.http.HttpRequest;
 import org.apache.shindig.gadgets.http.HttpResponse;
 
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
-import java.net.URI;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -42,7 +42,7 @@
   private static final String ALT_JS_CONTENT = "function test(){while(true);}";
   private static final String CONT_A = "test";
   private static final String CONT_B = "wuwowowaefdf";
-  private static final URI JS_URL = URI.create("http://example.org/feature.js");
+  private static final Uri JS_URL = Uri.parse("http://example.org/feature.js");
 
   @Override
   public void setUp() throws Exception {

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsLibraryTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsLibraryTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsLibraryTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/JsLibraryTest.java Tue Aug 19 18:14:33 2008
@@ -20,14 +20,14 @@
 import static org.easymock.EasyMock.eq;
 import static org.easymock.EasyMock.expect;
 
+import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.http.HttpFetcher;
-import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.http.HttpRequest;
+import org.apache.shindig.gadgets.http.HttpResponse;
 
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
-import java.net.URI;
 
 public class JsLibraryTest extends EasyMockTestCase {
   private final static String INLINE_JS = "var hello = 'world'; alert(hello);";
@@ -39,8 +39,7 @@
   private final static String URL_JS = "while(true){alert('hello');}";
 
   public void testInline() throws GadgetException {
-    JsLibrary lib
-        = JsLibrary.create(JsLibrary.Type.INLINE, INLINE_JS, null, null);
+    JsLibrary lib = JsLibrary.create(JsLibrary.Type.INLINE, INLINE_JS, null, null);
     assertEquals(JsLibrary.Type.INLINE, lib.getType());
     assertEquals(INLINE_JS, lib.getContent());
   }
@@ -52,8 +51,7 @@
     out.write(FILE_JS);
     out.close();
 
-    JsLibrary lib
-        = JsLibrary.create(JsLibrary.Type.FILE, temp.getPath(), null, null);
+    JsLibrary lib = JsLibrary.create(JsLibrary.Type.FILE, temp.getPath(), null, null);
     assertEquals(JsLibrary.Type.FILE, lib.getType());
     assertEquals(FILE_JS, lib.getContent());
   }
@@ -65,8 +63,7 @@
     out.write(UNCOMPRESSED_FILE_JS);
     out.close();
 
-    File compressed
-        = new File(uncompressed.getPath().replace(".js", ".opt.js"));
+    File compressed = new File(uncompressed.getPath().replace(".js", ".opt.js"));
     // This might fail, but it shouldn't fail if the temp creation worked.
     compressed.createNewFile();
     compressed.deleteOnExit();
@@ -74,8 +71,7 @@
     out.write(FILE_JS);
     out.close();
 
-    JsLibrary lib = JsLibrary.create(
-          JsLibrary.Type.FILE, uncompressed.getPath(), null, null);
+    JsLibrary lib = JsLibrary.create(JsLibrary.Type.FILE, uncompressed.getPath(), null, null);
     assertEquals(JsLibrary.Type.FILE, lib.getType());
     assertEquals(FILE_JS, lib.getContent());
     assertEquals(UNCOMPRESSED_FILE_JS, lib.getDebugContent());
@@ -83,10 +79,9 @@
 
   public void testUrl() throws Exception {
     HttpFetcher mockFetcher = mock(HttpFetcher.class);
-    URI location = new URI("http://example.org/file.js");
+    Uri location = Uri.parse("http://example.org/file.js");
     HttpRequest request = new HttpRequest(location);
-    HttpResponse response
-        = new HttpResponse(HttpResponse.SC_OK, URL_JS.getBytes(), null);
+    HttpResponse response = new HttpResponse(HttpResponse.SC_OK, URL_JS.getBytes(), null);
     expect(mockFetcher.fetch(eq(request))).andReturn(response);
     replay();
     JsLibrary lib = JsLibrary.create(

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/SigningFetcherTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/SigningFetcherTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/SigningFetcherTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/SigningFetcherTest.java Tue Aug 19 18:14:33 2008
@@ -14,7 +14,14 @@
 
 package org.apache.shindig.gadgets;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
 import org.apache.shindig.common.BasicSecurityToken;
+import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.common.uri.UriBuilder;
 import org.apache.shindig.gadgets.http.BasicHttpCache;
 import org.apache.shindig.gadgets.http.HttpCache;
 import org.apache.shindig.gadgets.http.HttpRequest;
@@ -28,18 +35,16 @@
 import net.oauth.OAuth.Parameter;
 import net.oauth.signature.RSA_SHA1;
 
-import junit.framework.TestCase;
+import org.junit.Before;
+import org.junit.Test;
 
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
 /**
  * Tests the signed fetch code.
  */
-public class SigningFetcherTest extends TestCase {
+public class SigningFetcherTest {
   private static final String PRIVATE_KEY_TEXT =
     "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALRiMLAh9iimur8V" +
     "A7qVvdqxevEuUkW4K+2KdMXmnQbG9Aa7k7eBjK1S+0LYmVjPKlJGNXHDGuy5Fw/d" +
@@ -76,9 +81,8 @@
   private OAuthAccessor accessor;
   private OAuthValidator messageValidator;
 
-  @Override
+  @Before
   public void setUp() throws Exception {
-    super.setUp();
     cache = new BasicHttpCache(10);
     interceptor = new InterceptingContentFetcher();
     authToken = new BasicSecurityToken("o", "v", "a", "d", "u", "m");
@@ -90,29 +94,27 @@
     messageValidator = new SimpleOAuthValidator();
   }
 
-  private HttpRequest makeHttpRequest(String method, String url)
-      throws URISyntaxException {
+  private HttpRequest makeHttpRequest(String method, String url) {
     return makeHttpRequest(method, url, null);
   }
 
-  private HttpRequest makeHttpRequest(String method, String url,
-      byte[] body) throws URISyntaxException {
-    return new HttpRequest(method, new URI(url), null, body, null);
+  private HttpRequest makeHttpRequest(String method, String url, byte[] body) {
+    return new HttpRequest(Uri.parse(url))
+    .setMethod(method)
+    .setPostBody(body);
   }
 
-  private HttpRequest signAndInspect(HttpRequest orig)
-      throws Exception {
+  private HttpRequest signAndInspect(HttpRequest orig) throws Exception {
     signer.fetch(orig);
     assertSignatureOK(interceptor.interceptedRequest);
     return interceptor.interceptedRequest;
   }
 
+  @Test
   public void testParametersSet() throws Exception {
-    HttpRequest unsigned
-        = makeHttpRequest("GET", "http://test", null);
+    HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertTrue(contains(queryParams, "opensocial_owner_id", "o"));
     assertTrue(contains(queryParams, "opensocial_viewer_id", "v"));
     assertTrue(contains(queryParams, "opensocial_app_id", "a"));
@@ -120,26 +122,27 @@
     assertTrue(contains(queryParams, "xoauth_signature_publickey", "foo"));
   }
 
+  @Test
   public void testNoSignViewer() throws Exception {
-    HttpRequest unsigned
-        = makeHttpRequest("GET", "http://test", null);
-    unsigned.getOptions().viewerSigned = false;
+    HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
+    unsigned.setSignViewer(false);
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertTrue(contains(queryParams, "opensocial_owner_id", "o"));
     assertFalse(contains(queryParams, "opensocial_viewer_id", "v"));
   }
 
+  @Test
   public void testNoSignOwner() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
-    unsigned.getOptions().viewerSigned = false;
+    unsigned.setSignOwner(false);
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getRawQuery());
-    assertTrue(contains(queryParams, "opensocial_owner_id", "o"));
-    assertFalse(contains(queryParams, "opensocial_viewer_id", "v"));
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
+    assertFalse(contains(queryParams, "opensocial_owner_id", "o"));
+    assertTrue(contains(queryParams, "opensocial_viewer_id", "v"));
   }
-  
+
+  @Test
   public void testCacheHit() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
     signAndInspect(unsigned);
@@ -149,10 +152,11 @@
     signer.fetch(unsigned2);
     assertNull(interceptor.interceptedRequest);
   }
-  
+
+  @Test
   public void testCacheMiss_noOwner() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
-    unsigned.getOptions().ownerSigned = false;
+    unsigned.setSignOwner(false);
     signAndInspect(unsigned);
 
     HttpRequest unsigned2 = makeHttpRequest("GET", "http://test", null);
@@ -160,171 +164,141 @@
     signer.fetch(unsigned2);
     assertNotNull(interceptor.interceptedRequest);
   }
-  
+
+  @Test
   public void testCacheHit_ownerOnly() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
-    unsigned.getOptions().viewerSigned = false;
+    unsigned.setSignViewer(false);
     signAndInspect(unsigned);
 
     HttpRequest unsigned2 = makeHttpRequest("GET", "http://test", null);
-    unsigned2.getOptions().viewerSigned = false;
+    unsigned2.setSignViewer(false);
     interceptor.interceptedRequest = null;
     signer.fetch(unsigned2);
     assertNull(interceptor.interceptedRequest);
   }
-  
+
+  @Test
   public void testCacheMiss_bypassCache() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
-    unsigned.getOptions().viewerSigned = false;
+    unsigned.setSignViewer(false);
     signAndInspect(unsigned);
 
     HttpRequest unsigned2 = makeHttpRequest("GET", "http://test", null);
-    unsigned2.getOptions().ignoreCache = true;
-    unsigned2.getOptions().viewerSigned = false;
+    unsigned2.setIgnoreCache(true);
+    unsigned2.setSignViewer(false);
     interceptor.interceptedRequest = null;
     signer.fetch(unsigned2);
     assertNotNull(interceptor.interceptedRequest);
   }
-  
+
+  @Test(expected = RequestSigningException.class)
   public void testTrickyParametersInQuery() throws Exception {
     String tricky = "%6fpensocial_owner_id=gotcha";
-    HttpRequest unsigned
-        = makeHttpRequest("GET", "http://test?" + tricky, null);
-    try {
-    	signAndInspect(unsigned);
-    	fail("Should have thrown");
-    } catch (RequestSigningException e) {
-    	// good.
-    }
+    HttpRequest unsigned = makeHttpRequest("GET", "http://test?" + tricky, null);
+    signAndInspect(unsigned);
   }
 
+  @Test(expected = RequestSigningException.class)
   public void testTrickyParametersInBody() throws Exception {
     String tricky = "%6fpensocial_owner_id=gotcha";
-    HttpRequest unsigned
-        = makeHttpRequest("POST", "http://test", tricky.getBytes());
-    try {
-    	signAndInspect(unsigned);
-    	fail("Should have thrown");
-    } catch (RequestSigningException e) {
-    	// good.
-    }
+    HttpRequest unsigned = makeHttpRequest("POST", "http://test", tricky.getBytes());
+    signAndInspect(unsigned);
   }
 
+  @Test
   public void testGetNoQuery() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test", null);
     signAndInspect(unsigned);
   }
 
+  @Test
   public void testGetWithQuery() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test?a=b", null);
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertTrue(contains(queryParams, "a", "b"));
   }
 
+  @Test
   public void testGetWithQueryMultiParam() throws Exception {
-    HttpRequest unsigned
-        = makeHttpRequest("GET", "http://test?a=b&a=c");
+    HttpRequest unsigned = makeHttpRequest("GET", "http://test?a=b&a=c");
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertTrue(contains(queryParams, "a", "b"));
     assertTrue(contains(queryParams, "a", "c"));
   }
 
+  @Test
   public void testValidParameterCharacters() throws Exception {
     String weird = "~!@$*()-_[]:,./";
-    HttpRequest unsigned
-        = makeHttpRequest("GET", "http://test?" + weird + "=foo");
+    HttpRequest unsigned = makeHttpRequest("GET", "http://test?" + weird + "=foo");
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertTrue(contains(queryParams, weird, "foo"));
   }
 
+  @Test
   public void testPostNoQueryNoData() throws Exception {
     HttpRequest unsigned = makeHttpRequest("GET", "http://test");
     signAndInspect(unsigned);
   }
 
+  @Test
   public void testPostWithQueryNoData() throws Exception {
-    HttpRequest unsigned
-        = makeHttpRequest("GET", "http://test?name=value");
+    HttpRequest unsigned = makeHttpRequest("GET", "http://test?name=value");
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertTrue(contains(queryParams, "name", "value"));
   }
 
+  @Test
   public void testPostNoQueryWithData() throws Exception {
-    HttpRequest unsigned = makeHttpRequest(
-        "POST", "http://test", "name=value".getBytes());
+    HttpRequest unsigned = makeHttpRequest("POST", "http://test", "name=value".getBytes());
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertFalse(contains(queryParams, "name", "value"));
   }
 
+  @Test
   public void testPostWithQueryWithData() throws Exception {
     HttpRequest unsigned = makeHttpRequest(
         "POST", "http://test?queryName=queryValue", "name=value".getBytes());
     HttpRequest out = signAndInspect(unsigned);
-    List<OAuth.Parameter> queryParams
-        = OAuth.decodeForm(out.getUri().getRawQuery());
+    List<OAuth.Parameter> queryParams = OAuth.decodeForm(out.getUri().getQuery());
     assertTrue(contains(queryParams, "queryName", "queryValue"));
   }
 
+  @Test(expected = RequestSigningException.class)
   public void testStripOpenSocialParamsFromQuery() throws Exception {
-    HttpRequest unsigned = makeHttpRequest(
-        "POST", "http://test?opensocial_foo=bar");
-    try {
-      signAndInspect(unsigned);
-      fail("Should have thrown");
-    } catch (RequestSigningException e) {
-      // good
-    }
+    HttpRequest unsigned = makeHttpRequest("POST", "http://test?opensocial_foo=bar");
+    signAndInspect(unsigned);
   }
 
+  @Test(expected = RequestSigningException.class)
   public void testStripOAuthParamsFromQuery() throws Exception {
     HttpRequest unsigned = makeHttpRequest(
         "POST", "http://test?oauth_foo=bar", "name=value".getBytes());
-    try {
-      signAndInspect(unsigned);
-      fail("Should have thrown");
-    } catch (RequestSigningException e) {
-      // good
-    }
+    signAndInspect(unsigned);
   }
 
+  @Test(expected = RequestSigningException.class)
   public void testStripOpenSocialParamsFromBody() throws Exception {
-    HttpRequest unsigned = makeHttpRequest(
-        "POST", "http://test", "opensocial_foo=bar".getBytes());
-    try {
-    	signAndInspect(unsigned);
-    	fail("Should have thrown");
-    } catch (RequestSigningException e) {
-    	// good.
-    }
+    HttpRequest unsigned = makeHttpRequest("POST", "http://test", "opensocial_foo=bar".getBytes());
+    signAndInspect(unsigned);
   }
 
+  @Test(expected = RequestSigningException.class)
   public void testStripOAuthParamsFromBody() throws Exception {
-    HttpRequest unsigned = makeHttpRequest(
-        "POST", "http://test", "oauth_foo=bar".getBytes());
-    try {
-    	signAndInspect(unsigned);
-    	fail("Should have thrown");
-    } catch (RequestSigningException e) {
-    	// good.
-    }
+    HttpRequest unsigned = makeHttpRequest("POST", "http://test", "oauth_foo=bar".getBytes());
+    signAndInspect(unsigned);
   }
 
-  private void assertSignatureOK(HttpRequest req)
-  throws Exception {
-    URL url = req.getUri().toURL();
-    URL noQuery = new URL(url.getProtocol(), url.getHost(), url.getPort(),
-        url.getPath());
+  private void assertSignatureOK(HttpRequest req) throws Exception {
+    UriBuilder url = new UriBuilder(req.getUri());
     List<OAuth.Parameter> queryParams = OAuth.decodeForm(url.getQuery());
+    url.setQuery(null);
+
     String body = req.getPostBodyAsString();
     if (body.length() == 0) {
       body = null;
@@ -335,8 +309,7 @@
     msgParams.addAll(queryParams);
     msgParams.addAll(postParams);
 
-    OAuthMessage message = new OAuthMessage(req.getMethod(), noQuery.toString(),
-        msgParams);
+    OAuthMessage message = new OAuthMessage(req.getMethod(), url.toString(), msgParams);
 
     // Throws on failure
     message.validateMessage(accessor, messageValidator);

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpFetcherTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpFetcherTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpFetcherTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpFetcherTest.java Tue Aug 19 18:14:33 2008
@@ -20,33 +20,25 @@
 
 import static org.junit.Assert.assertEquals;
 
+import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.common.uri.UriBuilder;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 import junitx.framework.ArrayAssert;
 
-import java.net.URI;
-import java.net.URLEncoder;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Holds test cases that all HttpFetcher implementations should pass.  This
  * starts up an HTTP server and runs tests against it.
  */
 public abstract class AbstractHttpFetcherTest {
   private static final int ECHO_PORT = 9003;
-  private static final String BASE_URL = "http://localhost:9003/";
+  private static final Uri BASE_URL = Uri.parse("http://localhost:9003/");
   private static EchoServer server;
   protected HttpFetcher fetcher = null;
 
-  private String encode(String content) throws Exception {
-    return URLEncoder.encode(content, "UTF-8");
-  }
-
   @BeforeClass
   public static void setUpOnce() throws Exception {
     server = new EchoServer();
@@ -62,8 +54,8 @@
 
   @Test public void testHttpFetch() throws Exception {
     String content = "Hello, world!";
-    HttpRequest request = new HttpRequest(new URI(
-        BASE_URL + "?body=" + encode(content)));
+    Uri uri = new UriBuilder(BASE_URL).addQueryParameter("body", content).toUri();
+    HttpRequest request = new HttpRequest(uri);
     HttpResponse response = fetcher.fetch(request);
     assertEquals(200, response.getHttpStatusCode());
     assertEquals(content, response.getResponseAsString());
@@ -71,8 +63,11 @@
 
   @Test public void testHttp404() throws Exception {
     String content = "Hello, world!";
-    HttpRequest request = new HttpRequest(new URI(
-        BASE_URL + "?body=" + encode(content) + "&status=404"));
+    Uri uri = new UriBuilder(BASE_URL)
+        .addQueryParameter("body", content)
+        .addQueryParameter("status", "404")
+        .toUri();
+    HttpRequest request = new HttpRequest(uri);
     HttpResponse response = fetcher.fetch(request);
     assertEquals(404, response.getHttpStatusCode());
     assertEquals(content, response.getResponseAsString());
@@ -80,9 +75,12 @@
 
   @Test public void testHttp403() throws Exception {
     String content = "Hello, world!";
-    HttpRequest request = new HttpRequest(new URI(
-        BASE_URL + "?body=" + encode(content) + "&status=403" +
-        "&header=" + encode("WWW-Authenticate=some auth data")));
+    Uri uri = new UriBuilder(BASE_URL)
+        .addQueryParameter("body", content)
+        .addQueryParameter("status", "403")
+        .addQueryParameter("header", "WWW-Authenticate=some auth data")
+        .toUri();
+    HttpRequest request = new HttpRequest(uri);
     HttpResponse response = fetcher.fetch(request);
     assertEquals(403, response.getHttpStatusCode());
     assertEquals(content, response.getResponseAsString());
@@ -91,9 +89,12 @@
 
   @Test public void testHttp403NoBody() throws Exception {
     String content = "";
-    HttpRequest request = new HttpRequest(new URI(
-        BASE_URL + "?body=" + encode(content) + "&status=403" +
-        "&header=" + encode("WWW-Authenticate=some auth data")));
+    Uri uri = new UriBuilder(BASE_URL)
+        .addQueryParameter("body", content)
+        .addQueryParameter("status", "403")
+        .addQueryParameter("header", "WWW-Authenticate=some auth data")
+        .toUri();
+    HttpRequest request = new HttpRequest(uri);
     HttpResponse response = fetcher.fetch(request);
     assertEquals(403, response.getHttpStatusCode());
     assertEquals(content, response.getResponseAsString());
@@ -102,9 +103,12 @@
 
   @Test public void testHttp401NoBody() throws Exception {
     String content = "";
-    HttpRequest request = new HttpRequest(new URI(
-        BASE_URL + "?body=" + encode(content) + "&status=401" +
-        "&header=" + encode("WWW-Authenticate=some auth data")));
+    Uri uri = new UriBuilder(BASE_URL)
+        .addQueryParameter("body", content)
+        .addQueryParameter("status", "401")
+        .addQueryParameter("header", "WWW-Authenticate=some auth data")
+        .toUri();
+    HttpRequest request = new HttpRequest(uri);
     HttpResponse response = fetcher.fetch(request);
     assertEquals(401, response.getHttpStatusCode());
     assertEquals(content, response.getResponseAsString());
@@ -112,15 +116,13 @@
   }
 
   @Test public void testDelete() throws Exception {
-    HttpRequest request = new HttpRequest("DELETE", new URI(BASE_URL),
-        null, null, null);
+    HttpRequest request = new HttpRequest(BASE_URL).setMethod("DELETE");
     HttpResponse response = fetcher.fetch(request);
     assertEquals("DELETE", response.getHeader("x-method"));
   }
 
   @Test public void testPost_noBody() throws Exception {
-    HttpRequest request = new HttpRequest("POST", new URI(BASE_URL),
-        null, null, null);
+    HttpRequest request = new HttpRequest(BASE_URL).setMethod("POST");
     HttpResponse response = fetcher.fetch(request);
     assertEquals("POST", response.getHeader("x-method"));
     assertEquals("", response.getResponseAsString());
@@ -131,18 +133,17 @@
     for (int i=0; i < body.length; ++i) {
       body[i] = (byte)(i % 255);
     }
-    Map<String, List<String>> headers = new HashMap<String, List<String>>();
-    headers.put("content-type", Arrays.asList("application/octet-stream"));
-    HttpRequest request = new HttpRequest("POST", new URI(BASE_URL),
-        headers, body, null);
+    HttpRequest request = new HttpRequest(BASE_URL)
+        .setMethod("POST")
+        .setPostBody(body)
+        .addHeader("content-type", "application/octet-stream");
     HttpResponse response = fetcher.fetch(request);
     assertEquals("POST", response.getHeader("x-method"));
     ArrayAssert.assertEquals(body, response.getResponseAsBytes());
   }
 
   @Test public void testPut_noBody() throws Exception {
-    HttpRequest request = new HttpRequest("PUT", new URI(BASE_URL),
-        null, null, null);
+    HttpRequest request = new HttpRequest(BASE_URL).setMethod("PUT");
     HttpResponse response = fetcher.fetch(request);
     assertEquals("PUT", response.getHeader("x-method"));
     assertEquals("", response.getResponseAsString());
@@ -153,10 +154,10 @@
     for (int i=0; i < body.length; ++i) {
       body[i] = (byte)i;
     }
-    Map<String, List<String>> headers = new HashMap<String, List<String>>();
-    headers.put("content-type", Arrays.asList("application/octet-stream"));
-    HttpRequest request = new HttpRequest("PUT", new URI(BASE_URL),
-        headers, body, null);
+    HttpRequest request = new HttpRequest(BASE_URL)
+        .setMethod("PUT")
+        .setPostBody(body)
+        .addHeader("content-type", "application/octet-stream");
     HttpResponse response = fetcher.fetch(request);
     assertEquals("PUT", response.getHeader("x-method"));
     ArrayAssert.assertEquals(body, response.getResponseAsBytes());
@@ -167,10 +168,10 @@
     for (int i=0; i < body.length; ++i) {
       body[i] = (byte)i;
     }
-    Map<String, List<String>> headers = new HashMap<String, List<String>>();
-    headers.put("content-type", Arrays.asList("application/octet-stream"));
-    HttpRequest request = new HttpRequest("POST", new URI(BASE_URL),
-        headers, body, null);
+    HttpRequest request = new HttpRequest(BASE_URL)
+        .setMethod("POST")
+        .setPostBody(body)
+        .addHeader("content-type", "application/octet-stream");
     HttpResponse response = fetcher.fetch(request);
     assertEquals("POST", response.getHeader("x-method"));
     ArrayAssert.assertEquals(body, response.getResponseAsBytes());

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/BasicHttpCacheTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/BasicHttpCacheTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/BasicHttpCacheTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/BasicHttpCacheTest.java Tue Aug 19 18:14:33 2008
@@ -17,12 +17,13 @@
  */
 package org.apache.shindig.gadgets.http;
 
-import junit.framework.TestCase;
+import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.common.util.DateUtil;
 
 import org.apache.commons.lang.ArrayUtils;
-import org.apache.shindig.common.util.DateUtil;
 
-import java.net.URI;
+import junit.framework.TestCase;
+
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
@@ -49,10 +50,7 @@
   }
 
   private HttpRequest createRequest(String method) {
-    HttpRequest req = new HttpRequest(method,
-        URI.create("http://www.here.com"), new HashMap<String, List<String>>(),
-        ArrayUtils.EMPTY_BYTE_ARRAY, new HttpRequest.Options());
-    return req;
+    return new HttpRequest(Uri.parse("http://www.example.org")).setMethod(method);
   }
 
   private HttpResponse createResponse(int statusCode, String header,
@@ -175,7 +173,7 @@
   public void testCacheableWithForcedMinTTL() {
     HttpRequest req = createRequest("GET");
     // in seconds
-    req.getOptions().minCacheTtl = 5;
+    req.setCacheTtl(5);
     HttpResponse resp = createExpiresResponse(200, System.currentTimeMillis());
     HttpCacheKey key = new HttpCacheKey(req);
     cache.addResponse(key, req, resp);

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpCacheKeyTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpCacheKeyTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpCacheKeyTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpCacheKeyTest.java Tue Aug 19 18:14:33 2008
@@ -17,23 +17,16 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.shindig.gadgets.http.HttpRequest.Options;
+import org.apache.shindig.common.uri.Uri;
+
 import org.json.JSONArray;
 import org.json.JSONObject;
-import org.junit.Before;
 import org.junit.Test;
 
-import java.net.URI;
-
 public class HttpCacheKeyTest {
 
-  private URI target;
+  private Uri target = Uri.parse("http://www.example.com/");
 
-  @Before
-  public void setUp() throws Exception {
-    target = new URI("http://www.example.com/");
-  }
-  
   @Test
   public void testGet() throws Exception {
     HttpRequest request = new HttpRequest(target);
@@ -43,29 +36,27 @@
         "[{\"method\":\"GET\"},{\"url\":\"http://www.example.com/\"}]",
         key.toString());
   }
-  
+
   @Test
   public void testNonCacheableOptions() throws Exception {
-    Options options = new Options();
-    options.ignoreCache = true;
-    HttpRequest request = new HttpRequest(target, options);
+    HttpRequest request = new HttpRequest(target).setIgnoreCache(true);
     HttpCacheKey key = new HttpCacheKey(request);
     assertFalse(key.isCacheable());
     assertEquals(
         "[{\"method\":\"GET\"},{\"url\":\"http://www.example.com/\"}]",
         key.toString());
   }
-  
+
   @Test
   public void testNonGet() throws Exception {
-    HttpRequest request = new HttpRequest("POST", target, null, null, null);
+    HttpRequest request = new HttpRequest(target).setMethod("POST");
     HttpCacheKey key = new HttpCacheKey(request);
     assertFalse(key.isCacheable());
     assertEquals(
         "[{\"method\":\"POST\"},{\"url\":\"http://www.example.com/\"}]",
         key.toString());
   }
-  
+
   @Test
   public void testOrdered() {
     HttpCacheKey key = new HttpCacheKey(new HttpRequest(target));
@@ -83,7 +74,7 @@
     	",{\"url\":\"http://www.example.com/\"}]",
     	key.toString());
   }
-  
+
   @Test
   public void testWeirdChars() throws Exception {
     final int CHARS_TO_TEST = 2000;

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpRequestTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpRequestTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpRequestTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpRequestTest.java Tue Aug 19 18:14:33 2008
@@ -18,52 +18,100 @@
  */
 package org.apache.shindig.gadgets.http;
 
-import org.apache.commons.io.IOUtils;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.shindig.common.AnonymousSecurityToken;
+import org.apache.shindig.common.uri.Uri;
+
+import com.google.common.collect.Multimaps;
 
-import junit.framework.TestCase;
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
 
-import java.net.URI;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class HttpRequestTest extends TestCase {
+public class HttpRequestTest {
   private static final String POST_BODY = "Hello, world!";
   private static final String CONTENT_TYPE = "text/plain";
   private static final String TEST_HEADER_KEY = "X-Test-Header";
   private static final String TEST_HEADER_VALUE = "Hello!";
-  private static final URI DEFAULT_URI = URI.create("http://example.org/");
+  private static final String TEST_HEADER_VALUE2 = "Goodbye.";
+  private static final Uri DEFAULT_URI = Uri.parse("http://example.org/");
 
-  public void testPostBodyCopied() throws Exception {
-    HttpRequest request
-        = new HttpRequest(DEFAULT_URI, POST_BODY.getBytes());
+  @Test
+  public void postBodyCopied() throws Exception {
+    HttpRequest request  = new HttpRequest(DEFAULT_URI).setPostBody(POST_BODY.getBytes());
     assertEquals(POST_BODY.length(), request.getPostBodyLength());
     assertEquals(POST_BODY, IOUtils.toString(request.getPostBody(), "UTF-8"));
+    assertEquals(POST_BODY, request.getPostBodyAsString());
   }
 
-  public void testContentTypeExtraction() throws Exception {
-    Map<String, List<String>> headers = new HashMap<String, List<String>>();
-    headers.put("Content-Type", Arrays.asList(CONTENT_TYPE));
-    HttpRequest request
-        = new HttpRequest(DEFAULT_URI, headers);
+  @Test
+  public void contentTypeExtraction() throws Exception {
+    HttpRequest request = new HttpRequest(DEFAULT_URI)
+    .addHeader("Content-Type", CONTENT_TYPE);
     assertEquals(CONTENT_TYPE, request.getContentType());
   }
 
-  public void testGetHeader() throws Exception {
+  @Test
+  public void getHeader() throws Exception {
     Map<String, List<String>> headers = new HashMap<String, List<String>>();
     headers.put(TEST_HEADER_KEY, Arrays.asList(TEST_HEADER_VALUE));
-    HttpRequest request
-        = new HttpRequest(DEFAULT_URI, headers);
+    HttpRequest request = new HttpRequest(DEFAULT_URI)
+    .addHeader(TEST_HEADER_KEY, TEST_HEADER_VALUE);
     assertEquals(TEST_HEADER_VALUE, request.getHeader(TEST_HEADER_KEY));
   }
-  
-  public void testDefaultOptionsSafelyMutable() throws Exception {
-    HttpRequest request = new HttpRequest(DEFAULT_URI);
-    assertFalse(request.getOptions().ignoreCache);
-    request.getOptions().ignoreCache = true;
-    
-    request = new HttpRequest(DEFAULT_URI);
-    assertFalse(request.getOptions().ignoreCache);
+
+  @Test
+  public void getHeaders() throws Exception {
+    HttpRequest request = new HttpRequest(DEFAULT_URI)
+    .addHeader(TEST_HEADER_KEY, TEST_HEADER_VALUE)
+    .addHeader(TEST_HEADER_KEY, TEST_HEADER_VALUE2);
+
+    Collection<String> expected = Arrays.asList(TEST_HEADER_VALUE, TEST_HEADER_VALUE2);
+    assertTrue(request.getHeaders(TEST_HEADER_KEY).containsAll(expected));
+  }
+
+  @Test
+  public void ignoreCacheAddsPragmaHeader() throws Exception {
+    HttpRequest request = new HttpRequest(DEFAULT_URI).setIgnoreCache(true);
+
+    assertTrue("Pragma: no-cache not added when ignoreCache == true",
+        request.getHeaders("Pragma").contains("no-cache"));
+  }
+
+  @Test
+  public void copyCtorCopiesAllFields() {
+    HttpRequest request = new HttpRequest(DEFAULT_URI)
+    .setCacheTtl(100)
+    .addHeaders(Multimaps.immutableMultimap(TEST_HEADER_KEY, TEST_HEADER_VALUE))
+    .setContainer("container")
+    .setGadget(DEFAULT_URI)
+    .setMethod("POST")
+    .setPostBody(POST_BODY.getBytes())
+    .setContentRewriter(null)
+    .setRewriteMimeType("text/fake")
+    .setSecurityToken(AnonymousSecurityToken.getInstance())
+    .setSignOwner(false)
+    .setSignViewer(false);
+
+    HttpRequest request2 = new HttpRequest(request).setUri(Uri.parse("http://example.org/foo"));
+
+    assertEquals(request.getCacheTtl(), request2.getCacheTtl());
+    assertEquals(request.getHeaders(), request2.getHeaders());
+    assertEquals(request.getContainer(), request2.getContainer());
+    assertEquals(request.getGadget(), request2.getGadget());
+    assertEquals(request.getMethod(), request2.getMethod());
+    assertEquals(request.getPostBodyAsString(), request2.getPostBodyAsString());
+    assertEquals(request.getContentRewriter(), request2.getContentRewriter());
+    assertEquals(request.getRewriteMimeType(), request2.getRewriteMimeType());
+    assertEquals(request.getSecurityToken(), request2.getSecurityToken());
+    assertEquals(request.getSignOwner(), request2.getSignOwner());
+    assertEquals(request.getSignViewer(), request2.getSignViewer());
   }
 }

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java Tue Aug 19 18:14:33 2008
@@ -17,6 +17,12 @@
  */
 package org.apache.shindig.gadgets.oauth;
 
+import org.apache.shindig.common.crypto.Crypto;
+import org.apache.shindig.gadgets.GadgetException;
+import org.apache.shindig.gadgets.http.HttpFetcher;
+import org.apache.shindig.gadgets.http.HttpRequest;
+import org.apache.shindig.gadgets.http.HttpResponse;
+
 import net.oauth.OAuth;
 import net.oauth.OAuthAccessor;
 import net.oauth.OAuthConsumer;
@@ -25,12 +31,6 @@
 import net.oauth.OAuthValidator;
 import net.oauth.SimpleOAuthValidator;
 
-import org.apache.shindig.common.crypto.Crypto;
-import org.apache.shindig.gadgets.GadgetException;
-import org.apache.shindig.gadgets.http.HttpFetcher;
-import org.apache.shindig.gadgets.http.HttpResponse;
-import org.apache.shindig.gadgets.http.HttpRequest;
-
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -41,38 +41,38 @@
 public class FakeOAuthServiceProvider implements HttpFetcher {
 
   public final static String SP_HOST = "http://www.example.com";
-  
+
   public final static String REQUEST_TOKEN_URL =
       SP_HOST + "/request?param=foo";
-  public final static String ACCESS_TOKEN_URL = 
+  public final static String ACCESS_TOKEN_URL =
       SP_HOST + "/access";
   public final static String APPROVAL_URL =
       SP_HOST + "/authorize";
-  public final static String RESOURCE_URL = 
+  public final static String RESOURCE_URL =
       SP_HOST + "/data";
-  
+
   public final static String CONSUMER_KEY = "consumer";
   public final static String CONSUMER_SECRET = "secret";
-  
+
   private static class TokenState {
     String tokenSecret;
     OAuthConsumer consumer;
     State state;
     String userData;
-    
+
     enum State {
       PENDING,
       APPROVED,
       REVOKED,
-    } 
-    
+    }
+
     public TokenState(String tokenSecret, OAuthConsumer consumer) {
       this.tokenSecret = tokenSecret;
       this.consumer = consumer;
       this.state = State.PENDING;
       this.userData = null;
     }
-    
+
     public static TokenState makeAccessTokenState(String tokenSecret,
         OAuthConsumer consumer) {
       TokenState s = new TokenState(tokenSecret, consumer);
@@ -83,24 +83,24 @@
     public void setState(State state) {
       this.state = state;
     }
-    
+
     public State getState() {
       return state;
     }
-    
+
     public String getSecret() {
       return tokenSecret;
     }
-    
+
     public void setUserData(String userData) {
       this.userData = userData;
     }
-    
+
     public String getUserData() {
       return userData;
     }
   }
-  
+
   /**
    * Table of OAuth access tokens
    */
@@ -110,13 +110,13 @@
 
   private boolean throttled;
   private boolean vagueErrors;
-  
+
   private int requestTokenCount = 0;
-  
+
   private int accessTokenCount = 0;
-  
+
   private int resourceAccessCount = 0;
-  
+
   public FakeOAuthServiceProvider() {
     OAuthServiceProvider provider = new OAuthServiceProvider(
         REQUEST_TOKEN_URL, APPROVAL_URL, ACCESS_TOKEN_URL);
@@ -126,19 +126,19 @@
     validator = new SimpleOAuthValidator();
     vagueErrors = false;
   }
-  
+
   public void setVagueErrors(boolean vagueErrors) {
     this.vagueErrors = vagueErrors;
   }
-  
+
   @SuppressWarnings("unused")
   public HttpResponse fetch(HttpRequest request)
       throws GadgetException {
     return realFetch(request);
   }
-  
+
   private HttpResponse realFetch(HttpRequest request) {
-    String url = request.getUri().toASCIIString();
+    String url = request.getUri().toString();
     try {
       if (url.startsWith(REQUEST_TOKEN_URL)) {
         ++requestTokenCount;
@@ -197,7 +197,7 @@
         "WWW-Authenticate",
         Arrays.asList(msg.getAuthorizationHeader("realm")));
     HttpResponse response = new HttpResponse(403, null, headers);
-    return response;   
+    return response;
   }
 
   // Loosely based off net.oauth.OAuthServlet, and even more loosely related
@@ -207,7 +207,7 @@
     if (!method.equals("GET")) {
       throw new RuntimeException("Only GET supported for now");
     }
-    ParsedUrl url = new ParsedUrl(request.getUri().toASCIIString());
+    ParsedUrl url = new ParsedUrl(request.getUri().toString());
     List<OAuth.Parameter> params = new ArrayList<OAuth.Parameter>();
     params.addAll(url.getParsedQuery());
     String aznHeader = request.getHeader("Authorization");
@@ -220,7 +220,7 @@
     }
     return new OAuthMessage(method, url.getLocation(), params);
   }
-  
+
   /**
    * Utility class for parsing OAuth URLs.
    */
@@ -228,7 +228,7 @@
     String location = null;
     String query = null;
     List<OAuth.Parameter> decodedQuery = null;
-    
+
     public ParsedUrl(String url) {
       int queryIndex = url.indexOf('?');
       if (queryIndex != -1) {
@@ -238,15 +238,15 @@
         location = url;
       }
     }
-    
+
     public String getLocation() {
       return location;
     }
-    
+
     public String getRawQuery() {
       return query;
     }
-    
+
     public List<OAuth.Parameter> getParsedQuery() {
       if (decodedQuery == null) {
         if (query != null) {
@@ -257,7 +257,7 @@
       }
       return decodedQuery;
     }
-    
+
     public String getQueryParam(String name) {
       for (OAuth.Parameter p : getParsedQuery()) {
         if (p.getKey().equals(name)) {
@@ -267,7 +267,7 @@
       return null;
     }
   }
-  
+
   /**
    * Used to fake a browser visit to approve a token.
    * @param url
@@ -281,20 +281,20 @@
     // Not part of the OAuth spec, just a handy thing for testing.
     state.setUserData(parsed.getQueryParam("user_data"));
   }
-  
+
   public static class TokenPair {
     public final String token;
     public final String secret;
-    
+
     public TokenPair(String token, String secret) {
       this.token = token;
       this.secret = secret;
     }
   }
-  
+
   /**
    * Generate a preapproved request token for the specified user data.
-   * 
+   *
    * @param userData
    * @return the request token and secret
    */
@@ -307,10 +307,10 @@
     tokenState.put(requestToken, state);
     return new TokenPair(requestToken, requestTokenSecret);
   }
-  
+
   /**
    * Used to revoke all access tokens issued by this service provider.
-   * 
+   *
    * @throws Exception
    */
   public void revokeAllAccessTokens() throws Exception {
@@ -359,7 +359,7 @@
     }
     if (state == null) {
       return makeOAuthProblemReport(
-          "token_rejected", "Access token unknown");     
+          "token_rejected", "Access token unknown");
     }
     if (state.getState() != TokenState.State.APPROVED) {
       return makeOAuthProblemReport(

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java?rev=687214&r1=687213&r2=687214&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java Tue Aug 19 18:14:33 2008
@@ -21,12 +21,10 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import java.net.URI;
-import java.util.Map;
-
 import org.apache.shindig.common.BasicSecurityToken;
 import org.apache.shindig.common.SecurityToken;
 import org.apache.shindig.common.crypto.BasicBlobCrypter;
+import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.FakeGadgetSpecFactory;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.http.BasicHttpCache;
@@ -34,10 +32,13 @@
 import org.apache.shindig.gadgets.http.HttpRequest;
 import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.oauth.FakeOAuthServiceProvider.TokenPair;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.Map;
+
 /**
  * Primitive test of the main code paths in OAuthFetcher.
  *
@@ -50,8 +51,7 @@
   private FakeOAuthServiceProvider serviceProvider;
 
   public static final String GADGET_URL = "http://www.example.com/gadget.xml";
-  public static final String GADGET_URL_NO_KEY =
-      "http://www.example.com/nokey.xml";
+  public static final String GADGET_URL_NO_KEY = "http://www.example.com/nokey.xml";
 
   @Before
   public void setUp() throws Exception {
@@ -111,8 +111,7 @@
   /**
    * Builds a nicely populated gadget token.
    */
-  public static SecurityToken getSecurityToken(String owner, String viewer)
-      throws Exception {
+  public static SecurityToken getSecurityToken(String owner, String viewer) throws Exception {
     return new BasicSecurityToken(owner, viewer, "app", "container.com",
         GADGET_URL, "0");
   }
@@ -120,8 +119,7 @@
   /**
    * Builds a nicely populated gadget token.
    */
-  public static SecurityToken getNokeySecurityToken(String owner, String viewer)
-      throws Exception {
+  public static SecurityToken getNokeySecurityToken(String owner, String viewer) throws Exception {
     return new BasicSecurityToken(owner, viewer, "app", "container.com",
         GADGET_URL_NO_KEY, "0");
   }
@@ -145,10 +143,8 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     String clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -159,28 +155,22 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
 
     fetcher = getFetcher(
         getSecurityToken("owner", "somebody else"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
 
     fetcher = getFetcher(
         getSecurityToken("somebody else", "somebody else"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -191,10 +181,8 @@
 
     fetcher = getFetcher(
         getSecurityToken("somebody else", "somebody else"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is somebody else", response.getResponseAsString());
   }
@@ -207,10 +195,8 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     String clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -221,10 +207,8 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
 
@@ -232,11 +216,9 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
 
     clientState = response.getMetadata().get("oauthState");
@@ -247,30 +229,26 @@
     serviceProvider.browserVisit(approvalUrl + "&user_data=reapproved");
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
     assertEquals("User data is reapproved", response.getResponseAsString());
   }
-  
+
 
   @Test
   public void testError401() throws Exception {
     HttpFetcher fetcher;
     HttpRequest request;
     HttpResponse response;
-    
+
     serviceProvider.setVagueErrors(true);
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     String clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -281,10 +259,8 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
 
@@ -292,11 +268,9 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
 
     clientState = response.getMetadata().get("oauthState");
@@ -307,11 +281,9 @@
     serviceProvider.browserVisit(approvalUrl + "&user_data=reapproved");
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
     assertEquals("User data is reapproved", response.getResponseAsString());
   }
@@ -324,10 +296,8 @@
 
     fetcher = getFetcher(
         getNokeySecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME_NO_KEY, null,
-            null, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME_NO_KEY, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     Map<String, String> metadata = response.getMetadata();
     assertNotNull(metadata);
@@ -336,21 +306,19 @@
         "invalid consumer: garbage_key",
         metadata.get("oauthErrorText"));
   }
-  
+
   @Test
   public void testError403() throws Exception {
     HttpFetcher fetcher;
     HttpRequest request;
     HttpResponse response;
-    
+
     serviceProvider.setVagueErrors(true);
 
     fetcher = getFetcher(
         getNokeySecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME_NO_KEY, null,
-            null, false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME_NO_KEY, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     Map<String, String> metadata = response.getMetadata();
     assertNotNull(metadata);
@@ -371,11 +339,9 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
     clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -390,10 +356,9 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
     clientState = response.getMetadata().get("oauthState");
@@ -404,10 +369,9 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
     clientState = response.getMetadata().get("oauthState");
@@ -422,8 +386,8 @@
         getSecurityToken("owner", "owner"),
         new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
             false));
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
     Map<String, String> metadata = response.getMetadata();
     assertNotNull(metadata);
@@ -443,8 +407,8 @@
         getSecurityToken("owner", "owner"),
         new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
             clientState, false));
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
     clientState = response.getMetadata().get("oauthState");
 
@@ -454,7 +418,7 @@
     assertEquals(1, serviceProvider.getAccessTokenCount());
     assertEquals(4, serviceProvider.getResourceAccessCount());
   }
-  
+
   @Test
   public void testWrongServiceName() throws Exception {
     HttpFetcher fetcher;
@@ -465,9 +429,9 @@
         getSecurityToken("owner", "owner"),
         new OAuthArguments("nosuchservice", null, null, false));
     request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
-    
+
     Map<String, String> metadata = response.getMetadata();
     assertNull(metadata.get("oauthApprovalUrl"));
     assertEquals("BAD_OAUTH_CONFIGURATION", metadata.get("oauthError"));
@@ -477,27 +441,27 @@
         errorText.indexOf("Spec does not contain OAuth service " +
         		"'nosuchservice'.  Known services: 'testservice'\n"));
   }
-  
+
   @Test
   public void testPreapprovedToken() throws Exception {
     HttpFetcher fetcher;
     HttpRequest request;
     HttpResponse response;
-    
+
     assertEquals(0, serviceProvider.getRequestTokenCount());
     assertEquals(0, serviceProvider.getAccessTokenCount());
     assertEquals(0, serviceProvider.getResourceAccessCount());
-    
+
     TokenPair reqToken = serviceProvider.getPreapprovedToken("preapproved");
-    
+
     OAuthArguments params = new OAuthArguments(
         FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, reqToken.token,
             reqToken.secret);
 
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
-    
+
     String clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
     String approvalUrl = response.getMetadata().get("oauthApprovalUrl");
@@ -506,28 +470,28 @@
     assertEquals(0, serviceProvider.getRequestTokenCount());
     assertEquals(1, serviceProvider.getAccessTokenCount());
     assertEquals(1, serviceProvider.getResourceAccessCount());
-    
+
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
-    
+
     assertEquals("User data is preapproved", response.getResponseAsString());
     assertEquals(0, serviceProvider.getRequestTokenCount());
     assertEquals(1, serviceProvider.getAccessTokenCount());
     assertEquals(2, serviceProvider.getResourceAccessCount());
-    
+
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
-    request.getOptions().ignoreCache = true;
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
+    request.setIgnoreCache(true);
     response = fetcher.fetch(request);
-    
+
     assertEquals("User data is preapproved", response.getResponseAsString());
     assertEquals(0, serviceProvider.getRequestTokenCount());
     assertEquals(1, serviceProvider.getAccessTokenCount());
     assertEquals(3, serviceProvider.getResourceAccessCount());
   }
-  
+
   @Test
   public void testPreapprovedToken_invalid() throws Exception {
     HttpFetcher fetcher;
@@ -535,12 +499,10 @@
     HttpResponse response;
 
     OAuthArguments params = new OAuthArguments(
-        FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage",
-        "garbage");
-    
+        FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage", "garbage");
+
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     String clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -550,26 +512,22 @@
     serviceProvider.browserVisit(approvalUrl + "&user_data=hello-oauth");
 
     params = new OAuthArguments(
-        FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, "garbage",
-            "garbage");
-    
+        FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, "garbage", "garbage");
+
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
     clientState = response.getMetadata().get("oauthState");
-    
+
     params = new OAuthArguments(
-        FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, "garbage",
-            "garbage");
+        FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, "garbage", "garbage");
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
   }
-  
+
   @Test
   public void testPreapprovedToken_invalidWithOutClientState()
       throws Exception {
@@ -578,12 +536,10 @@
     HttpResponse response;
 
     OAuthArguments params = new OAuthArguments(
-        FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage",
-        "garbage");
-    
+        FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage", "garbage");
+
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     String clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -593,42 +549,38 @@
     serviceProvider.browserVisit(approvalUrl + "&user_data=hello-oauth");
 
     params = new OAuthArguments(
-        FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, "garbage",
-        "garbage");
-    
+        FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false, "garbage", "garbage");
+
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
     clientState = response.getMetadata().get("oauthState");
-    
+
     // Simulates a user leaving the page and then returning
     params = new OAuthArguments(
         FakeGadgetSpecFactory.SERVICE_NAME, null, null, false, "garbage",
         "garbage");
     fetcher = getFetcher(getSecurityToken("owner", "owner"), params);
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
   }
-  
+
   @Test
   public void testCachedResponse() throws Exception {
     HttpFetcher fetcher;
     HttpRequest request;
     HttpResponse response;
-    
+
     assertEquals(0, serviceProvider.getRequestTokenCount());
     assertEquals(0, serviceProvider.getAccessTokenCount());
     assertEquals(0, serviceProvider.getResourceAccessCount());
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     String clientState = response.getMetadata().get("oauthState");
     assertNotNull(clientState);
@@ -639,25 +591,22 @@
 
     fetcher = getFetcher(
         getSecurityToken("owner", "owner"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null,
-            clientState, false));
-    request = new HttpRequest(new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, clientState, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
 
     assertEquals(1, serviceProvider.getRequestTokenCount());
     assertEquals(1, serviceProvider.getAccessTokenCount());
     assertEquals(1, serviceProvider.getResourceAccessCount());
-    
+
     fetcher = getFetcher(
         getSecurityToken("owner", "somebody else"),
-        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null,
-            false));
-    request = new HttpRequest(
-        new URI(FakeOAuthServiceProvider.RESOURCE_URL));
+        new OAuthArguments(FakeGadgetSpecFactory.SERVICE_NAME, null, null, false));
+    request = new HttpRequest(Uri.parse(FakeOAuthServiceProvider.RESOURCE_URL));
     response = fetcher.fetch(request);
     assertEquals("User data is hello-oauth", response.getResponseAsString());
-    
+
     assertEquals(1, serviceProvider.getRequestTokenCount());
     assertEquals(1, serviceProvider.getAccessTokenCount());
     assertEquals(1, serviceProvider.getResourceAccessCount());