Author: [email protected]
Date: Fri Apr  6 17:11:56 2012
New Revision: 2196

Log:
[AMDATUOPENSOCIAL-210] Moved Http and assertion tools to auth tools module

Modified:
   
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/AmdatuContainerConfig.java
   
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/OAuthModuleImpl.java
   
trunk/amdatu-opensocial/test-integration/base/src/main/java/org/amdatu/opensocial/test/integration/base/OpenSocialFixture.java
   trunk/amdatu-opensocial/test-integration/pom.xml
   trunk/amdatu-opensocial/test-integration/tests/pom.xml
   
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/DashboardTest.java
   
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTest.java
   
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTestBase.java
   
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/util/AuthUtil.java
   
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/util/ServiceUtil.java

Modified: 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/OAuthModuleImpl.java
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/OAuthModuleImpl.java
  (original)
+++ 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/OAuthModuleImpl.java
  Fri Apr  6 17:11:56 2012
@@ -15,30 +15,30 @@
  */
 package org.amdatu.opensocial.shindig.module;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.logging.Logger;
-
-import org.amdatu.opensocial.shindig.OAuthModule;
-import org.apache.commons.lang.StringUtils;
-import org.apache.shindig.auth.DefaultSecurityTokenCodec;
-import org.apache.shindig.auth.SecurityTokenCodec;
-import org.apache.shindig.common.crypto.BasicBlobCrypter;
-import org.apache.shindig.common.crypto.BlobCrypter;
-import org.apache.shindig.common.crypto.Crypto;
-import org.apache.shindig.config.ContainerConfig;
-import org.apache.shindig.gadgets.http.HttpFetcher;
-import org.apache.shindig.gadgets.oauth.OAuthFetcherConfig;
-import org.apache.shindig.gadgets.oauth.OAuthRequest;
-import org.apache.shindig.gadgets.oauth.OAuthStore;
-import org.osgi.service.log.LogService;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.Singleton;
-import com.google.inject.name.Named;
-import com.google.inject.name.Names;
+import org.amdatu.opensocial.shindig.OAuthModule;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Logger;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.shindig.auth.DefaultSecurityTokenCodec;
+import org.apache.shindig.auth.SecurityTokenCodec;
+import org.apache.shindig.common.crypto.BasicBlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypter;
+import org.apache.shindig.common.crypto.Crypto;
+import org.apache.shindig.gadgets.http.HttpFetcher;
+import org.apache.shindig.gadgets.oauth.OAuthFetcherConfig;
+import org.apache.shindig.gadgets.oauth.OAuthRequest;
+import org.apache.shindig.gadgets.oauth.OAuthStore;
+import org.osgi.service.log.LogService;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+import com.google.inject.name.Names;
 
 public class OAuthModuleImpl extends AbstractModule implements OAuthModule {
 
@@ -60,7 +60,7 @@
         // Used for persistent storage of OAuth access tokens.
         bind(OAuthStore.class).toInstance(m_gadgetStore);
         bind(OAuthRequest.class).toProvider(OAuthRequestProvider.class);
-        bind(SecurityTokenCodec.class).to(AmdatuSecurityTokenCodec.class);
+        bind(SecurityTokenCodec.class).to(DefaultSecurityTokenCodec.class);
     }
 
     @Singleton
@@ -100,13 +100,4 @@
             return new OAuthRequest(m_config, m_fetcher);
         }
     }
-
-    // Overrules SecurityTokenCodec to be able to customize container 
properties which
-    // is necessary in some cases (i.e. security token key file)
-    public static class AmdatuSecurityTokenCodec extends 
DefaultSecurityTokenCodec {
-        @Inject
-        public AmdatuSecurityTokenCodec(final ContainerConfig config) {
-            super(new AmdatuContainerConfig(config));
-        }
-    }
 }

Modified: 
trunk/amdatu-opensocial/test-integration/base/src/main/java/org/amdatu/opensocial/test/integration/base/OpenSocialFixture.java
==============================================================================
--- 
trunk/amdatu-opensocial/test-integration/base/src/main/java/org/amdatu/opensocial/test/integration/base/OpenSocialFixture.java
      (original)
+++ 
trunk/amdatu-opensocial/test-integration/base/src/main/java/org/amdatu/opensocial/test/integration/base/OpenSocialFixture.java
      Fri Apr  6 17:11:56 2012
@@ -20,8 +20,8 @@
 import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
 
 import org.amdatu.core.itest.base.TestContext;
-import org.amdatu.opensocial.shindig.ShindigService;
 
+import java.io.File;
 import java.util.Properties;
 
 import org.ops4j.pax.exam.CoreOptions;
@@ -37,19 +37,25 @@
     public Option provision() {
         return composite(
             // NB: enable this line to enable JAXB debugging
-            // 
org.ops4j.pax.exam.CoreOptions.systemProperty("jaxp.debug").value("true"),
+            // NB2: The last time I tried, enabling this line here didn't 
work. I had to manually set the
+            // System property in OpenSocialTest.testContextSetUp
+            // 
org.ops4j.pax.exam.CoreOptions.systemProperty("jaxp.debug").value("1"),
 
-            // Add sun.misc and com.sun.management to system packages
+            // NB3: As NB2 says, this line seems to have no effect at all
             
CoreOptions.systemProperty("javax.xml.parsers.DocumentBuilderFactory").value(
                 "org.apache.crimson.jaxp.DocumentBuilderFactoryImpl"),
+
             CoreOptions.provision(
                 // Wrap libraries we depend on as OSGi bundles and provision 
those
                 
wrappedBundle(mavenBundle().groupId("commons-httpclient").artifactId("commons-httpclient")
                     .versionAsInProject()),
                 
wrappedBundle(mavenBundle().groupId("commons-codec").artifactId("commons-codec").versionAsInProject()),
-                // 
wrappedBundle(mavenBundle().groupId("commons-logging").artifactId("commons-logging").versionAsInProject()),
                 
wrappedBundle(mavenBundle().groupId("org.json").artifactId("json").versionAsInProject()),
 
+                // Tools needed by this test
+                
wrappedBundle(mavenBundle().groupId("org.amdatu.auth").artifactId("org.amdatu.auth.tools.itest")
+                    .versionAsInProject()),
+
                 // The following 2 artifacts are necessary for default tenant 
resolving
                 
mavenBundle().groupId("org.amdatu.web").artifactId("org.amdatu.web.tenantresolver.hostname")
                     .versionAsInProject(),
@@ -82,12 +88,9 @@
     }
 
     public void configureDefaults(TestContext testContext) throws Exception {
-        configureHttpService(testContext);
-        configureShindig(testContext);
-    }
-
-    public void configureShindig(TestContext testContext) throws Exception {
+        testContext.updateConfig("org.apache.felix.http", getHttpServiceCfg());
         testContext.updateConfig(SHINDIG_PID, getShindigCfg());
+        testContext.updateConfig("org.amdatu.auth.tokenprovider", 
getTokenProviderCfg());
     }
 
     private Properties getShindigCfg() {
@@ -145,11 +148,15 @@
         properties.put("shindig.port", PORTNR);
         properties.put("shindig.proxy.remapInternalServerError", "false");
         properties.put("shindig.securitytoken.secretkey", "[randomkey]");
-        return properties;
-    }
 
-    public void configureHttpService(TestContext testContext) throws Exception 
{
-        testContext.updateConfig("org.apache.felix.http", getHttpServiceCfg());
+        // The amdatu.dir property is set by the itest base and provides us the
+        // directory in which Amdatu will run. If we would retrieve the current
+        // directory, it would point to the parent directory omitting the 
generated
+        // sub directory (i.e. 'examtest3814362468014811586.dir')
+        String dir = (new File(System.getProperty("amdatu.dir"), 
"work/shindig")).getAbsolutePath().replace("\\", "/");
+        properties.put("workdir", dir);
+
+        return properties;
     }
 
     private Properties getHttpServiceCfg() {
@@ -161,4 +168,10 @@
         properties.put("org.apache.felix.log.storeDebug", "true");
         return properties;
     }
+
+    private Properties getTokenProviderCfg() {
+        Properties properties = new Properties();
+        properties.put("secretkey", "[randomkey]");
+        return properties;
+    }
 }

Modified: trunk/amdatu-opensocial/test-integration/pom.xml
==============================================================================
--- trunk/amdatu-opensocial/test-integration/pom.xml    (original)
+++ trunk/amdatu-opensocial/test-integration/pom.xml    Fri Apr  6 17:11:56 2012
@@ -29,7 +29,7 @@
   <properties>
     <org.amdatu.core.version>0.2.1</org.amdatu.core.version>
     <org.amdatu.web.version>0.2.1</org.amdatu.web.version>
-    <org.amdatu.auth.version>0.2.0</org.amdatu.auth.version>
+    <org.amdatu.auth.version>0.2.2-SNAPSHOT</org.amdatu.auth.version>
   </properties>
 
   <modules>

Modified: trunk/amdatu-opensocial/test-integration/tests/pom.xml
==============================================================================
--- trunk/amdatu-opensocial/test-integration/tests/pom.xml      (original)
+++ trunk/amdatu-opensocial/test-integration/tests/pom.xml      Fri Apr  6 
17:11:56 2012
@@ -111,6 +111,13 @@
         <scope>test</scope>
         <type>bundle</type>
       </dependency>
+      <dependency>
+        <groupId>org.amdatu.auth</groupId>
+        <artifactId>org.amdatu.auth.tools.itest</artifactId>
+        <version>${org.amdatu.auth.version}</version>
+        <scope>test</scope>
+        <type>jar</type>
+      </dependency>
 
       <!--
         Amdatu OpenSocial itest base to be used by the tests.
@@ -204,6 +211,16 @@
       <type>bundle</type>
     </dependency>
     <dependency>
+      <groupId>org.amdatu.auth</groupId>
+      <artifactId>org.amdatu.auth.tokenprovider</artifactId>
+      <type>bundle</type>
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.auth</groupId>
+      <artifactId>org.amdatu.auth.tools.itest</artifactId>
+      <type>jar</type>
+    </dependency>
+    <dependency>
       <groupId>org.amdatu.opensocial</groupId>
       <artifactId>org.amdatu.opensocial.test.integration.base</artifactId>
       <type>bundle</type>

Modified: 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/DashboardTest.java
==============================================================================
--- 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/DashboardTest.java
        (original)
+++ 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/DashboardTest.java
        Fri Apr  6 17:11:56 2012
@@ -21,6 +21,7 @@
 import static javax.ws.rs.HttpMethod.PUT;
 import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static org.amdatu.auth.tools.itest.UserAdminTools.addTestUser;
 import static 
org.amdatu.opensocial.test.integration.tests.util.AssertUtil.assertEquals;
 import static 
org.amdatu.opensocial.test.integration.tests.util.AssertUtil.assertFalse;
 import static 
org.amdatu.opensocial.test.integration.tests.util.AssertUtil.assertTrue;
@@ -30,7 +31,6 @@
 import static org.apache.commons.httpclient.HttpStatus.SC_UNAUTHORIZED;
 
 import 
org.amdatu.opensocial.test.integration.tests.framework.OpenSocialTestBase;
-import org.amdatu.opensocial.test.integration.tests.util.AuthUtil;
 import org.amdatu.opensocial.test.integration.tests.util.BeanUtil;
 
 import java.io.StringReader;
@@ -59,8 +59,8 @@
         invokeHTTP("/rest/dashboards", GET, SC_UNAUTHORIZED);
 
         // 3. Now add user 'georged' and login as this user
-        AuthUtil.addTestUser(m_userAdmin);
-        loginAsAdministrator();
+        addTestUser(m_userAdmin);
+        m_httpTools.loginAsAdministrator();
 
         // 4a. GET /rest/dashboards (XML). We should receive an empty set of 
dashboards
         String response = invokeHTTP("/rest/dashboards", GET, SC_OK);

Modified: 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTest.java
==============================================================================
--- 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTest.java
     (original)
+++ 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTest.java
     Fri Apr  6 17:11:56 2012
@@ -15,7 +15,7 @@
  */
 package org.amdatu.opensocial.test.integration.tests.framework;
 
-import static 
org.amdatu.opensocial.test.integration.tests.util.ServiceUtil.assertAvailable;
+import static org.amdatu.auth.tools.itest.ServiceTools.assertAvailable;
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsNull.notNullValue;
 import static org.junit.Assert.assertThat;
@@ -50,12 +50,7 @@
 @ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
 @ExamFactory(AmdatuFactory.class)
 public class OpenSocialTest {
-    public final static String TEST_USERNAME = "georged";
-    public final static String TEST_PASSWORD = "georged";
-    
-    public final static String ADMIN_USERNAME = "Administrator";
-    public final static String ADMIN_PASSWORD = "Administrator";
-    
+
     // Fixtures used by the OpenSocial integration tests
     private CoreFixture m_coreFixture = new CoreFixture();
     private WebFixture m_webFixture = new WebFixture();
@@ -63,7 +58,7 @@
 
     private LogService m_logService;
     private UserAdmin m_userAdmin;
-    
+
     @Configuration
     public Option[] config() {
         return options(
@@ -96,18 +91,18 @@
     public void runTest(BundleContext bundleContext) throws Exception {
         // Setup test context
         TestContext testContext = testContextSetUp(bundleContext);
-
+        
         // Initialize services
         m_logService = assertAvailable(testContext, LogService.class);
         m_userAdmin = assertAvailable(testContext, UserAdmin.class);
-        
+
         assertAvailable(testContext, ShindigService.class);
         assertAvailable(testContext, HttpService.class);
         assertAvailable(testContext, TokenProvider.class);
         assertAvailable(testContext, GadgetManagement.class);
         assertAvailable(testContext, OpenSocialContainer.class);
         assertAvailable(testContext, LoginService.class);
-        
+
         // Run the tests
         test(DashboardTest.class);
 

Modified: 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTestBase.java
==============================================================================
--- 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTestBase.java
 (original)
+++ 
trunk/amdatu-opensocial/test-integration/tests/src/test/java/org/amdatu/opensocial/test/integration/tests/framework/OpenSocialTestBase.java
 Fri Apr  6 17:11:56 2012
@@ -16,24 +16,16 @@
 package org.amdatu.opensocial.test.integration.tests.framework;
 
 import static junit.framework.Assert.assertTrue;
-import static 
org.amdatu.opensocial.test.integration.tests.framework.OpenSocialTest.ADMIN_PASSWORD;
-import static 
org.amdatu.opensocial.test.integration.tests.framework.OpenSocialTest.ADMIN_USERNAME;
 
+import org.amdatu.auth.tools.itest.HttpTools;
 import org.amdatu.opensocial.test.integration.base.OpenSocialFixture;
 import org.amdatu.opensocial.test.integration.tests.util.AssertUtil;
-import org.amdatu.opensocial.test.integration.tests.util.AuthUtil;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.ws.rs.core.MediaType;
 
 import junit.framework.Assert;
 
-import org.apache.commons.httpclient.HeaderElement;
 import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
 import org.apache.commons.httpclient.HttpMethod;
 import org.apache.commons.httpclient.NameValuePair;
 import org.apache.commons.httpclient.methods.DeleteMethod;
@@ -49,11 +41,11 @@
 public abstract class OpenSocialTestBase {
     protected volatile LogService m_logService;
     protected volatile UserAdmin m_userAdmin;
+    
+    protected HttpTools m_httpTools = new HttpTools();
 
-    private String m_host = null;
     private String m_baseUrl = null;
-    private Map<String, HeaderElement> m_cookieHeaderElement = new 
HashMap<String, HeaderElement>();
-
+ 
     public abstract void execute() throws Exception;
 
     public void setLogService(LogService logService) {
@@ -109,7 +101,7 @@
                 }
             }
         }
-        addCookieHeader(method);
+        m_httpTools.addCookieHeader(method);
 
         try {
             // Execute the method, this should return a 200
@@ -129,20 +121,6 @@
         }
     }
 
-    protected void addCookieHeader(HttpMethod method) {
-        if (m_cookieHeaderElement.get(m_host) != null) {
-            String header =
-                m_cookieHeaderElement.get(m_host).getName() + "=" + 
m_cookieHeaderElement.get(m_host).getValue();
-            method.addRequestHeader("Cookie", header);
-        }
-    }
-
-    protected void loginAsAdministrator() throws HttpException, IOException {
-        if (m_host == null) {
-            m_host = OpenSocialFixture.HOSTNAME;
-        }
-        m_cookieHeaderElement.put(m_host, AuthUtil.login(m_host, 
ADMIN_USERNAME, ADMIN_PASSWORD));
-    }
         
     protected void assertEqual(JSONObject object, String dotExpr, String 
value) throws JSONException {
         String[] dotExpression = dotExpr.split("\\.");
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to