You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by zh...@apache.org on 2010/10/13 06:46:04 UTC
svn commit: r1021995 - in /shindig/trunk/java:
common/src/main/java/org/apache/shindig/auth/
common/src/test/java/org/apache/shindig/auth/
common/src/test/java/org/apache/shindig/common/testing/
gadgets/src/main/java/org/apache/shindig/gadgets/servlet/...
Author: zhoresh
Date: Wed Oct 13 04:46:03 2010
New Revision: 1021995
URL: http://svn.apache.org/viewvc?rev=1021995&view=rev
Log:
Ref http://codereview.appspot.com/2445041/
Patch by mhermanto - Update common container endpoint with response and expiry time
Added:
shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BasicSecurityTokenCodecTest.java
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenCodec.java
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodec.java
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/DefaultSecurityTokenCodec.java
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityTokenCodec.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodecTest.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenCodecTest.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.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/servlet/GadgetsHandlerServiceTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenCodec.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenCodec.java?rev=1021995&r1=1021994&r2=1021995&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenCodec.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenCodec.java Wed Oct 13 04:46:03 2010
@@ -99,6 +99,11 @@ public class BasicSecurityTokenCodec imp
}
}
+ public Long getTokenExpiration(SecurityToken token) {
+ // TODO: Support and/or implement this operation.
+ return null;
+ }
+
/**
* Creates a signer with 24 hour token expiry
*/
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodec.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodec.java?rev=1021995&r1=1021994&r2=1021995&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodec.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodec.java Wed Oct 13 04:46:03 2010
@@ -133,4 +133,9 @@ public class BlobCrypterSecurityTokenCod
throw new SecurityTokenException(e);
}
}
+
+ public Long getTokenExpiration(SecurityToken token) {
+ // TODO: Support and/or implement this operation.
+ return null;
+ }
}
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/DefaultSecurityTokenCodec.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/DefaultSecurityTokenCodec.java?rev=1021995&r1=1021994&r2=1021995&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/DefaultSecurityTokenCodec.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/DefaultSecurityTokenCodec.java Wed Oct 13 04:46:03 2010
@@ -18,11 +18,11 @@
*/
package org.apache.shindig.auth;
-import org.apache.shindig.config.ContainerConfig;
-
import com.google.inject.Inject;
import com.google.inject.Singleton;
+import org.apache.shindig.config.ContainerConfig;
+
import java.util.Map;
/**
@@ -74,4 +74,8 @@ public class DefaultSecurityTokenCodec i
}
return codec.encodeToken(token);
}
+
+ public Long getTokenExpiration(SecurityToken token) throws SecurityTokenException {
+ return codec.getTokenExpiration(token);
+ }
}
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityTokenCodec.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityTokenCodec.java?rev=1021995&r1=1021994&r2=1021995&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityTokenCodec.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityTokenCodec.java Wed Oct 13 04:46:03 2010
@@ -35,7 +35,7 @@ public interface SecurityTokenCodec {
* parameters can be passed as seen fit.
*/
String SECURITY_TOKEN_NAME = "token";
-
+
/**
* Active URL for the request. Must include protocol, host, and port. May include path
* and may include query.
@@ -53,4 +53,7 @@ public interface SecurityTokenCodec {
throws SecurityTokenException;
String encodeToken(SecurityToken token) throws SecurityTokenException;
+
+ Long getTokenExpiration(SecurityToken token) throws SecurityTokenException;
+
}
Added: shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BasicSecurityTokenCodecTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BasicSecurityTokenCodecTest.java?rev=1021995&view=auto
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BasicSecurityTokenCodecTest.java (added)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BasicSecurityTokenCodecTest.java Wed Oct 13 04:46:03 2010
@@ -0,0 +1,39 @@
+/*
+ * 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.auth;
+
+import static junit.framework.Assert.assertNull;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class BasicSecurityTokenCodecTest {
+
+ private BasicSecurityTokenCodec codec;
+
+ @Before
+ public void setUp() throws Exception {
+ codec = new BasicSecurityTokenCodec();
+ }
+
+ @Test
+ public void testGetTokenExpiration() throws Exception {
+ assertNull(codec.getTokenExpiration(null));
+ }
+}
Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodecTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodecTest.java?rev=1021995&r1=1021994&r2=1021995&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodecTest.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/BlobCrypterSecurityTokenCodecTest.java Wed Oct 13 04:46:03 2010
@@ -19,6 +19,7 @@
package org.apache.shindig.auth;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -32,6 +33,8 @@ import org.apache.shindig.config.Contain
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
+import junit.framework.Assert;
+
import org.junit.Before;
import org.junit.Test;
@@ -232,4 +235,9 @@ public class BlobCrypterSecurityTokenCod
assertTrue(e.getMessage(), e.getMessage().contains("Load failed"));
}
}
+
+ @Test
+ public void testGetTokenExpiration() throws Exception {
+ Assert.assertNull(codec.getTokenExpiration(null));
+ }
}
Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenCodecTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenCodecTest.java?rev=1021995&r1=1021994&r2=1021995&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenCodecTest.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenCodecTest.java Wed Oct 13 04:46:03 2010
@@ -19,11 +19,11 @@
package org.apache.shindig.auth;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.apache.shindig.config.AbstractContainerConfig;
-import org.apache.shindig.config.ContainerConfigException;
import com.google.common.collect.Lists;
@@ -41,7 +41,7 @@ public class DefaultSecurityTokenCodecTe
private static class FakeContainerConfig extends AbstractContainerConfig {
private final String tokenType;
- public FakeContainerConfig(String tokenType) throws ContainerConfigException {
+ public FakeContainerConfig(String tokenType) {
this.tokenType = tokenType;
}
@@ -75,6 +75,7 @@ public class DefaultSecurityTokenCodecTe
assertEquals("v", st.getViewerId());
assertEquals("appurl", st.getAppUrl());
assertEquals("container", st.getContainer());
+ assertNull(codec.getTokenExpiration(st));
}
@Test
Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java?rev=1021995&r1=1021994&r2=1021995&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java Wed Oct 13 04:46:03 2010
@@ -153,7 +153,8 @@ public class FakeGadgetToken extends Abs
public boolean isAnonymous() {
return false;
}
-
+
+ @Override
public String getActiveUrl() {
return activeUrl;
}
@@ -220,5 +221,9 @@ public class FakeGadgetToken extends Abs
public String encodeToken(SecurityToken token) throws SecurityTokenException {
return null; // NOT USED
}
+
+ public Long getTokenExpiration(SecurityToken token) throws SecurityTokenException {
+ return null; // NOT USED
+ }
}
}
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=1021995&r1=1021994&r2=1021995&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 Wed Oct 13 04:46:03 2010
@@ -21,6 +21,7 @@ package org.apache.shindig.gadgets.servl
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;
import com.google.inject.Inject;
+import com.google.inject.name.Named;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.auth.SecurityTokenCodec;
@@ -88,18 +89,20 @@ public class GadgetsHandlerService {
protected final Processor processor;
protected final IframeUriManager iframeUriManager;
protected final SecurityTokenCodec securityTokenCodec;
-
protected final BeanDelegator beanDelegator;
+ protected final long specRefreshInterval;
protected final BeanFilter beanFilter;
@Inject
public GadgetsHandlerService(TimeSource timeSource, Processor processor,
IframeUriManager iframeUriManager, SecurityTokenCodec securityTokenCodec,
+ @Named("shindig.cache.xml.refreshInterval") long specRefreshInterval,
BeanFilter beanFilter) {
this.timeSource = timeSource;
this.processor = processor;
this.iframeUriManager = iframeUriManager;
this.securityTokenCodec = securityTokenCodec;
+ this.specRefreshInterval = specRefreshInterval;
this.beanFilter = beanFilter;
this.beanDelegator = new BeanDelegator(apiClasses, enumConversionMap);
@@ -129,12 +132,11 @@ public class GadgetsHandlerService {
String iframeUrl =
isFieldIncluded(fields, "iframeurl") ?
iframeUriManager.makeRenderingUri(gadget).toString() : null;
- // TODO: Figure out url expiration time
Boolean needsTokenRefresh =
isFieldIncluded(fields, "needstokenrefresh") ?
gadget.getAllFeatures().contains("auth-refresh") : null;
return createMetadataResponse(context.getUrl(), gadget.getSpec(), iframeUrl,
- needsTokenRefresh, fields, null);
+ needsTokenRefresh, fields, timeSource.currentTimeMillis() + specRefreshInterval);
}
private boolean isFieldIncluded(Set<String> fields, String name) {
@@ -162,8 +164,8 @@ public class GadgetsHandlerService {
SecurityToken tokenData = convertToken(request.getToken(), request.getContainer(),
request.getUrl().toString());
String token = securityTokenCodec.encodeToken(tokenData);
- // TODO: Calculate token expiration in response
- return createTokenResponse(request.getUrl(), token, fields, null);
+ Long expiryTimeMs = securityTokenCodec.getTokenExpiration(tokenData);
+ return createTokenResponse(request.getUrl(), token, fields, expiryTimeMs);
}
/**
@@ -277,7 +279,9 @@ public class GadgetsHandlerService {
Uri url, String token, Set<String> fields, Long tokenExpire) {
return (GadgetsHandlerApi.TokenResponse) beanFilter.createFilteredBean(
beanDelegator.createDelegator("empty", GadgetsHandlerApi.TokenResponse.class,
- ImmutableMap.<String, Object>of("url", url, "error", BeanDelegator.NULL,
+ ImmutableMap.<String, Object>of(
+ "url", url,
+ "error", BeanDelegator.NULL,
"token", BeanDelegator.nullable(token),
"responsetimems", timeSource.currentTimeMillis(),
"expiretimems", BeanDelegator.nullable(tokenExpire))),
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=1021995&r1=1021994&r2=1021995&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 Wed Oct 13 04:46:03 2010
@@ -19,7 +19,6 @@
package org.apache.shindig.gadgets.servlet;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import org.apache.shindig.auth.SecurityToken;
@@ -30,7 +29,6 @@ import org.apache.shindig.common.uri.Uri
import org.apache.shindig.common.util.FakeTimeSource;
import org.apache.shindig.gadgets.features.FeatureRegistry;
import org.apache.shindig.gadgets.process.ProcessingException;
-import org.apache.shindig.gadgets.spec.GadgetSpec;
import org.apache.shindig.protocol.conversion.BeanDelegator;
import org.apache.shindig.protocol.conversion.BeanFilter;
import org.easymock.EasyMock;
@@ -46,11 +44,15 @@ public class GadgetsHandlerServiceTest e
private static final String OWNER = "<owner>";
private static final String VIEWER = "<viewer>";
private static final String CONTAINER = "container";
+ private static final Long CURRENT_TIME_MS = 123L;
+ private static final Long SPEC_REFRESH_INTERVAL_MS = 456L;
+ private static final Long METADATA_EXPIRY_TIME_MS = CURRENT_TIME_MS + SPEC_REFRESH_INTERVAL_MS;
+ private static final Long TOKEN_EXPIRY_TIME_MS = CURRENT_TIME_MS + 789L;
private final BeanDelegator delegator = new BeanDelegator(
GadgetsHandlerService.apiClasses, GadgetsHandlerService.enumConversionMap);
- private final FakeTimeSource timeSource = new FakeTimeSource();
+ private final FakeTimeSource timeSource = new FakeTimeSource(CURRENT_TIME_MS);
private final FeatureRegistry mockRegistry = mock(FeatureRegistry.class);
private final FakeProcessor processor = new FakeProcessor(mockRegistry);
private final FakeIframeUriManager urlGenerator = new FakeIframeUriManager();
@@ -62,7 +64,7 @@ public class GadgetsHandlerServiceTest e
public void setUp() {
tokenCodec = new FakeSecurityTokenCodec();
gadgetHandler = new GadgetsHandlerService(timeSource, processor, urlGenerator,
- tokenCodec, new BeanFilter());
+ tokenCodec, SPEC_REFRESH_INTERVAL_MS, new BeanFilter());
}
// Next test verify that the API data classes are configured correctly.
@@ -97,6 +99,8 @@ public class GadgetsHandlerServiceTest e
assertEquals(1, response.getUserPrefs().size());
assertEquals("up_one", response.getUserPrefs().get("up_one").getDisplayName());
assertEquals(4, response.getUserPrefs().get("up_one").getEnumValues().size());
+ assertEquals(CURRENT_TIME_MS, response.getResponseTimeMs());
+ assertEquals(METADATA_EXPIRY_TIME_MS, response.getExpireTimeMs());
verify();
}
@@ -174,11 +178,14 @@ public class GadgetsHandlerServiceTest e
createTokenData(OWNER, VIEWER), ImmutableList.of("*"));
replay();
tokenCodec.encodedToken = TOKEN;
+ tokenCodec.tokenExpiryTimeMs = TOKEN_EXPIRY_TIME_MS;
GadgetsHandlerApi.TokenResponse response = gadgetHandler.getToken(request);
assertEquals(TOKEN, response.getToken());
- assertEquals(OWNER, tokenCodec.tokenData.getOwnerId());
- assertEquals(VIEWER, tokenCodec.tokenData.getViewerId());
- assertEquals(CONTAINER, tokenCodec.tokenData.getContainer());
+ assertEquals(CURRENT_TIME_MS, response.getResponseTimeMs());
+ assertEquals(TOKEN_EXPIRY_TIME_MS, response.getExpireTimeMs());
+ assertEquals(OWNER, tokenCodec.inputToken.getOwnerId());
+ assertEquals(VIEWER, tokenCodec.inputToken.getViewerId());
+ assertEquals(CONTAINER, tokenCodec.inputToken.getContainer());
verify();
}
@@ -228,73 +235,10 @@ public class GadgetsHandlerServiceTest e
tokenCodec.encodedToken = TOKEN;
GadgetsHandlerApi.TokenResponse response = gadgetHandler.getToken(request);
assertEquals(TOKEN, response.getToken());
- assertNull(CONTAINER, tokenCodec.tokenData);
+ assertNull(CONTAINER, tokenCodec.inputToken);
verify();
}
- @Test
- public void testCreateErrorResponse() throws Exception {
- GadgetsHandlerApi.BaseResponse res = gadgetHandler.createErrorResponse(null, 404, null);
- assertEquals(404, res.getError().getCode());
- assertNull(res.getError().getMessage());
- assertNull(res.getUrl());
- BeanDelegator.validateDelegator(res);
- res = gadgetHandler.createErrorResponse(Uri.parse("url"), 500, "error");
- assertEquals("error", res.getError().getMessage());
- assertEquals("url", res.getUrl().toString());
- BeanDelegator.validateDelegator(res);
- }
-
- @Test
- public void testCreateErrorResponseFromException() throws Exception {
- GadgetsHandlerApi.BaseResponse res = gadgetHandler.createErrorResponse(
- Uri.parse("url"), new RuntimeException("test"), "error");
- assertEquals("error", res.getError().getMessage());
- assertEquals("url", res.getUrl().toString());
- assertEquals(500, res.getError().getCode());
- BeanDelegator.validateDelegator(res);
- res = gadgetHandler.createErrorResponse(
- Uri.parse("url"), new ProcessingException("test", 404), "error");
- assertEquals("test", res.getError().getMessage());
- assertEquals("url", res.getUrl().toString());
- assertEquals(404, res.getError().getCode());
- BeanDelegator.validateDelegator(res);
- }
-
- @Test
- public void testCreateMetadataResponse() throws Exception {
- GadgetsHandlerApi.MetadataResponse res = gadgetHandler.createMetadataResponse(
- Uri.parse("gadgeturl"), new GadgetSpec(Uri.parse("#"), FakeProcessor.SPEC_XML),
- null, null, ImmutableSet.of("*"), null);
- assertNull(res.getIframeUrl());
- assertNull(res.getNeedsTokenRefresh());
- assertNull(res.getExpireTimeMs());
- assertEquals(FakeProcessor.SPEC_TITLE, res.getModulePrefs().getTitle());
- BeanDelegator.validateDelegator(res);
- res = gadgetHandler.createMetadataResponse(
- Uri.parse("gadgeturl"), new GadgetSpec(Uri.parse("#"), FakeProcessor.SPEC_XML),
- "iframeurl", true, ImmutableSet.of("*"), 3L);
- assertEquals("iframeurl", res.getIframeUrl());
- assertEquals(true, res.getNeedsTokenRefresh().booleanValue());
- assertEquals(3L, res.getExpireTimeMs().longValue());
- BeanDelegator.validateDelegator(res);
- }
-
- @Test
- public void testCreateTokenResponse() throws Exception {
- GadgetsHandlerApi.TokenResponse res = gadgetHandler.createTokenResponse(Uri.parse("#"), null,
- ImmutableSet.of("*"), null);
- BeanDelegator.validateDelegator(res);
- assertNull(res.getToken());
- assertNull(res.getExpireTimeMs());
- res = gadgetHandler.createTokenResponse(Uri.parse("#"), "token",
- ImmutableSet.of("*"), 100L);
- BeanDelegator.validateDelegator(res);
- assertEquals("token", res.getToken());
- assertEquals(100L, res.getExpireTimeMs().longValue());
-
- }
-
private GadgetsHandlerApi.TokenData createTokenData(String ownerId, String viewerId) {
GadgetsHandlerApi.TokenData token = mock(GadgetsHandlerApi.TokenData.class);
if (ownerId != null) {
@@ -328,12 +272,13 @@ public class GadgetsHandlerServiceTest e
}
private class FakeSecurityTokenCodec implements SecurityTokenCodec {
+ public SecurityToken inputToken = null;
public SecurityTokenException exc = null;
- public SecurityToken tokenData = null;
public String encodedToken = null;
+ public Long tokenExpiryTimeMs = null;
public String encodeToken(SecurityToken token) throws SecurityTokenException {
- tokenData = token;
+ inputToken = token;
if (exc != null) {
throw exc;
}
@@ -345,7 +290,15 @@ public class GadgetsHandlerServiceTest e
if (exc != null) {
throw exc;
}
- return tokenData;
+ return inputToken;
+ }
+
+ public Long getTokenExpiration(SecurityToken token) throws SecurityTokenException {
+ inputToken = token;
+ if (exc != null) {
+ throw exc;
+ }
+ return tokenExpiryTimeMs;
}
}
}
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=1021995&r1=1021994&r2=1021995&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 Wed Oct 13 04:46:03 2010
@@ -57,6 +57,8 @@ public class GadgetsHandlerTest extends
private static final String GADGET2_URL = FakeProcessor.SPEC_URL2 .toString();
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 final FakeTimeSource timeSource = new FakeTimeSource();
private final FakeProcessor processor = new FakeProcessor();
@@ -78,8 +80,8 @@ public class GadgetsHandlerTest extends
private void registerGadgetsHandler(SecurityTokenCodec codec) {
BeanFilter beanFilter = new BeanFilter();
- GadgetsHandlerService service =
- new GadgetsHandlerService(timeSource, processor, urlGenerator, codec, beanFilter);
+ GadgetsHandlerService service = new GadgetsHandlerService(timeSource, processor,
+ urlGenerator, codec, SPEC_REFRESH_INTERVAL, beanFilter);
GadgetsHandler handler =
new GadgetsHandler(new TestExecutorService(), service, beanFilter);
registry = new DefaultHandlerRegistry(
@@ -215,6 +217,8 @@ public class GadgetsHandlerTest extends
SecurityTokenCodec codec = EasyMock.createMock(SecurityTokenCodec.class);
Capture<SecurityToken> tokenCapture = new Capture<SecurityToken>();
EasyMock.expect(codec.encodeToken(EasyMock.capture(tokenCapture))).andReturn(TOKEN).anyTimes();
+ EasyMock.expect(codec.getTokenExpiration(EasyMock.capture(tokenCapture)))
+ .andReturn(EXPIRY_TIME_MS).anyTimes();
replay(codec);
registerGadgetsHandler(codec);
@@ -292,6 +296,8 @@ public class GadgetsHandlerTest extends
.andReturn(TOKEN);
EasyMock.expect(codec.encodeToken(EasyMock.isA(SecurityToken.class)))
.andThrow(new SecurityTokenException("blah"));
+ EasyMock.expect(codec.getTokenExpiration(EasyMock.isA(SecurityToken.class)))
+ .andReturn(EXPIRY_TIME_MS).anyTimes();
replay(codec);
registerGadgetsHandler(codec);