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