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/10/28 20:13:08 UTC
svn commit: r708636 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/preload/HttpPreloader.java
test/java/org/apache/shindig/gadgets/preload/HttpPreloaderTest.java
Author: etnu
Date: Tue Oct 28 12:13:08 2008
New Revision: 708636
URL: http://svn.apache.org/viewvc?rev=708636&view=rev
Log:
Fixed view discrimination in preloader.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/HttpPreloader.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/preload/HttpPreloaderTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/HttpPreloader.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/HttpPreloader.java?rev=708636&r1=708635&r2=708636&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/HttpPreloader.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/HttpPreloader.java Tue Oct 28 12:13:08 2008
@@ -35,6 +35,7 @@
import org.json.JSONObject;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.Callable;
/**
@@ -56,7 +57,10 @@
Map<String, Callable<PreloadedData>> preloads = Maps.newHashMap();
for (Preload preload : gadget.getModulePrefs().getPreloads()) {
- preloads.put(preload.getHref().toString(), new PreloadTask(context, preload));
+ Set<String> preloadViews = preload.getViews();
+ if (preloadViews.isEmpty() || preloadViews.contains(context.getView())) {
+ preloads.put(preload.getHref().toString(), new PreloadTask(context, preload));
+ }
}
return preloads;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/preload/HttpPreloaderTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/preload/HttpPreloaderTest.java?rev=708636&r1=708635&r2=708636&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/preload/HttpPreloaderTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/preload/HttpPreloaderTest.java Tue Oct 28 12:13:08 2008
@@ -20,6 +20,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.apache.shindig.auth.SecurityToken;
@@ -52,7 +53,7 @@
*/
public class HttpPreloaderTest {
private static final String PRELOAD_HREF = "http://www.example.org/file";
- private static final String PRELOAD_HREF2 = "http://www.example.org/file";
+ private static final String PRELOAD_HREF2 = "http://www.example.org/file-two";
private static final String PRELOAD_CONTENT = "Preloaded data";
private static final String CONTAINER = "some-container";
private static final Uri GADGET_URL = Uri.parse("http://example.org/gadget.xml");
@@ -182,6 +183,48 @@
checkResults((JSONObject) data.toJson());
}
+ @Test
+ public void onlyPreloadForCorrectView() throws Exception {
+ String xml =
+ "<Module><ModulePrefs title=''>" +
+ " <Preload href='" + PRELOAD_HREF + "' views='foo,bar,baz'/>" +
+ " <Preload href='" + PRELOAD_HREF2 + "' views='bar'/>" +
+ "</ModulePrefs><Content/></Module>";
+ GadgetSpec gadget = new GadgetSpec(GADGET_URL, xml);
+ Preloader preloader = new HttpPreloader(fetchers);
+
+ GadgetContext fooViewContext = new GadgetContext() {
+ @Override
+ public SecurityToken getToken() {
+ return new FakeGadgetToken();
+ }
+
+ @Override
+ public String getContainer() {
+ return CONTAINER;
+ }
+
+ @Override
+ public URI getUrl() {
+ return GADGET_URL.toJavaUri();
+ }
+
+ @Override
+ public String getView() {
+ return "foo";
+ }
+ };
+
+ Map<String, Callable<PreloadedData>> preloaded
+ = preloader.createPreloadTasks(fooViewContext, gadget);
+
+ PreloadedData data = preloaded.get(PRELOAD_HREF).call();
+ checkRequest(plainFetcher.requests.get(0));
+ checkResults((JSONObject) data.toJson());
+
+ assertNull("Preloaded an item that should not have been.", preloaded.get(PRELOAD_HREF2));
+ }
+
private static class RecordingHttpFetcher implements HttpFetcher {
private final List<HttpRequest> requests = Lists.newArrayList();