Author: awiner
Date: Thu Jul  2 22:02:26 2009
New Revision: 790747

URL: http://svn.apache.org/viewvc?rev=790747&view=rev
Log:
Support multiple template libraries in the client
- Patch from Lev Epshteyn, minutely modified (removed TODO that this does)

Modified:
    
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-templates/container.js
    
incubator/shindig/trunk/features/src/test/javascript/features/opensocial-templates/container_test.js

Modified: 
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-templates/container.js
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/opensocial-templates/container.js?rev=790747&r1=790746&r2=790747&view=diff
==============================================================================
--- 
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-templates/container.js
 (original)
+++ 
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-templates/container.js
 Thu Jul  2 22:02:26 2009
@@ -373,10 +373,15 @@
     os.Container.autoProcess_ = false;
   }
   
-  // Honor the "requireLibrary" feature param.
-  // TODO: Support multiple params when Shindig does.
+  // Honor the "requireLibrary" feature param(s).
   if (params.requireLibrary) {
-    os.Container.addRequiredLibrary(params.requireLibrary);
+    if (typeof params.requireLibrary == "string") {
+      os.Container.addRequiredLibrary(params.requireLibrary);
+    } else {
+      for (var i = 0; i < params.requireLibrary.length; i++) {
+        os.Container.addRequiredLibrary(params.requireLibrary[i]);
+      }
+    }
   }  
 };
 

Modified: 
incubator/shindig/trunk/features/src/test/javascript/features/opensocial-templates/container_test.js
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/test/javascript/features/opensocial-templates/container_test.js?rev=790747&r1=790746&r2=790747&view=diff
==============================================================================
--- 
incubator/shindig/trunk/features/src/test/javascript/features/opensocial-templates/container_test.js
 (original)
+++ 
incubator/shindig/trunk/features/src/test/javascript/features/opensocial-templates/container_test.js
 Thu Jul  2 22:02:26 2009
@@ -30,3 +30,31 @@
   assertNotNull(el);
   assertEquals('tag template', domutil.getVisibleText(el));
 }
+
+function testRequireLibrary() {
+  var params = {};
+  var oldGadgets = window.gadgets;
+  
+  window.gadgets = {};
+  window.gadgets.io = {};
+  window.gadgets.io.makeRequest = function() {};
+  window.gadgets.io.RequestParameters = { CONTENT_TYPE: 1 };
+  window.gadgets.io.ContentType = { TEXT: 1 };
+  window.gadgets.util = {};  
+  window.gadgets.util.getFeatureParameters = function() {
+    return params;
+  };
+  
+  params.requireLibrary = "foo";
+  os.Container.requiredLibraries_ = 0;
+  os.Container.processGadget();
+  assertEquals(1, os.Container.requiredLibraries_);
+
+  params.requireLibrary = [ "baz", "bing" ];
+  os.Container.requiredLibraries_ = 0;
+  os.Container.processGadget();
+  assertEquals(2, os.Container.requiredLibraries_);
+
+  
+  window.gadgets = oldGadgets;
+}
\ No newline at end of file


Reply via email to