You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2012/02/23 21:21:16 UTC
svn commit: r1292940 - in /shindig/trunk: config/
features/src/main/javascript/features/container/
java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/
java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/
java/gadgets/src/test/java/or...
Author: rbaxter85
Date: Thu Feb 23 20:21:15 2012
New Revision: 1292940
URL: http://svn.apache.org/viewvc?rev=1292940&view=rev
Log:
SHINDIG-1709
The RPC abritration code in the common container should allow you to pass in a list of allowed RPC services for that container
Added:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/RpcAdminData.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/RpcAdminDataTest.java
Modified:
shindig/trunk/config/gadget-admin.json
shindig/trunk/features/src/main/javascript/features/container/container.js
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStore.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminData.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminStore.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStoreTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ContainerAdminDataTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/GadgetAdminDataTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ServerAdminDataTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java
Modified: shindig/trunk/config/gadget-admin.json
URL: http://svn.apache.org/viewvc/shindig/trunk/config/gadget-admin.json?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/config/gadget-admin.json (original)
+++ shindig/trunk/config/gadget-admin.json Thu Feb 23 20:21:15 2012
@@ -21,20 +21,31 @@
"default" : {
"gadgets" : {
"http://www.google.com/ig/modules/horoscope.xml" : {
- "features" : ["views", "tabs", "setprefs", "dynamic-height"],
- "type" : "blacklist"
+ "features" : {
+ "names" : ["views", "tabs", "setprefs", "dynamic-height"],
+ "type" : "blacklist"
+ }
},
"http://www.labpixies.com/campaigns/todo/todo.xml" : {
- "features" : ["setprefs", "dynamic-height", "views"],
- "type" : "whitelist"
+ "features" : {
+ "names" : ["setprefs", "dynamic-height", "views"],
+ "type" : "whitelist"
+ }
},
"http://localhost:8080/samplecontainer/examples/media-openGadgets/Media.xml" : {
- "features" : [],
- "type" : "blacklist"
+ "features" : {
+ "names" : [],
+ "type" : "blacklist"
+ }
},
"http://localhost:8080/*" : {
- "features" : [],
- "type" : "whitelist"
+ "features" : {
+ "names" : [],
+ "type" : "whitelist"
+ },
+ "rpc" : {
+ "additionalServiceIds" : []
+ }
}
}
}
Modified: shindig/trunk/features/src/main/javascript/features/container/container.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container/container.js?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container/container.js (original)
+++ shindig/trunk/features/src/main/javascript/features/container/container.js Thu Feb 23 20:21:15 2012
@@ -663,7 +663,7 @@ osapi.container.Container.prototype.setu
config, osapi.container.ContainerConfig.RPC_ARBITRATOR, null);
if(!arbitrate) {
var self = this;
- //This implementation uses the metadata cache to check to allowed rpc service ids
+ //This implementation uses the metadata cache to check for allowed rpc service ids
arbitrate = function(serviceId, from) {
var site = self.getGadgetSiteByIframeId_(from);
if(site && site.getActiveSiteHolder()) {
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStore.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStore.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStore.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStore.java Thu Feb 23 20:21:15 2012
@@ -48,7 +48,7 @@ import com.google.inject.Singleton;
/**
* A simple implementation of a gadget administration store.
*
- * @version $Id: $
+ * @since 2.5.0
*/
@Singleton
public class BasicGadgetAdminStore implements GadgetAdminStore {
@@ -63,7 +63,10 @@ public class BasicGadgetAdminStore imple
private static final String GADGETS = "gadgets";
private static final String FEATURES = "features";
+ private static final String FEATURES_NAMES = "names";
private static final String TYPE = "type";
+ private static final String RPC = "rpc";
+ private static final String ADDITIONAL_RPC_SERVICE_IDS = "additionalServiceIds";
private static final String BLACKLIST = "blacklist";
private static final String CORE_FEATURE = "core";
@@ -126,6 +129,25 @@ public class BasicGadgetAdminStore imple
}
/**
+ * Creates an RpcAdminData object from a JSON object.
+ *
+ * @param rpcJson
+ * the JSON object representing the RPC admin data.
+ * @return an RpcAdminData object.
+ * @throws JSONException thrown when the RpcAdminData object cannot be created.
+ */
+ private RpcAdminData createRpcAdminData(JSONObject rpcJson) throws JSONException {
+ RpcAdminData adminData = new RpcAdminData();
+ if(rpcJson.has(ADDITIONAL_RPC_SERVICE_IDS)) {
+ JSONArray ids = rpcJson.getJSONArray(ADDITIONAL_RPC_SERVICE_IDS);
+ for(int i = 0; i < ids.length(); i++) {
+ adminData.addAdditionalRpcServiceId(ids.getString(i));
+ }
+ }
+ return adminData;
+ }
+
+ /**
* Creates a map of gadget administration data.
*
* @param gadgetsJson
@@ -158,9 +180,29 @@ public class BasicGadgetAdminStore imple
* thrown when the information cannot found in the JSON object.
*/
private GadgetAdminData createGadgetAdminData(JSONObject gadgetJson) throws JSONException {
+ FeatureAdminData featureData = new FeatureAdminData();
+ RpcAdminData rpcData = new RpcAdminData();
+ if(gadgetJson.has(FEATURES)) {
+ featureData = createFeatureAdminData(gadgetJson.getJSONObject(FEATURES));
+ }
+ if(gadgetJson.has(RPC)) {
+ rpcData = createRpcAdminData(gadgetJson.getJSONObject(RPC));
+ }
+ return new GadgetAdminData(featureData, rpcData);
+ }
+
+ /**
+ * Creates the feature admin data.
+ *
+ * @param featuresJson
+ * The JSON object representing the feature admin data.
+ * @return Feature admin data.
+ * @throws JSONException Thrown when the JSON cannot be parsed.
+ */
+ private FeatureAdminData createFeatureAdminData(JSONObject featuresJson) throws JSONException {
FeatureAdminData data = new FeatureAdminData();
- if (gadgetJson.has(FEATURES)) {
- JSONArray features = gadgetJson.getJSONArray(FEATURES);
+ if (featuresJson.has(FEATURES_NAMES)) {
+ JSONArray features = featuresJson.getJSONArray(FEATURES_NAMES);
for (int i = 0; i < features.length(); i++) {
data.addFeature(features.getString(i));
}
@@ -171,15 +213,15 @@ public class BasicGadgetAdminStore imple
// Add the core feature since every gadget needs this and it can't be disabled
data.addFeature(CORE_FEATURE);
}
- if (gadgetJson.has(TYPE)) {
- String type = gadgetJson.getString(TYPE);
+ if (featuresJson.has(TYPE)) {
+ String type = featuresJson.getString(TYPE);
if (type.equalsIgnoreCase(BLACKLIST)) {
data.setType(Type.BLACKLIST);
//We need core for everything so remove it if it is blacklisted
data.removeFeature(CORE_FEATURE);
}
}
- return new GadgetAdminData(data);
+ return data;
}
public GadgetAdminData getGadgetAdminData(String container, String gadgetUrl) {
@@ -404,4 +446,14 @@ public class BasicGadgetAdminStore imple
private boolean isFeatureAdminEnabled(String container) {
return config.getBool(container, ENABLE_FEATURE_ADMIN);
}
+
+ public Set<String> getAdditionalRpcServiceIds(Gadget gadget) {
+ GadgetAdminData gadgetData = this.getGadgetAdminData(getSafeContainerFromGadget(gadget),
+ getSafeGadgetUrlFromGadget(gadget));
+ Set<String> ids = Sets.newHashSet();
+ if(gadgetData != null) {
+ ids.addAll(gadgetData.getRpcAdminData().getAdditionalRpcServiceIds());
+ }
+ return ids;
+ }
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminData.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminData.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminData.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminData.java Thu Feb 23 20:21:15 2012
@@ -23,18 +23,20 @@ import com.google.common.base.Objects;
/**
* Information about the container's administration data.
*
- * @version 3.0.0
+ * @since 2.5.0
*/
public class GadgetAdminData {
// In the future as more gadget admin data is created we
// should add it here.
private FeatureAdminData featureAdminData;
+ private RpcAdminData rpcAdminData;
/**
* Constructor
*/
public GadgetAdminData() {
this.featureAdminData = new FeatureAdminData();
+ this.rpcAdminData = new RpcAdminData();
}
/**
@@ -42,12 +44,19 @@ public class GadgetAdminData {
*
* @param featureAdminData
* Feature administration data for this gadget
+ * @param rpcAdminData
+ * RPC administration data for this gadget
*/
- public GadgetAdminData(FeatureAdminData featureAdminData) {
+ public GadgetAdminData(FeatureAdminData featureAdminData,
+ RpcAdminData rpcAdminData) {
if (featureAdminData == null) {
featureAdminData = new FeatureAdminData();
}
+ if (rpcAdminData == null) {
+ rpcAdminData = new RpcAdminData();
+ }
this.featureAdminData = featureAdminData;
+ this.rpcAdminData = rpcAdminData;
}
/**
@@ -66,20 +75,46 @@ public class GadgetAdminData {
* the feature admin data to set.
*/
public void setFeatureAdminData(FeatureAdminData featureAdminData) {
+ if(featureAdminData == null) {
+ featureAdminData = new FeatureAdminData();
+ }
this.featureAdminData = featureAdminData;
}
+ /**
+ * Gets the RPC administration data.
+ *
+ * @return
+ */
+ public RpcAdminData getRpcAdminData() {
+ return this.rpcAdminData;
+ }
+
+ /**
+ * Sets the RPC administration data.
+ *
+ * @param rpcAdminData
+ * The RPC administration data to set.
+ */
+ public void setRpcAdminData(RpcAdminData rpcAdminData) {
+ if(rpcAdminData == null) {
+ rpcAdminData = new RpcAdminData();
+ }
+ this.rpcAdminData = rpcAdminData;
+ }
+
@Override
public boolean equals(Object obj) {
if (obj instanceof GadgetAdminData) {
GadgetAdminData test = (GadgetAdminData) obj;
- return this.getFeatureAdminData().equals(test.getFeatureAdminData());
+ return this.getFeatureAdminData().equals(test.getFeatureAdminData()) &&
+ this.getRpcAdminData().equals(test.getRpcAdminData());
}
return false;
}
@Override
public int hashCode() {
- return Objects.hashCode(this.featureAdminData);
+ return Objects.hashCode(this.featureAdminData, this.rpcAdminData);
}
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminStore.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminStore.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminStore.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/GadgetAdminStore.java Thu Feb 23 20:21:15 2012
@@ -18,6 +18,8 @@
*/
package org.apache.shindig.gadgets.admin;
+import java.util.Set;
+
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.spec.Feature;
@@ -110,4 +112,12 @@ public interface GadgetAdminStore {
*/
public boolean isWhitelisted(String container, String gadgetUrl);
+ /**
+ * Gets additional RPC service IDs to allow for the gadget.
+ *
+ * @param gadget
+ * The gadget to get the IDs for.
+ * @return The set of additional RPC service IDs to allow for the gadget.
+ */
+ public Set<String> getAdditionalRpcServiceIds(Gadget gadget);
}
Added: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/RpcAdminData.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/RpcAdminData.java?rev=1292940&view=auto
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/RpcAdminData.java (added)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/admin/RpcAdminData.java Thu Feb 23 20:21:15 2012
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets.admin;
+
+import java.util.Set;
+
+import com.google.caja.util.Sets;
+import com.google.common.base.Objects;
+
+/**
+ * Represents RPC administration data.
+ *
+ * @since 2.5.0
+ */
+public class RpcAdminData {
+
+ private Set<String> additionalRpcServiceIds;
+
+ public RpcAdminData() {
+ this.additionalRpcServiceIds = Sets.newHashSet();
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param additionalRpcServiceIds
+ * Additional RPC service IDs to allow for the container.
+ */
+ public RpcAdminData(Set<String> additionalRpcServiceIds) {
+ if (additionalRpcServiceIds == null) {
+ additionalRpcServiceIds = Sets.newHashSet();
+ }
+ this.additionalRpcServiceIds = additionalRpcServiceIds;
+ }
+
+ /**
+ * Gets the additional RPC service IDs allowed for the container.
+ *
+ * @return The additional RPC service IDs allowed for the container.
+ */
+ public Set<String> getAdditionalRpcServiceIds() {
+ return additionalRpcServiceIds;
+ }
+
+ /**
+ * Sets the additional RPC service IDs allowed for the container.
+ *
+ * @param ids
+ * The additional RPC service IDs to allow for the container.
+ */
+ public void setAdditionalRpcServiceIds(Set<String> ids) {
+ if(ids == null) {
+ ids = Sets.newHashSet();
+ }
+ this.additionalRpcServiceIds = ids;
+ }
+
+ /**
+ * Adds an additional RPC service ID for the container.
+ *
+ * @param id
+ * The additional RPC service ID to allow for this container.
+ */
+ public void addAdditionalRpcServiceId(String id) {
+ if (id != null && id.length() > 0) {
+ this.additionalRpcServiceIds.add(id);
+ }
+ }
+
+ /**
+ * Removes a RPC service ID for the container.
+ *
+ * @param id
+ * The RPC service ID to remove for this container.
+ */
+ public void removeAdditionalRpcServiceId(String id) {
+ this.additionalRpcServiceIds.remove(id);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof RpcAdminData) {
+ RpcAdminData test = (RpcAdminData) obj;
+ return test.getAdditionalRpcServiceIds().equals(this.getAdditionalRpcServiceIds());
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(this.additionalRpcServiceIds);
+ }
+}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java Thu Feb 23 20:21:15 2012
@@ -234,7 +234,7 @@ public class GadgetsHandlerService {
*/
private Set<String> getRpcServiceIds(Gadget gadget) {
GadgetContext context = gadget.getContext();
- Set<String> rpcEndpoints = Sets.newHashSet();
+ Set<String> rpcEndpoints = Sets.newHashSet(gadgetAdminStore.getAdditionalRpcServiceIds(gadget));
List<Feature> modulePrefFeatures = gadget.getSpec().getModulePrefs().getAllFeatures();
List<String> featureNames = Lists.newArrayList();
for(Feature feature : modulePrefFeatures) {
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStoreTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStoreTest.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStoreTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/BasicGadgetAdminStoreTest.java Thu Feb 23 20:21:15 2012
@@ -54,15 +54,25 @@ public class BasicGadgetAdminStoreTest e
private static final String SAMPLE_STORE = "{" + "\"default\" : {" + "\"gadgets\" : {"
+ "\"http://www.google.com:80/ig/modules/horoscope.xml\" : {"
- + "\"features\" : [\"views\", \"tabs\", \"setprefs\", \"dynamic-height\", \"settitle\"],"
- + "\"type\" : \"whitelist\"" + "},"
+ + "\"features\" : {"
+ + "\"names\" : [\"views\", \"tabs\", \"setprefs\", \"dynamic-height\", \"settitle\"],"
+ + "\"type\" : \"whitelist\"" + "}},"
+ "\"http://www.labpixies.com/campaigns/todo/todo.xml\" : {"
- + "\"features\" : [\"setprefs\", \"dynamic-height\", \"views\"],"
- + "\"type\" : \"blacklist\"" + "},"
+ + "\"features\" : {"
+ + "\"names\" : [\"setprefs\", \"dynamic-height\", \"views\"],"
+ + "\"type\" : \"blacklist\"" + "}},"
+ "\"https://foo.com/*\" : {"
- + "\"features\" : []" + "},"
+ + "\"features\" : {"
+ + "\"names\" : []" + "}},"
+ "\"http://*\" : {"
- + "\"features\" : []," + "\"type\" : \"whitelist\"" + "},"+ "}" + "}" + "}";
+ + "\"features\" : {"
+ + "\"names\" : [],"
+ + "\"type\" : \"whitelist\""
+ + "},"
+ + "\"rpc\" : {"
+ + "\"additionalServiceIds\" : [\"rpc1\", \"rpc2\"]"
+ +"}}}"
+ + "}}";
private static final String DEFAULT = "default";
private static final String HOROSCOPE = "http://www.google.com/ig/modules/horoscope.xml";
@@ -93,6 +103,7 @@ public class BasicGadgetAdminStoreTest e
private GadgetAdminData httpAdminData;
private ContainerAdminData defaultAdminData;
private FeatureRegistryProvider featureRegistryProvider;
+ private RpcAdminData rpcAdminData;
@Before
public void setUp() throws Exception {
@@ -101,6 +112,9 @@ public class BasicGadgetAdminStoreTest e
return mockRegistry;
}
};
+
+ rpcAdminData = new RpcAdminData(Sets.newHashSet("rpc1", "rpc2"));
+
enabledStore = new BasicGadgetAdminStore(featureRegistryProvider, enabledConfig,
new ServerAdminData());
enabledStore.init(SAMPLE_STORE);
@@ -109,13 +123,13 @@ public class BasicGadgetAdminStoreTest e
new ServerAdminData());
horoscopeAdminData = new GadgetAdminData(new FeatureAdminData(HOROSCOPE_FEATURES,
- Type.WHITELIST));
+ Type.WHITELIST), new RpcAdminData());
todoAdminData = new GadgetAdminData(new FeatureAdminData(TODO_FEATURES,
- Type.BLACKLIST));
+ Type.BLACKLIST), new RpcAdminData());
fooAdminData = new GadgetAdminData(new FeatureAdminData(FOO_FEATURES,
- Type.WHITELIST));
+ Type.WHITELIST), new RpcAdminData());
httpAdminData = new GadgetAdminData(new FeatureAdminData(HTTP_FEATURES,
- Type.WHITELIST));
+ Type.WHITELIST), rpcAdminData);
defaultAdminData = new ContainerAdminData();
defaultAdminData.addGadgetAdminData(TODO, todoAdminData);
@@ -131,6 +145,7 @@ public class BasicGadgetAdminStoreTest e
horoscopeAdminData = null;
todoAdminData = null;
defaultAdminData = null;
+ rpcAdminData = null;
}
private void mockGadget(List<Feature> allFeatures) {
@@ -254,7 +269,7 @@ public class BasicGadgetAdminStoreTest e
createMockFeature(gadgetRequiredFeatureNames.get(1), true),
createMockFeature(gadgetRequiredFeatureNames.get(2), true));
enabledStore.getContainerAdminData(DEFAULT).addGadgetAdminData(TEST_GADGET,
- new GadgetAdminData(data));
+ new GadgetAdminData(data, null));
mockRegistryForFeatureAdmin(features, featuresAndDeps,
allGadgetFeatures, gadgetRequiredFeatureNames);
mockGadget(allFeatures);
@@ -276,7 +291,7 @@ public class BasicGadgetAdminStoreTest e
createMockFeature(gadgetRequiredFeatureNames.get(1), true),
createMockFeature(gadgetRequiredFeatureNames.get(2), true));
enabledStore.getContainerAdminData(DEFAULT).addGadgetAdminData(TEST_GADGET,
- new GadgetAdminData(data));
+ new GadgetAdminData(data, null));
mockRegistryForFeatureAdmin(features, featuresAndDeps,
allGadgetFeatures, gadgetRequiredFeatureNames);
mockGadget(allFeatures);
@@ -297,7 +312,7 @@ public class BasicGadgetAdminStoreTest e
createMockFeature(gadgetRequiredFeatureNames.get(1), true));
FeatureAdminData data = new FeatureAdminData(features,Type.WHITELIST);
enabledStore.getContainerAdminData(DEFAULT).addGadgetAdminData(TEST_GADGET,
- new GadgetAdminData(data));
+ new GadgetAdminData(data, new RpcAdminData()));
mockRegistryForFeatureAdmin(features, featuresAndDeps,
allGadgetFeatures, gadgetRequiredFeatureNames);
mockGadget(allFeatures);
@@ -319,7 +334,7 @@ public class BasicGadgetAdminStoreTest e
createMockFeature(gadgetRequiredFeatureNames.get(2), true));
FeatureAdminData data = new FeatureAdminData(features,Type.WHITELIST);
enabledStore.getContainerAdminData(DEFAULT).addGadgetAdminData(TEST_GADGET,
- new GadgetAdminData(data));
+ new GadgetAdminData(data, new RpcAdminData()));
mockRegistryForFeatureAdmin(features, featuresAndDeps,
allGadgetFeatures, gadgetRequiredFeatureNames);
mockGadget(allFeatures);
@@ -340,7 +355,7 @@ public class BasicGadgetAdminStoreTest e
createMockFeature(gadgetRequiredFeatureNames.get(1), true));
FeatureAdminData data = new FeatureAdminData(features,Type.BLACKLIST);
enabledStore.getContainerAdminData(DEFAULT).addGadgetAdminData(TEST_GADGET,
- new GadgetAdminData(data));
+ new GadgetAdminData(data, null));
mockRegistryForFeatureAdmin(features, featuresAndDeps,
allGadgetFeatures, gadgetRequiredFeatureNames);
mockGadget(allFeatures);
@@ -361,7 +376,7 @@ public class BasicGadgetAdminStoreTest e
createMockFeature(gadgetRequiredFeatureNames.get(1), true));
FeatureAdminData data = new FeatureAdminData(features,Type.BLACKLIST);
enabledStore.getContainerAdminData(DEFAULT).addGadgetAdminData(TEST_GADGET,
- new GadgetAdminData(data));
+ new GadgetAdminData(data, null));
mockRegistryForFeatureAdmin(features, featuresAndDeps,
allGadgetFeatures, gadgetRequiredFeatureNames);
mockGadget(allFeatures);
@@ -383,7 +398,7 @@ public class BasicGadgetAdminStoreTest e
createMockFeature("foo5", false));
FeatureAdminData data = new FeatureAdminData(features,Type.WHITELIST);
enabledStore.getContainerAdminData(DEFAULT).addGadgetAdminData(TEST_GADGET,
- new GadgetAdminData(data));
+ new GadgetAdminData(data, new RpcAdminData()));
mockRegistryForFeatureAdmin(features, featuresAndDeps,
allGadgetFeatures, gadgetRequiredFeatureNames);
mockGadget(allFeatures);
@@ -444,6 +459,32 @@ public class BasicGadgetAdminStoreTest e
assertTrue(disabledStore.isAllowedFeature(allowed, mockGadget));
}
+ @Test
+ public void testGetAdditionalRpcServiceIds() throws Exception {
+ mockGadget(ImmutableList.<Feature>of(), DEFAULT, "http://example.com/gadget.xml");
+ replay();
+ assertEquals(Sets.newHashSet("rpc1", "rpc2"),
+ enabledStore.getAdditionalRpcServiceIds(mockGadget));
+ assertEquals(Sets.newHashSet(),
+ disabledStore.getAdditionalRpcServiceIds(mockGadget));
+
+ reset();
+ mockGadget(ImmutableList.<Feature>of(), DEFAULT, "https://example.com/gadget.xml");
+ replay();
+ assertEquals(Sets.newHashSet(),
+ enabledStore.getAdditionalRpcServiceIds(mockGadget));
+ assertEquals(Sets.newHashSet(),
+ disabledStore.getAdditionalRpcServiceIds(mockGadget));
+
+ reset();
+ mockGadget(ImmutableList.<Feature>of(), DEFAULT, HOROSCOPE);
+ replay();
+ assertEquals(Sets.newHashSet(),
+ enabledStore.getAdditionalRpcServiceIds(mockGadget));
+ assertEquals(Sets.newHashSet(),
+ disabledStore.getAdditionalRpcServiceIds(mockGadget));
+ }
+
private static class FakeContainerConfig extends BasicContainerConfig {
protected final Map<String, Object> data;
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ContainerAdminDataTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ContainerAdminDataTest.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ContainerAdminDataTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ContainerAdminDataTest.java Thu Feb 23 20:21:15 2012
@@ -38,7 +38,7 @@ import com.google.common.base.Objects;
import com.google.common.collect.Maps;
/**
- * @version $Id: 3.0.0
+ * @since 2.5.0
*/
public class ContainerAdminDataTest {
@@ -65,6 +65,7 @@ public class ContainerAdminDataTest {
private ContainerAdminData emptyData;
private ContainerAdminData nullData;
private ContainerAdminData defaultData;
+ private RpcAdminData rpcAdminData;
@Before
public void setUp() throws Exception {
@@ -72,9 +73,10 @@ public class ContainerAdminDataTest {
blacklist = Sets.newHashSet(EE, SELECTION);
whitelistFeatures = new FeatureAdminData(whitelist, Type.WHITELIST);
blacklistFeatures = new FeatureAdminData(blacklist, Type.BLACKLIST);
+ rpcAdminData = new RpcAdminData(Sets.newHashSet("rpc1", "rpc2"));
- whitelistData = new GadgetAdminData(whitelistFeatures);
- blacklistData = new GadgetAdminData(blacklistFeatures);
+ whitelistData = new GadgetAdminData(whitelistFeatures, rpcAdminData);
+ blacklistData = new GadgetAdminData(blacklistFeatures, new RpcAdminData());
gadgetMap = Maps.newHashMap();
gadgetMap.put(GADGET_URL_1, whitelistData);
@@ -103,6 +105,7 @@ public class ContainerAdminDataTest {
emptyData = null;
nullData = null;
defaultData = null;
+ rpcAdminData = null;
}
@Test
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/GadgetAdminDataTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/GadgetAdminDataTest.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/GadgetAdminDataTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/GadgetAdminDataTest.java Thu Feb 23 20:21:15 2012
@@ -33,7 +33,7 @@ import com.google.caja.util.Sets;
import com.google.common.base.Objects;
/**
- * @version $Id: 3.0.0
+ * @since 2.5.0
*/
public class GadgetAdminDataTest {
@@ -42,10 +42,14 @@ public class GadgetAdminDataTest {
private static final String TABS = "tabs";
private static final String EE = "embedded-experiences";
private static final String SELECTION = "selection";
+ private static final String RPC1 = "rcp1";
+ private static final String RPC2 = "rpc2";
private Set<String> whitelist;
private Set<String> blacklist;
+ private Set<String> rpcServiceIds;
private FeatureAdminData whitelistFeatures;
private FeatureAdminData blacklistFeatures;
+ private RpcAdminData rpcAdminData;
private GadgetAdminData whitelistInfo;
private GadgetAdminData blacklistInfo;
private GadgetAdminData nullInfo;
@@ -55,11 +59,13 @@ public class GadgetAdminDataTest {
public void setUp() throws Exception {
whitelist = Sets.newHashSet(VIEWS, SETPREFS, TABS);
blacklist = Sets.newHashSet(EE, SELECTION);
+ rpcServiceIds = Sets.newHashSet(RPC1, RPC2);
whitelistFeatures = new FeatureAdminData(whitelist, Type.WHITELIST);
blacklistFeatures = new FeatureAdminData(blacklist, Type.BLACKLIST);
- whitelistInfo = new GadgetAdminData(whitelistFeatures);
- blacklistInfo = new GadgetAdminData(blacklistFeatures);
- nullInfo = new GadgetAdminData(null);
+ rpcAdminData = new RpcAdminData(rpcServiceIds);
+ whitelistInfo = new GadgetAdminData(whitelistFeatures, rpcAdminData);
+ blacklistInfo = new GadgetAdminData(blacklistFeatures, new RpcAdminData());
+ nullInfo = new GadgetAdminData(null, null);
defaultInfo = new GadgetAdminData();
}
@@ -68,8 +74,10 @@ public class GadgetAdminDataTest {
whitelist = null;
whitelistInfo = null;
blacklistInfo = null;
+ rpcServiceIds = null;
whitelistFeatures = null;
blacklistFeatures = null;
+ rpcAdminData = null;
nullInfo = null;
defaultInfo = null;
}
@@ -83,9 +91,56 @@ public class GadgetAdminDataTest {
}
@Test
+ public void testSetFeatureAdminData() {
+ assertEquals(whitelistFeatures, whitelistInfo.getFeatureAdminData());
+ whitelistInfo.setFeatureAdminData(null);
+ assertEquals(new FeatureAdminData(), whitelistInfo.getFeatureAdminData());
+
+ assertEquals(blacklistFeatures, blacklistInfo.getFeatureAdminData());
+ blacklistInfo.setFeatureAdminData(whitelistFeatures);
+ assertEquals(whitelistFeatures, blacklistInfo.getFeatureAdminData());
+
+ assertEquals(new FeatureAdminData(), nullInfo.getFeatureAdminData());
+ nullInfo.setFeatureAdminData(whitelistFeatures);
+ assertEquals(whitelistFeatures, nullInfo.getFeatureAdminData());
+
+ assertEquals(new FeatureAdminData(), defaultInfo.getFeatureAdminData());
+ defaultInfo.setFeatureAdminData(whitelistFeatures);
+ assertEquals(whitelistFeatures, defaultInfo.getFeatureAdminData());
+ }
+
+ @Test
+ public void testGetRpcAdminData() {
+ assertEquals(rpcAdminData, whitelistInfo.getRpcAdminData());
+ assertEquals(new RpcAdminData(), blacklistInfo.getRpcAdminData());
+ assertEquals(new RpcAdminData(), nullInfo.getRpcAdminData());
+ assertEquals(new RpcAdminData(), defaultInfo.getRpcAdminData());
+ }
+
+ @Test
+ public void testSetRpcAdminData() {
+ assertEquals(rpcAdminData, whitelistInfo.getRpcAdminData());
+ whitelistInfo.setRpcAdminData(null);
+ assertEquals(new RpcAdminData(), whitelistInfo.getRpcAdminData());
+
+ assertEquals(new RpcAdminData(), blacklistInfo.getRpcAdminData());
+ blacklistInfo.setRpcAdminData(rpcAdminData);
+ assertEquals(rpcAdminData, blacklistInfo.getRpcAdminData());
+
+ assertEquals(new RpcAdminData(), nullInfo.getRpcAdminData());
+ nullInfo.setRpcAdminData(rpcAdminData);
+ assertEquals(rpcAdminData, nullInfo.getRpcAdminData());
+
+ assertEquals(new RpcAdminData(), defaultInfo.getRpcAdminData());
+ defaultInfo.setRpcAdminData(rpcAdminData);
+ assertEquals(rpcAdminData, defaultInfo.getRpcAdminData());
+ }
+
+ @Test
public void testEquals() {
- assertTrue(whitelistInfo.equals(new GadgetAdminData(whitelistFeatures)));
- assertTrue(nullInfo.equals(new GadgetAdminData(null)));
+ assertTrue(whitelistInfo.equals(new GadgetAdminData(whitelistFeatures,
+ rpcAdminData)));
+ assertTrue(nullInfo.equals(new GadgetAdminData(null, null)));
assertTrue(defaultInfo.equals(new GadgetAdminData()));
assertTrue(nullInfo.equals(defaultInfo));
assertFalse(whitelistInfo.equals(null));
@@ -97,10 +152,14 @@ public class GadgetAdminDataTest {
@Test
public void testHashCode() {
- assertEquals(Objects.hashCode(whitelistFeatures), whitelistInfo.hashCode());
- assertEquals(Objects.hashCode(blacklistFeatures), blacklistInfo.hashCode());
- assertEquals(Objects.hashCode(new FeatureAdminData()), nullInfo.hashCode());
- assertEquals(Objects.hashCode(new FeatureAdminData()), defaultInfo.hashCode());
+ assertEquals(Objects.hashCode(whitelistFeatures, rpcAdminData),
+ whitelistInfo.hashCode());
+ assertEquals(Objects.hashCode(blacklistFeatures, new RpcAdminData()),
+ blacklistInfo.hashCode());
+ assertEquals(Objects.hashCode(new FeatureAdminData(), new RpcAdminData()),
+ nullInfo.hashCode());
+ assertEquals(Objects.hashCode(new FeatureAdminData(), new RpcAdminData()),
+ defaultInfo.hashCode());
assertEquals(nullInfo.hashCode(), defaultInfo.hashCode());
assertFalse(blacklistInfo.hashCode() == whitelistInfo.hashCode());
}
Added: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/RpcAdminDataTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/RpcAdminDataTest.java?rev=1292940&view=auto
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/RpcAdminDataTest.java (added)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/RpcAdminDataTest.java Thu Feb 23 20:21:15 2012
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets.admin;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Set;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.google.caja.util.Sets;
+import com.google.common.base.Objects;
+
+/**
+ * Unit tests for RpcAdminData.
+ *
+ * @since 2.5.0
+ */
+public class RpcAdminDataTest {
+
+ private Set<String> populatedIds;
+ private RpcAdminData empty;
+ private RpcAdminData populated;
+ private RpcAdminData nullData;
+
+ @Before
+ public void setUp() throws Exception {
+ populatedIds = Sets.newHashSet("rpc1", "rpc2");
+ empty = new RpcAdminData();
+ populated = new RpcAdminData(populatedIds);
+ nullData = new RpcAdminData(null);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ empty = null;
+ populated = null;
+ populatedIds = null;
+ nullData = null;
+ }
+
+ @Test
+ public void testHashCode() {
+ assertEquals(Objects.hashCode(populatedIds), populated.hashCode());
+ assertEquals(Objects.hashCode(Sets.newHashSet()), empty.hashCode());
+ assertEquals(Objects.hashCode(Sets.newHashSet()), nullData.hashCode());
+ assertEquals(empty.hashCode(), nullData.hashCode());
+ assertFalse(populated.hashCode() == empty.hashCode());
+ }
+
+ @Test
+ public void testGetAdditionalRpcServiceIds() {
+ assertEquals(populatedIds, populated.getAdditionalRpcServiceIds());
+ assertEquals(Sets.newHashSet(), empty.getAdditionalRpcServiceIds());
+ assertEquals(Sets.newHashSet(), nullData.getAdditionalRpcServiceIds());
+ assertEquals(empty.getAdditionalRpcServiceIds(), nullData.getAdditionalRpcServiceIds());
+ assertFalse(populated.getAdditionalRpcServiceIds().equals(empty.getAdditionalRpcServiceIds()));
+ }
+
+ @Test
+ public void testSetAdditionalRpcServiceIds() {
+ assertEquals(populatedIds, populated.getAdditionalRpcServiceIds());
+ Set<String> emptySet = Sets.newHashSet();
+ populated.setAdditionalRpcServiceIds(emptySet);
+ assertEquals(Sets.newHashSet(), populated.getAdditionalRpcServiceIds());
+
+ assertEquals(Sets.newHashSet(), empty.getAdditionalRpcServiceIds());
+ empty.setAdditionalRpcServiceIds(populatedIds);
+ assertEquals(populatedIds, empty.getAdditionalRpcServiceIds());
+
+ assertEquals(Sets.newHashSet(), nullData.getAdditionalRpcServiceIds());
+ nullData.setAdditionalRpcServiceIds(populatedIds);
+ assertEquals(populatedIds, nullData.getAdditionalRpcServiceIds());
+ }
+
+ @Test
+ public void testAddAdditionalRpcServiceId() {
+ assertEquals(populatedIds, populated.getAdditionalRpcServiceIds());
+ Set<String> newIds = Sets.newHashSet(populatedIds);
+ populated.addAdditionalRpcServiceId("rpc3");
+ populated.addAdditionalRpcServiceId(null);
+ newIds.add("rpc3");
+ assertEquals(newIds, populated.getAdditionalRpcServiceIds());
+
+ Set<String> emptyRpcIds = Sets.newHashSet();
+ assertEquals(emptyRpcIds, empty.getAdditionalRpcServiceIds());
+ empty.addAdditionalRpcServiceId("rpc4");
+ empty.addAdditionalRpcServiceId(null);
+ emptyRpcIds.add("rpc4");
+ assertEquals(emptyRpcIds, empty.getAdditionalRpcServiceIds());
+
+ emptyRpcIds = Sets.newHashSet();
+ assertEquals(emptyRpcIds, nullData.getAdditionalRpcServiceIds());
+ nullData.addAdditionalRpcServiceId("rpc4");
+ nullData.addAdditionalRpcServiceId(null);
+ emptyRpcIds.add("rpc4");
+ assertEquals(emptyRpcIds, nullData.getAdditionalRpcServiceIds());
+ }
+
+ @Test
+ public void testRemoveAdditionalRpcServiceId() {
+ assertEquals(populatedIds, populated.getAdditionalRpcServiceIds());
+ populated.removeAdditionalRpcServiceId("rpc1");
+ populated.removeAdditionalRpcServiceId(null);
+ Set<String> newIds = Sets.newHashSet("rpc2");
+ assertEquals(newIds, populated.getAdditionalRpcServiceIds());
+
+ Set<String> emptyRpcIds = Sets.newHashSet();
+ assertEquals(emptyRpcIds, empty.getAdditionalRpcServiceIds());
+ empty.removeAdditionalRpcServiceId("rpc1");
+ empty.removeAdditionalRpcServiceId("");
+ assertEquals(emptyRpcIds, empty.getAdditionalRpcServiceIds());
+
+ emptyRpcIds = Sets.newHashSet();
+ assertEquals(emptyRpcIds, nullData.getAdditionalRpcServiceIds());
+ nullData.removeAdditionalRpcServiceId("rpc1");
+ nullData.removeAdditionalRpcServiceId("");
+ assertEquals(emptyRpcIds, nullData.getAdditionalRpcServiceIds());
+ }
+
+ @Test
+ public void testEqualsObject() {
+ assertTrue(new RpcAdminData(populatedIds).equals(populated));
+ assertTrue(new RpcAdminData().equals(empty));
+ assertTrue(new RpcAdminData().equals(nullData));
+ assertTrue(nullData.equals(empty));
+ assertFalse(populated.equals(empty));
+ }
+
+}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ServerAdminDataTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ServerAdminDataTest.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ServerAdminDataTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/admin/ServerAdminDataTest.java Thu Feb 23 20:21:15 2012
@@ -37,7 +37,7 @@ import com.google.common.base.Objects;
import com.google.common.collect.Maps;
/**
- * @version $Id: $
+ * @since 2.5.0
*/
public class ServerAdminDataTest {
@@ -57,6 +57,7 @@ public class ServerAdminDataTest {
private FeatureAdminData blacklistFeatures;
private GadgetAdminData whitelistInfo;
private GadgetAdminData blacklistInfo;
+ private RpcAdminData rpcAdminData;
private Map<String, GadgetAdminData> defaultMap;
private Map<String, GadgetAdminData> myMap;
private Map<String, ContainerAdminData> containerMap;
@@ -73,9 +74,10 @@ public class ServerAdminDataTest {
blacklist = Sets.newHashSet(EE, SELECTION);
whitelistFeatures = new FeatureAdminData(whitelist, Type.WHITELIST);
blacklistFeatures = new FeatureAdminData(blacklist, Type.BLACKLIST);
+ rpcAdminData = new RpcAdminData(Sets.newHashSet("rpc1", "rpc2"));
- whitelistInfo = new GadgetAdminData(whitelistFeatures);
- blacklistInfo = new GadgetAdminData(blacklistFeatures);
+ whitelistInfo = new GadgetAdminData(whitelistFeatures, rpcAdminData);
+ blacklistInfo = new GadgetAdminData(blacklistFeatures, new RpcAdminData());
defaultMap = Maps.newHashMap();
defaultMap.put(GADGET_URL_1, whitelistInfo);
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java Thu Feb 23 20:21:15 2012
@@ -43,10 +43,6 @@ import org.apache.shindig.gadgets.Gadget
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.GadgetException.Code;
import org.apache.shindig.gadgets.RenderingContext;
-import org.apache.shindig.gadgets.admin.ContainerAdminData;
-import org.apache.shindig.gadgets.admin.FeatureAdminData;
-import org.apache.shindig.gadgets.admin.FeatureAdminData.Type;
-import org.apache.shindig.gadgets.admin.GadgetAdminData;
import org.apache.shindig.gadgets.admin.GadgetAdminStore;
import org.apache.shindig.gadgets.features.ApiDirective;
import org.apache.shindig.gadgets.features.FeatureRegistry;
@@ -92,6 +88,7 @@ public class GadgetsHandlerServiceTest e
private static final String FALLBACK = "http://example.com/data2";
private static final String RPC_SERVICE_1 = "rcp_service_1";
private static final String RPC_SERVICE_2 = "rpc_service_2";
+ private static final String RPC_SERVICE_3 = "rpc_service_3";
private final BeanDelegator delegator = new BeanDelegator(GadgetsHandlerService.API_CLASSES,
GadgetsHandlerService.ENUM_CONVERSION_MAP);
@@ -116,11 +113,6 @@ public class GadgetsHandlerServiceTest e
@Before
public void setUp() {
tokenCodec = new FakeSecurityTokenCodec();
- GadgetAdminData gadgetAdminData = new GadgetAdminData(
- new FeatureAdminData(Sets.newHashSet(FakeProcessor.FEATURE2, FakeProcessor.FEATURE3),
- Type.WHITELIST));
- ContainerAdminData containerAdminData = new ContainerAdminData();
- containerAdminData.addGadgetAdminData(FakeProcessor.SPEC_URL4.toString(), gadgetAdminData);
featureRegistryProvider = new FeatureRegistryProvider() {
public FeatureRegistry get(String repository) throws GadgetException {
return mockRegistry;
@@ -148,6 +140,8 @@ public class GadgetsHandlerServiceTest e
private void setupMockGadgetAdminStore(boolean isAllowed) {
EasyMock.expect(gadgetAdminStore.checkFeatureAdminInfo(EasyMock.isA(Gadget.class)))
.andReturn(isAllowed).anyTimes();
+ EasyMock.expect(gadgetAdminStore.getAdditionalRpcServiceIds(EasyMock.isA(Gadget.class)))
+ .andReturn(Sets.newHashSet(RPC_SERVICE_3));
}
@SuppressWarnings("unchecked")
@@ -198,7 +192,7 @@ public class GadgetsHandlerServiceTest e
assertEquals(4, response.getUserPrefs().get("up_one").getOrderedEnumValues().size());
assertEquals(CURRENT_TIME_MS, response.getResponseTimeMs());
assertEquals(METADATA_EXPIRY_TIME_MS, response.getExpireTimeMs());
- assertEquals(Sets.newHashSet(RPC_SERVICE_1, RPC_SERVICE_2), response.getRpcServiceIds());
+ assertEquals(Sets.newHashSet(RPC_SERVICE_1, RPC_SERVICE_2, RPC_SERVICE_3), response.getRpcServiceIds());
verify();
}
@@ -222,7 +216,7 @@ public class GadgetsHandlerServiceTest e
assertEquals(4, response.getUserPrefs().get("up_one").getOrderedEnumValues().size());
assertEquals(CURRENT_TIME_MS, response.getResponseTimeMs());
assertEquals(METADATA_EXPIRY_TIME_MS, response.getExpireTimeMs());
- assertEquals(Sets.newHashSet(RPC_SERVICE_1, RPC_SERVICE_2), response.getRpcServiceIds());
+ assertEquals(Sets.newHashSet(RPC_SERVICE_1, RPC_SERVICE_2, RPC_SERVICE_3), response.getRpcServiceIds());
verify();
}
@@ -239,6 +233,7 @@ public class GadgetsHandlerServiceTest e
public void testGetMetadataOnlyView() throws Exception {
GadgetsHandlerApi.MetadataRequest request = createMetadataRequest(FakeProcessor.SPEC_URL,
CONTAINER, null, createAuthContext(null, null), ImmutableList.of("views.*"));
+ setupMockGadgetAdminStore(false);
setupMockRegistry(new ArrayList<String>());
GadgetsHandlerApi.MetadataResponse response = gadgetHandler.getMetadata(request);
assertNull(response.getIframeUrls());
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java?rev=1292940&r1=1292939&r2=1292940&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java Thu Feb 23 20:21:15 2012
@@ -30,7 +30,6 @@ import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.binary.Base64;
-import org.apache.shindig.auth.BasicSecurityTokenCodec;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.auth.SecurityTokenCodec;
import org.apache.shindig.auth.SecurityTokenException;
@@ -85,6 +84,7 @@ import com.google.caja.reporting.SimpleM
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import com.google.inject.Guice;
import com.google.inject.Injector;
@@ -96,9 +96,9 @@ public class GadgetsHandlerTest extends
private static final String CONTAINER = "container";
private static final String TOKEN = "_nekot_";
private static final Long SPEC_REFRESH_INTERVAL = 123L;
- private static final Long EXPIRY_TIME_MS = 456L;
private static final String RPC_SERVICE_1 = "rcp_service_1";
private static final String RPC_SERVICE_2 = "rpc_service_2";
+ private static final String RPC_SERVICE_3 = "rpc_service_3";
private final FakeTimeSource timeSource = new FakeTimeSource();
private final FeatureRegistry mockRegistry = mock(FeatureRegistry.class);
@@ -194,6 +194,8 @@ public class GadgetsHandlerTest extends
private void setupGadgetAdminStore() {
EasyMock.expect(gadgetAdminStore.checkFeatureAdminInfo(isA(Gadget.class)))
.andReturn(true).anyTimes();
+ EasyMock.expect(gadgetAdminStore.getAdditionalRpcServiceIds(isA(Gadget.class)))
+ .andReturn((Sets.newHashSet(RPC_SERVICE_3))).anyTimes();
}
private FeatureBundle createMockFeatureBundle() {
@@ -475,6 +477,7 @@ public class GadgetsHandlerTest extends
@Test
public void testAllowedRpcSecurityIds() throws Exception {
registerGadgetsHandler(null);
+ setupGadgetAdminStore();
setupMockRegistry(Lists.newArrayList("core"));
JSONObject request = makeMetadataRequest(null, null, new String[] { "rpcServiceIds" },
GADGET1_URL);
@@ -485,9 +488,10 @@ public class GadgetsHandlerTest extends
JSONObject gadget = response.getJSONObject(GADGET1_URL);
JSONArray rpcServiceIds = gadget.getJSONArray("rpcServiceIds");
- assertEquals(2, rpcServiceIds.length());
- boolean result = rpcServiceIds.get(0).equals(RPC_SERVICE_2) || rpcServiceIds.get(0).equals(RPC_SERVICE_1);
- result &= rpcServiceIds.get(1).equals(RPC_SERVICE_2) || rpcServiceIds.get(1).equals(RPC_SERVICE_1);
+ assertEquals(3, rpcServiceIds.length());
+ boolean result = rpcServiceIds.get(0).equals(RPC_SERVICE_2) || rpcServiceIds.get(0).equals(RPC_SERVICE_1) || rpcServiceIds.get(0).equals(RPC_SERVICE_3);
+ result &= rpcServiceIds.get(1).equals(RPC_SERVICE_2) || rpcServiceIds.get(1).equals(RPC_SERVICE_1) || rpcServiceIds.get(1).equals(RPC_SERVICE_3);
+ result &= rpcServiceIds.get(2).equals(RPC_SERVICE_2) || rpcServiceIds.get(2).equals(RPC_SERVICE_1) || rpcServiceIds.get(2).equals(RPC_SERVICE_3);
assertTrue(result);
verify();
@@ -521,9 +525,10 @@ public class GadgetsHandlerTest extends
@Test
public void testMetadataOneGadgetFailure() throws Exception {
+ registerGadgetsHandler(null);
setupGadgetAdminStore();
replay();
- registerGadgetsHandler(null);
+
JSONObject request = makeMetadataRequest(null, null, null, GADGET1_URL);
urlGenerator.throwRandomFault = true;
RpcHandler operation = registry.getRpcHandler(request);