Author: beaton
Date: Thu Oct  2 10:05:16 2008
New Revision: 701190

URL: http://svn.apache.org/viewvc?rev=701190&view=rev
Log:
A few tests for the default security token decoder.


Added:
    
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenDecoderTest.java
   (with props)

Added: 
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenDecoderTest.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenDecoderTest.java?rev=701190&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenDecoderTest.java
 (added)
+++ 
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenDecoderTest.java
 Thu Oct  2 10:05:16 2008
@@ -0,0 +1,110 @@
+/*
+ * 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 org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import com.google.common.collect.Lists;
+
+import org.apache.shindig.common.ContainerConfig;
+import org.apache.shindig.common.ContainerConfigException;
+import org.junit.Test;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * Tests of DefaultSecurityTokenDecoder
+ */
+public class DefaultSecurityTokenDecoderTest {
+
+  private static class FakeContainerConfig extends ContainerConfig {
+    private final String tokenType;
+
+    public FakeContainerConfig(String tokenType) throws 
ContainerConfigException {
+      super(null);
+      this.tokenType = tokenType;
+    }
+    
+    @Override
+    public String get(String container, String parameter) {
+      if ("gadgets.securityTokenType".equals(parameter)) {
+        if ("default".equals(container)) {
+          return tokenType;
+        }
+      } else if ("gadgets.securityTokenKeyFile".equals(parameter)) {
+        return "container key file: " + container;
+      }
+      return null;
+    }
+    
+    @Override
+    public Collection<String> getContainers() {
+      return Lists.newArrayList("somecontainer");
+    }
+  }
+  
+  @Test
+  public void testBasicDecoder() throws Exception {
+    DefaultSecurityTokenDecoder decoder = new DefaultSecurityTokenDecoder(
+        new FakeContainerConfig("insecure"));
+    String token = "o:v:app:domain:appurl:12345";
+    Map<String, String> parameters = Collections.singletonMap(
+        SecurityTokenDecoder.SECURITY_TOKEN_NAME, token);
+    SecurityToken st = decoder.createToken(parameters);
+    assertEquals("o", st.getOwnerId());
+    assertEquals("v", st.getViewerId());
+    assertEquals("appurl", st.getAppUrl());
+  }
+  
+  @Test
+  public void testInvalidDecoder() throws Exception {
+    try {
+      new DefaultSecurityTokenDecoder(new FakeContainerConfig("garbage"));
+      fail("Should have thrown");
+    } catch (RuntimeException e) {
+      assertTrue("exception should contain garbage: " + e, 
e.getMessage().contains("garbage"));
+    }
+  }
+  
+  @Test
+  public void testNullDecoder() throws Exception {
+    try {
+      new DefaultSecurityTokenDecoder(new FakeContainerConfig(null));
+      fail("Should have thrown");
+    } catch (RuntimeException e) {
+      assertTrue("exception should contain null: " + e, 
e.getMessage().contains("null"));
+    }
+  }
+  
+  @Test
+  public void testRealDecoder() throws Exception {
+    // Just verifies that "secure" tokens get routed to the right decoder 
class.
+    try {
+      new DefaultSecurityTokenDecoder(new FakeContainerConfig("secure"));
+      fail("Should have thrown");
+    } catch (RuntimeException e) {
+      assertTrue("root cause should have been FileNotFoundException: " + e,
+          e.getMessage().contains("FileNotFoundException: container key file: 
somecontainer"));
+    }    
+  }
+}

Propchange: 
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/auth/DefaultSecurityTokenDecoderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to