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