You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ws...@apache.org on 2009/03/01 03:26:02 UTC

svn commit: r748952 - in /continuum/trunk/continuum-webapp-test: Readme.txt pom.xml src/test/java/org/apache/continuum/web/test/AboutTest.java src/test/resources/it.properties

Author: wsmoak
Date: Sun Mar  1 02:26:01 2009
New Revision: 748952

URL: http://svn.apache.org/viewvc?rev=748952&view=rev
Log:
[CONTINUUM-2073] Use Cargo plugin's support for multiple data sources.  Add in conditional logic to create the admin user, log in, and save the general configuration so that the About test will succeed.

Modified:
    continuum/trunk/continuum-webapp-test/Readme.txt
    continuum/trunk/continuum-webapp-test/pom.xml
    continuum/trunk/continuum-webapp-test/src/test/java/org/apache/continuum/web/test/AboutTest.java
    continuum/trunk/continuum-webapp-test/src/test/resources/it.properties

Modified: continuum/trunk/continuum-webapp-test/Readme.txt
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/Readme.txt?rev=748952&r1=748951&r2=748952&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/Readme.txt (original)
+++ continuum/trunk/continuum-webapp-test/Readme.txt Sun Mar  1 02:26:01 2009
@@ -6,12 +6,11 @@
  * in Selenium IDE, modify the Base URL if necessary (for example, http://localhost:8080/continuum)
  * in Selenium IDE, click the 'Play entire test suite' icon
 
-Run Selenium tests in src/test/java with Maven
- * Start Continuum, create admin user, and save General Configuration
+Run Selenium tests in src/test/java with Maven and Cargo using support for multiple data sources
  * modify src/test/resources/it.properties as needed
  * mvn clean install
 
-Run Selenium tests in src/test/it with Maven
+Run Selenium tests in src/test/it with Maven and Cargo with alternate configuration
  * modify src/test/resources/it.properties as needed
  * mvn clean install -f it-pom.xml
 

Modified: continuum/trunk/continuum-webapp-test/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/pom.xml?rev=748952&r1=748951&r2=748952&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/pom.xml (original)
+++ continuum/trunk/continuum-webapp-test/pom.xml Sun Mar  1 02:26:01 2009
@@ -29,7 +29,6 @@
   <packaging>pom</packaging>
 
   <build>
-    <!--testSourceDirectory>src/test/it</testSourceDirectory-->
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -73,6 +72,95 @@
         </executions>
       </plugin>
       <plugin>
+        <groupId>org.codehaus.cargo</groupId>
+        <artifactId>cargo-maven2-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+        <executions>
+          <execution>
+            <id>start-container</id>
+            <phase>pre-integration-test</phase>
+            <goals>
+              <goal>start</goal>
+            </goals>
+            <configuration>
+              <wait>false</wait>
+            </configuration>
+          </execution>
+          <execution>
+            <id>stop-container</id>
+            <phase>post-integration-test</phase>
+            <goals>
+              <goal>stop</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <container>
+            <containerId>${container.name}</containerId>
+            <zipUrlInstaller>
+              <url>${container.url}</url>
+              <installDir>${project.build.directory}/installs/${container.name}</installDir>
+            </zipUrlInstaller>
+            <log>${project.build.directory}/logs/${container.name}.log</log>
+            <output>${project.build.directory}/logs/${container.name}.out</output>
+            <timeout>600000</timeout>
+            <systemProperties>
+              <appserver.base>${project.build.directory}</appserver.base>
+              <derby.system.home>${project.build.directory}</derby.system.home>
+            </systemProperties>
+            <dependencies>
+              <dependency>
+                <groupId>org.apache.derby</groupId>
+                <artifactId>derby</artifactId>
+              </dependency>
+              <dependency>
+                <groupId>javax.mail</groupId>
+                <artifactId>mail</artifactId>
+              </dependency>
+              <dependency>
+                <groupId>javax.activation</groupId>
+                <artifactId>activation</artifactId>
+              </dependency>
+            </dependencies>
+          </container>
+          <configuration>
+            <home>${project.build.directory}/${container.name}</home>
+            <type>standalone</type>
+            <properties>
+              <cargo.servlet.port>9595</cargo.servlet.port>
+              <cargo.datasource.datasource.users>
+                cargo.datasource.driver=org.apache.derby.jdbc.EmbeddedDriver|
+                cargo.datasource.url=jdbc:derby:${project.build.directory}/databases/${container.name}/users;create=true|
+                cargo.datasource.jndi=jdbc/users|
+                cargo.datasource.username=sa
+              </cargo.datasource.datasource.users>
+              <cargo.datasource.datasource.builds>
+                cargo.datasource.driver=org.apache.derby.jdbc.EmbeddedDriver|
+                cargo.datasource.url=jdbc:derby:${project.build.directory}/databases/${container.name}/builds;create=true|
+                cargo.datasource.jndi=jdbc/continuum|
+                cargo.datasource.username=sa
+              </cargo.datasource.datasource.builds>
+              <cargo.resource.resource.mail>
+                cargo.resource.name=mail/Session|
+                cargo.resource.type=javax.mail.Session|
+                cargo.resource.factory=org.apache.naming.factory.MailSessionFactory|
+                cargo.resource.parameters=mail.smtp.host=localhost
+              </cargo.resource.resource.mail>
+            </properties>
+            <deployables>
+              <deployable>
+                <groupId>${project.goupId}</groupId>
+                <artifactId>continuum-webapp</artifactId>
+                <type>war</type>
+                <properties>
+                  <context>continuum</context>
+                </properties>
+              </deployable>
+            </deployables>
+          </configuration>
+        </configuration>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <executions>
@@ -106,17 +194,66 @@
       <scope>test</scope>
     </dependency>
     
-    <!-- dependencies below are for code in src/test/it -->
+    <!-- deployables -->
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
+      <groupId>org.apache.continuum</groupId>
+      <artifactId>continuum-webapp</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+    </dependency>
+
+    <!-- container dependencies -->
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>10.1.3.1</version>
+    </dependency>
+    <dependency>
+      <groupId>javax.mail</groupId>
+      <artifactId>mail</artifactId>
       <version>1.4</version>
     </dependency>
     <dependency>
-      <groupId>org.openqa.selenium.server</groupId>
-      <artifactId>selenium-server</artifactId>
-      <version>0.8.1</version>
+      <groupId>javax.activation</groupId>
+      <artifactId>activation</artifactId>
+      <version>1.1</version>
     </dependency>
-
   </dependencies>
+
+  <profiles>
+    <profile>
+      <id>tomcat5x</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <properties>
+        <container.name>tomcat5x</container.name>
+        <container.url>http://apache.mirrors.redwire.net/tomcat/tomcat-5/v5.5.27/bin/apache-tomcat-5.5.27.zip
+        </container.url>
+      </properties>
+    </profile>
+    <profile>
+      <id>firefox</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <properties>
+        <browser>*firefox</browser>
+      </properties>
+    </profile>
+    <profile>
+      <id>iexplore</id>
+      <properties>
+        <browser>*iexplore</browser>
+      </properties>
+    </profile>
+    <profile>
+      <id>otherbrowser</id>
+      <properties>
+        <browser>*custom ${browserPath}</browser>
+      </properties>
+    </profile>
+
+  </profiles>
+
 </project>

Modified: continuum/trunk/continuum-webapp-test/src/test/java/org/apache/continuum/web/test/AboutTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/java/org/apache/continuum/web/test/AboutTest.java?rev=748952&r1=748951&r2=748952&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/java/org/apache/continuum/web/test/AboutTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/java/org/apache/continuum/web/test/AboutTest.java Sun Mar  1 02:26:01 2009
@@ -12,6 +12,10 @@
 	private String baseUrl;
     public String maxWaitTimeInMs;
     private Selenium selenium;
+    private String adminUsername;
+    private String adminFullname;
+    private String adminEmail;
+    private String adminPassword;
 
     public void setUp() throws Exception {
 
@@ -25,8 +29,19 @@
         int seleniumPort = Integer.parseInt( (p.getProperty( "SELENIUM_PORT" ) ) );
         String seleniumBrowser = p.getProperty( "SELENIUM_BROWSER" );
 
+        adminUsername = p.getProperty( "ADMIN_USERNAME" );
+        adminFullname = p.getProperty( "ADMIN_FULLNAME" );
+        adminEmail = p.getProperty( "ADMIN_EMAIL" );
+        adminPassword = p.getProperty( "ADMIN_PASSWORD" );
+
         selenium = new DefaultSelenium( seleniumHost, seleniumPort, seleniumBrowser, baseUrl );
         selenium.start();
+
+        //make sure the initial config has been done
+        createAdminUser();
+        adminLogin();
+        generalConfiguration();
+
     }
 
     public void tearDown() throws Exception {
@@ -34,9 +49,46 @@
     }
 
     public void testAboutDisplay() {
+
     	selenium.open( baseUrl + "/about.action" );
     	selenium.waitForPageToLoad( maxWaitTimeInMs );
 
     	assertEquals("Continuum - About", selenium.getTitle());
     }
-}
+
+    private void createAdminUser() {
+
+        selenium.open( baseUrl );
+
+        if( selenium.getTitle().endsWith( "Create Admin User") ) {
+            selenium.type( "user.fullName", adminFullname );
+            selenium.type( "user.email", adminEmail );
+            selenium.type( "user.password", adminPassword );
+            selenium.type( "user.confirmPassword", adminPassword );
+            selenium.click( "adminCreateForm_0" );
+            selenium.waitForPageToLoad( maxWaitTimeInMs );
+        }
+    }
+
+    private void adminLogin() {
+
+        selenium.open( baseUrl );
+
+        if ( selenium.getTitle().endsWith( "Login Page") ) {
+            selenium.type( "username", adminUsername );
+            selenium.type( "password", adminPassword );
+            selenium.click( "loginForm__login");
+            selenium.waitForPageToLoad( maxWaitTimeInMs );
+        }
+    }
+
+    private void generalConfiguration() {
+
+        selenium.open( baseUrl );
+
+        if ( selenium.getTitle().endsWith( "Configuration" ) ) {
+            selenium.click( "configuration_" );
+            selenium.waitForPageToLoad( maxWaitTimeInMs );
+        }
+    }
+}
\ No newline at end of file

Modified: continuum/trunk/continuum-webapp-test/src/test/resources/it.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/resources/it.properties?rev=748952&r1=748951&r2=748952&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/resources/it.properties (original)
+++ continuum/trunk/continuum-webapp-test/src/test/resources/it.properties Sun Mar  1 02:26:01 2009
@@ -1,9 +1,11 @@
 #properties for integration tests
 
-BASE_URL=http://localhost:9090
+BASE_URL=http://localhost:9595/continuum
 MAX_WAIT_TIME_IN_MS=60000
 
 ADMIN_USERNAME=admin
+ADMIN_FULLNAME=Administrator
+ADMIN_EMAIL=admin@localhost
 ADMIN_PASSWORD=admin123
 
 SELENIUM_HOST=localhost