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