Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ProxyHandlerTest.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ProxyHandlerTest.java?rev=1178236&r1=1178235&r2=1178236&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ProxyHandlerTest.java (original) +++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ProxyHandlerTest.java Sun Oct 2 19:44:13 2011 @@ -18,17 +18,21 @@ */ package org.apache.shindig.gadgets.servlet; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; +import static org.easymock.EasyMock.capture; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.isA; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; import org.apache.shindig.common.EasyMockTestCase; import org.apache.shindig.common.uri.Uri; import org.apache.shindig.common.util.FakeTimeSource; import org.apache.shindig.config.ContainerConfig; import org.apache.shindig.gadgets.Gadget; -import org.apache.shindig.gadgets.GadgetBlacklist; import org.apache.shindig.gadgets.GadgetException; +import org.apache.shindig.gadgets.admin.GadgetAdminStore; import org.apache.shindig.gadgets.http.HttpRequest; import org.apache.shindig.gadgets.http.HttpResponse; import org.apache.shindig.gadgets.http.HttpResponseBuilder; @@ -44,15 +48,11 @@ import org.apache.shindig.gadgets.uri.Pr import org.apache.shindig.gadgets.uri.UriCommon.Param; import org.easymock.Capture; import org.easymock.EasyMock; -import static org.easymock.EasyMock.capture; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.isA; - import org.junit.Test; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import com.google.common.base.Objects; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; public class ProxyHandlerTest extends EasyMockTestCase { private final static String GADGET = "http://some/gadget.xml"; @@ -62,19 +62,18 @@ public class ProxyHandlerTest extends Ea public final RequestPipeline pipeline = mock(RequestPipeline.class); - private GadgetBlacklist gadgetBlacklist = mock(GadgetBlacklist.class); + private GadgetAdminStore gadgetAdminStore = mock(GadgetAdminStore.class); public CaptureRewriter rewriter = new CaptureRewriter(); public ResponseRewriterRegistry rewriterRegistry = new DefaultResponseRewriterRegistry(Arrays.<ResponseRewriter>asList(rewriter), null); private ProxyUriManager.ProxyUri request; private final ProxyHandler proxyHandler - = new ProxyHandler(pipeline, rewriterRegistry, true, gadgetBlacklist, LONG_LIVED_REFRESH); + = new ProxyHandler(pipeline, rewriterRegistry, true, gadgetAdminStore, LONG_LIVED_REFRESH); private void expectGetAndReturnData(String url, byte[] data) throws Exception { HttpRequest req = new HttpRequest(Uri.parse(url)); HttpResponse resp = new HttpResponseBuilder().setResponse(data).create(); - expect(gadgetBlacklist.isBlacklisted(isA(Uri.class))).andReturn(false); expect(pipeline.execute(req)).andReturn(resp); } @@ -82,10 +81,14 @@ public class ProxyHandlerTest extends Ea throws Exception { HttpRequest req = new HttpRequest(Uri.parse(url)); HttpResponse resp = new HttpResponseBuilder().addAllHeaders(headers).create(); - expect(gadgetBlacklist.isBlacklisted(isA(Uri.class))).andReturn(false); expect(pipeline.execute(req)).andReturn(resp); } - + + private void setupGadgetAdminMock(boolean isWhitelisted) { + expect(gadgetAdminStore.isWhitelisted(isA(String.class), isA(String.class))) + .andReturn(isWhitelisted); + } + private void setupProxyRequestMock(String host, String url, boolean noCache, int refresh, String rewriteMime, String fallbackUrl) throws Exception { request = new ProxyUriManager.ProxyUri( @@ -120,31 +123,31 @@ public class ProxyHandlerTest extends Ea } @Test - public void testBlacklistedGadget() throws Exception { + public void testNonWhitelistedGadget() throws Exception { String url = "http://example.org/mypage.html"; String domain = "example.org"; - String gadget = "http://blacklisted/gadget.xml"; setupProxyRequestMock(domain, url, true, -1, null, null); - expect(gadgetBlacklist.isBlacklisted(isA(Uri.class))).andReturn(true); + setupGadgetAdminMock(false); replay(); boolean exceptionCaught = false; try { proxyHandler.fetch(request); } catch (GadgetException e) { exceptionCaught = true; - assertEquals(GadgetException.Code.BLACKLISTED_GADGET, e.getCode()); + assertEquals(GadgetException.Code.NON_WHITELISTED_GADGET, e.getCode()); assertEquals(HttpResponse.SC_FORBIDDEN, e.getHttpStatusCode()); } assertTrue(exceptionCaught); verify(); } - + @Test public void testInvalidHeaderDropped() throws Exception { String url = "http://example.org/mypage.html"; String domain = "example.org"; setupProxyRequestMock(domain, url, true, -1, null, null); + setupGadgetAdminMock(true); HttpRequest req = new HttpRequest(Uri.parse(url)) .setIgnoreCache(true); @@ -172,7 +175,7 @@ public class ProxyHandlerTest extends Ea public void testLockedDomainEmbed() throws Exception { setupNoArgsProxyRequestMock("www.example.com", URL_ONE); expectGetAndReturnData(URL_ONE, DATA_ONE.getBytes()); - + setupGadgetAdminMock(true); replay(); HttpResponse response = proxyHandler.fetch(request); verify(); @@ -193,6 +196,7 @@ public class ProxyHandlerTest extends Ea @Test public void testHttpRequestFillsParentAndContainer() throws Exception { setupNoArgsProxyRequestMock("www.example.com", URL_ONE); + setupGadgetAdminMock(true); //HttpRequest req = new HttpRequest(Uri.parse(URL_ONE)); HttpResponse resp = new HttpResponseBuilder().setResponse(DATA_ONE.getBytes()).create(); @@ -223,6 +227,7 @@ public class ProxyHandlerTest extends Ea headers.put("X-Magic-Garbage", Arrays.asList(magicGarbage)); setupNoArgsProxyRequestMock(domain, url); + setupGadgetAdminMock(true); expectGetAndReturnHeaders(url, headers); replay(); @@ -240,6 +245,7 @@ public class ProxyHandlerTest extends Ea String domain = "example.org"; setupNoArgsProxyRequestMock(domain, url); + setupGadgetAdminMock(true); expectGetAndReturnHeaders(url, Maps.<String, List<String>>newHashMap()); replay(); @@ -253,11 +259,13 @@ public class ProxyHandlerTest extends Ea @Test public void testNoContentDispositionForFlash() throws Exception { + setupGadgetAdminMock(true); assertNoContentDispositionForFlash("application/x-shockwave-flash"); } @Test public void testNoContentDispositionForFlashUtf8() throws Exception { + setupGadgetAdminMock(true); assertNoContentDispositionForFlash("application/x-shockwave-flash;charset=utf-8"); } @@ -287,6 +295,7 @@ public class ProxyHandlerTest extends Ea String fallback_url = "http://fallback.com/fallback.png"; setupProxyRequestMock(domain, url, true, -1, null, fallback_url); + setupGadgetAdminMock(true); HttpRequest req = new HttpRequest(Uri.parse(url)).setIgnoreCache(true); HttpResponse resp = HttpResponse.error(); @@ -305,6 +314,7 @@ public class ProxyHandlerTest extends Ea String domain = "example.org"; setupProxyRequestMock(domain, url, true, -1, null, null); + setupGadgetAdminMock(true); HttpRequest req = new HttpRequest(Uri.parse(url)).setIgnoreCache(true); HttpResponse resp = new HttpResponse("Hello"); @@ -322,6 +332,7 @@ public class ProxyHandlerTest extends Ea String domain = "example.org"; setupProxyRequestMock(domain, url, true, -1, null, null); + setupGadgetAdminMock(true); String contentType = "text/html; charset=UTF-8"; HttpResponse resp = new HttpResponseBuilder() @@ -329,7 +340,6 @@ public class ProxyHandlerTest extends Ea .addHeader("Content-Type", contentType) .create(); - expect(gadgetBlacklist.isBlacklisted(isA(Uri.class))).andReturn(false); expect(pipeline.execute((HttpRequest) EasyMock.anyObject())).andReturn(resp); replay(); @@ -340,7 +350,7 @@ public class ProxyHandlerTest extends Ea ResponseRewriterRegistry rewriterRegistry = new DefaultResponseRewriterRegistry( Arrays.<ResponseRewriter>asList(rewriter), null); - ProxyHandler proxyHandler = new ProxyHandler(pipeline, rewriterRegistry, true, gadgetBlacklist, + ProxyHandler proxyHandler = new ProxyHandler(pipeline, rewriterRegistry, true, gadgetAdminStore, LONG_LIVED_REFRESH); request.setReturnOriginalContentOnError(true); @@ -361,6 +371,7 @@ public class ProxyHandlerTest extends Ea String domain = "example.org"; setupProxyRequestMock(domain, url, true, -1, null, null); + setupGadgetAdminMock(true); String contentType = "text/html; charset=UTF-8"; HttpResponse resp = new HttpResponseBuilder() @@ -368,7 +379,6 @@ public class ProxyHandlerTest extends Ea .addHeader("Content-Type", contentType) .create(); - expect(gadgetBlacklist.isBlacklisted(isA(Uri.class))).andReturn(false); expect(pipeline.execute((HttpRequest) EasyMock.anyObject())).andReturn(resp); replay(); @@ -379,7 +389,7 @@ public class ProxyHandlerTest extends Ea ResponseRewriterRegistry rewriterRegistry = new DefaultResponseRewriterRegistry( Arrays.<ResponseRewriter>asList(rewriter), null); - ProxyHandler proxyHandler = new ProxyHandler(pipeline, rewriterRegistry, true, gadgetBlacklist, + ProxyHandler proxyHandler = new ProxyHandler(pipeline, rewriterRegistry, true, gadgetAdminStore, LONG_LIVED_REFRESH); boolean exceptionCaught = false; @@ -427,6 +437,7 @@ public class ProxyHandlerTest extends Ea HttpResponse.setTimeSource(new FakeTimeSource()); setupProxyRequestMock(domain, url, false, 120, null, null); + setupGadgetAdminMock(true); HttpRequest req = new HttpRequestCache(Uri.parse(url)).setCacheTtl(120).setIgnoreCache(false); HttpResponseBuilder resp = new HttpResponseBuilder().setCacheTtl(1234); @@ -446,6 +457,7 @@ public class ProxyHandlerTest extends Ea HttpResponse.setTimeSource(new FakeTimeSource()); setupProxyRequestMock(domain, url, false, -1, null, null); + setupGadgetAdminMock(true); HttpRequest req = new HttpRequestCache(Uri.parse(url)).setCacheTtl(-1).setIgnoreCache(false); HttpResponseBuilder resp = new HttpResponseBuilder().setCacheTtl(1234); @@ -465,6 +477,7 @@ public class ProxyHandlerTest extends Ea String domain = "example.org"; setupProxyRequestMock(domain, url, false, -1, expectedMime, null); + setupGadgetAdminMock(true); HttpRequest req = new HttpRequest(Uri.parse(url)) .setRewriteMimeType(expectedMime);
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/tags/TemplateBasedTagHandlerTest.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/tags/TemplateBasedTagHandlerTest.java?rev=1178236&r1=1178235&r2=1178236&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/tags/TemplateBasedTagHandlerTest.java (original) +++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/templates/tags/TemplateBasedTagHandlerTest.java Sun Oct 2 19:44:13 2011 @@ -18,10 +18,18 @@ */ package org.apache.shindig.gadgets.templates.tags; +import static org.junit.Assert.assertEquals; + +import java.io.IOException; + +import javax.el.ELResolver; + import org.apache.shindig.common.PropertiesModule; import org.apache.shindig.expressions.RootELResolver; +import org.apache.shindig.gadgets.DefaultGuiceModule; import org.apache.shindig.gadgets.Gadget; import org.apache.shindig.gadgets.GadgetException; +import org.apache.shindig.gadgets.admin.GadgetAdminModule; import org.apache.shindig.gadgets.oauth.OAuthModule; import org.apache.shindig.gadgets.parse.DefaultHtmlSerializer; import org.apache.shindig.gadgets.parse.GadgetHtmlParser; @@ -29,12 +37,6 @@ import org.apache.shindig.gadgets.parse. import org.apache.shindig.gadgets.templates.TagRegistry; import org.apache.shindig.gadgets.templates.TemplateContext; import org.apache.shindig.gadgets.templates.TemplateProcessor; -import org.apache.shindig.gadgets.DefaultGuiceModule; - -import com.google.common.collect.ImmutableSet; -import com.google.inject.Guice; -import com.google.inject.Injector; -import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -44,8 +46,9 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import javax.el.ELResolver; -import java.io.IOException; +import com.google.common.collect.ImmutableSet; +import com.google.inject.Guice; +import com.google.inject.Injector; /** * Tests the behavior of template-based tag handlers. @@ -61,7 +64,8 @@ public class TemplateBasedTagHandlerTest @Before public void setUp() throws Exception { - Injector injector = Guice.createInjector(new DefaultGuiceModule(), new OAuthModule(), new PropertiesModule()); + Injector injector = Guice.createInjector(new GadgetAdminModule(), new DefaultGuiceModule(), + new OAuthModule(), new PropertiesModule()); parser = injector.getInstance(GadgetHtmlParser.class); processor = injector.getInstance(TemplateProcessor.class); context = new TemplateContext(new Gadget(), null); Modified: shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/integration/JpaTestGuiceModule.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/integration/JpaTestGuiceModule.java?rev=1178236&r1=1178235&r2=1178236&view=diff ============================================================================== --- shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/integration/JpaTestGuiceModule.java (original) +++ shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/integration/JpaTestGuiceModule.java Sun Oct 2 19:44:13 2011 @@ -20,9 +20,12 @@ package org.apache.shindig.social.openso import javax.persistence.EntityManager; +import net.oauth.OAuthConsumer; + import org.apache.shindig.auth.SecurityToken; import org.apache.shindig.common.PropertiesModule; import org.apache.shindig.gadgets.DefaultGuiceModule; +import org.apache.shindig.gadgets.admin.GadgetAdminModule; import org.apache.shindig.gadgets.oauth.OAuthModule; import org.apache.shindig.social.core.config.SocialApiGuiceModule; import org.apache.shindig.social.opensocial.jpa.AccountDb; @@ -53,8 +56,6 @@ import org.apache.shindig.social.opensoc import com.google.inject.AbstractModule; -import net.oauth.OAuthConsumer; - /** * Provides component injection for tests * Injects Social API and JPA persistence guice modules @@ -75,6 +76,7 @@ public class JpaTestGuiceModule extends @Override protected void configure() { install(new PropertiesModule()); + install(new GadgetAdminModule()); install(new DefaultGuiceModule()); install(new SocialApiGuiceModule()); install(new OAuthModule()); Modified: shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml?rev=1178236&r1=1178235&r2=1178236&view=diff ============================================================================== --- shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml (original) +++ shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml Sun Oct 2 19:44:13 2011 @@ -38,7 +38,8 @@ org.apache.shindig.common.cache.ehcache.EhCacheModule: org.apache.shindig.sample.shiro.ShiroGuiceModule: org.apache.shindig.sample.container.SampleContainerGuiceModule: - org.apache.shindig.extras.ShindigExtrasGuiceModule + org.apache.shindig.extras.ShindigExtrasGuiceModule: + org.apache.shindig.gadgets.admin.GadgetAdminModule </param-value> </context-param> Modified: shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java?rev=1178236&r1=1178235&r2=1178236&view=diff ============================================================================== --- shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java (original) +++ shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java Sun Oct 2 19:44:13 2011 @@ -22,6 +22,7 @@ import org.apache.shindig.auth.Authentic import org.apache.shindig.common.PropertiesModule; import org.apache.shindig.common.servlet.GuiceServletContextListener; import org.apache.shindig.gadgets.DefaultGuiceModule; +import org.apache.shindig.gadgets.admin.GadgetAdminModule; import org.apache.shindig.gadgets.oauth.OAuthModule; import org.apache.shindig.gadgets.servlet.ConcatProxyServlet; import org.apache.shindig.gadgets.servlet.GadgetRenderingServlet; @@ -122,7 +123,8 @@ public class EndToEndServer { Map<String, String> initParams = Maps.newHashMap(); String modules = Joiner.on(":") .join(SocialApiGuiceModule.class.getName(), - SampleModule.class.getName(), + SampleModule.class.getName(), + GadgetAdminModule.class.getName(), DefaultGuiceModule.class.getName(), PropertiesModule.class.getName(), OAuthModule.class.getName()
