Author: tmortagne
Date: 2008-02-21 15:06:38 +0100 (Thu, 21 Feb 2008)
New Revision: 7901

Modified:
   xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/pom.xml
   
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/AllTests.java
   
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/LDAPAuthTest.java
   
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/framework/XWikiLDAPTestSetup.java
Log:
Add functional test for XWIKI-2138.

Modified: 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/pom.xml
===================================================================
--- xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/pom.xml  
2008-02-21 13:37:42 UTC (rev 7900)
+++ xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/pom.xml  
2008-02-21 14:06:38 UTC (rev 7901)
@@ -41,6 +41,14 @@
       <scope>test</scope>
     </dependency>
     
+    <dependency>
+      <groupId>com.xpn.xwiki.products</groupId>
+      <artifactId>xwiki-enterprise-test-selenium</artifactId>
+      <version>${pom.version}</version>
+      <classifier>tests</classifier>
+      <scope>test</scope>
+    </dependency>
+    
     <!-- Needed at test time. Some versions of Maven don't inherit provided 
dependencies. -->
     <dependency>
       <groupId>javax.servlet</groupId>
@@ -49,6 +57,13 @@
       <scope>test</scope>
     </dependency>
     
+    <dependency>
+      <groupId>org.openqa.selenium.client-drivers</groupId>
+      <artifactId>selenium-java-client-driver</artifactId>
+      <version>0.9.2</version>
+      <scope>test</scope>
+    </dependency>
+    
     <!-- Dependencies for LDAP unit tests -->
     <dependency>
       <groupId>org.apache.directory.server</groupId>
@@ -84,16 +99,76 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
       </plugin>
-      <!-- Step 4: Start XWiki, Execute the tests and Stop XWiki -->
+      <!-- Step 4: Start Selenium -->
       <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>selenium-maven-plugin</artifactId>
+        <version>1.0-beta-2</version>
+        <executions>
+          <execution>
+            <id>start-selenium</id>
+            <phase>pre-integration-test</phase>
+            <goals>
+              <goal>start-server</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <background>true</background>
+          <multiWindow>true</multiWindow>
+          <port>4444</port>
+        </configuration>
+      </plugin>
+      <!-- Step 5: Start XWiki, Execute the tests and Stop XWiki -->
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <configuration> 
-          <!-- Display report on screen when all tests are completed -->  
-          <useFile>false</useFile>
-          <reportFormat>plain</reportFormat>
-        </configuration>
       </plugin>
     </plugins>
   </build>
+  <profiles>
+    <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>konqueror</id>
+      <properties>
+        <browser>*konqueror</browser>
+      </properties>
+    </profile>
+    <profile>
+      <id>otherbrowser</id>
+      <properties>
+        <browser>*custom ${browserPath}</browser>
+      </properties>
+    </profile>
+  </profiles>
+  <repositories>
+    <repository>
+      <id>openqa.org</id>
+      <name>Openqa Repository</name>
+      <url>http://maven.openqa.org</url>
+      <layout>default</layout>
+      <snapshots>
+        <enabled>true</enabled>
+        <updatePolicy>daily</updatePolicy>
+        <checksumPolicy>ignore</checksumPolicy>
+      </snapshots>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+    </repository>
+  </repositories>
 </project>
\ No newline at end of file

Modified: 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/AllTests.java
===================================================================
--- 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/AllTests.java
       2008-02-21 13:37:42 UTC (rev 7900)
+++ 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/AllTests.java
       2008-02-21 14:06:38 UTC (rev 7901)
@@ -19,21 +19,24 @@
  */
 package com.xpn.xwiki.it;
 
+import java.lang.reflect.Method;
+
 import com.xpn.xwiki.it.framework.XWikiLDAPTestSetup;
+import com.xpn.xwiki.test.XWikiTestSetup;
 
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 /**
- * A class listing all the Functional tests to execute. We need such a class 
(rather than
- * letting the JUnit Runner discover the different TestCases classes by 
itself) because we want to
+ * A class listing all the Functional tests to execute. We need such a class 
(rather than letting
+ * the JUnit Runner discover the different TestCases classes by itself) 
because we want to
  * start/stop XWiki before and after the tests start (but only once).
  * 
  * @version $Id: $
  */
 public class AllTests extends TestCase
-{   
+{
     /**
      * The pattern to filter the tests to launch.
      */
@@ -53,11 +56,14 @@
         // (there are complex solutions like searching for all tests by 
parsing the source tree).
         // I think there are TestSuite that do this out there but I haven't 
looked for them yet.
 
-        addTestCase(suite, LDAPAuthTest.class);
         addTestCase(suite, XWikiLDAPUtilsTest.class);
         addTestCase(suite, XWikiLDAPConnectionTest.class);
 
+        // Selenium
+        addTestCaseSuite(suite, LDAPAuthTest.class);
+
         return new XWikiLDAPTestSetup(suite);
+        //return new XWikiTestSetup(suite);
     }
 
     private static void addTestCase(TestSuite suite, Class testClass) throws 
Exception
@@ -67,6 +73,14 @@
         }
     }
 
+    private static void addTestCaseSuite(TestSuite suite, Class testClass) 
throws Exception
+    {
+        if (testClass.getName().matches(PATTERN)) {
+            Method method = testClass.getMethod("suite", null);
+            suite.addTest((Test) method.invoke(null, null));
+        }
+    }
+
     private static void addTest(TestSuite suite, Test test, Class testClass) 
throws Exception
     {
         if (testClass.getName().matches(PATTERN)) {

Modified: 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/LDAPAuthTest.java
===================================================================
--- 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/LDAPAuthTest.java
   2008-02-21 13:37:42 UTC (rev 7900)
+++ 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/LDAPAuthTest.java
   2008-02-21 14:06:38 UTC (rev 7901)
@@ -1,27 +1,54 @@
 package com.xpn.xwiki.it;
 
-import junit.framework.TestCase;
+import junit.framework.Test;
 
-public class LDAPAuthTest extends TestCase
+import com.xpn.xwiki.it.framework.XWikiLDAPTestSetup;
+import com.xpn.xwiki.it.selenium.framework.AbstractXWikiTestCase;
+import com.xpn.xwiki.it.selenium.framework.AlbatrossSkinExecutor;
+import com.xpn.xwiki.it.selenium.framework.XWikiTestSuite;
+
+/**
+ * Verify the LDAP login and logout features.
+ * 
+ * @version $Id: $
+ */
+public class LDAPAuthTest extends AbstractXWikiTestCase
 {
+    public static Test suite()
+    {
+        XWikiTestSuite suite = new XWikiTestSuite("Verify the LDAP login and 
logout features");
+        suite.addTestSuite(LDAPAuthTest.class, AlbatrossSkinExecutor.class);
+        return suite;
+    }
+
     /**
-     * Initialize the server.
+     * [EMAIL PROTECTED]
+     * 
+     * @see com.xpn.xwiki.it.selenium.framework.AbstractXWikiTestCase#setUp()
      */
     public void setUp() throws Exception
     {
-        
-    }
+        super.setUp();
+        open("/xwiki/bin/view/Main/");
 
-    public void test()
-    {
-        //
+        // Verify that the user isn't logged in
+        if (isAuthenticated()) {
+            logout();
+        }
+
+        clickLogin();
     }
     
     /**
-     * Shutdown the server.
+     * Validate that it tries to log as "common" XWiki login if user is not 
found in LDAP.
      */
-    public void tearDown() throws Exception
+    public void testLogAsXWikiUser()
     {
-        
+        setFieldValue("j_username", "Admin");
+        setFieldValue("j_password", "admin");
+        checkField("rememberme");
+        submit();
+
+        assertTrue("Admin user has not been authenticated", isAuthenticated());
     }
 }

Modified: 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/framework/XWikiLDAPTestSetup.java
===================================================================
--- 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/framework/XWikiLDAPTestSetup.java
   2008-02-21 13:37:42 UTC (rev 7900)
+++ 
xwiki-products/xwiki-enterprise/trunk/distribution-test/ldap-tests/src/test/it/com/xpn/xwiki/it/framework/XWikiLDAPTestSetup.java
   2008-02-21 14:06:38 UTC (rev 7901)
@@ -53,7 +53,7 @@
         System.getProperty("xwikiExecutionDirectory");
 
     /**
-     * The xwiki.cfg file used by the instance of XWiki Enterprise used for 
theses tests. 
+     * The xwiki.cfg file used by the instance of XWiki Enterprise used for 
theses tests.
      */
     public static final String XWIKI_CFG_FILE =
         EXECUTION_DIRECTORY + "/webapps/xwiki/WEB-INF/xwiki.cfg";
@@ -122,40 +122,43 @@
     {
         super(test);
 
-        FileInputStream fis = new FileInputStream(XWIKI_CFG_FILE);
+        FileInputStream fis;
 
-        // Read properties file.
+        fis = new FileInputStream(XWIKI_CFG_FILE);
         this.initialXWikiConf = new Properties();
         this.initialXWikiConf.load(fis);
+        fis.close();
 
-        // Read properties file.
+        fis = new FileInputStream(XWIKI_CFG_FILE);
         this.currentXWikiConf = new Properties();
         this.currentXWikiConf.load(fis);
-
         fis.close();
 
         this.currentXWikiConf.setProperty("xwiki.authentication.ldap", "1");
-        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.authclass",
-            "com.xpn.xwiki.user.impl.LDAP.LDAPAuthServiceImpl");
+        this.currentXWikiConf.setProperty("xwiki.authentication.authclass",
+            "com.xpn.xwiki.user.impl.LDAP.XWikiLDAPAuthServiceImpl");
         this.currentXWikiConf.setProperty("xwiki.authentication.ldap.server", 
"localhost");
-        // 
currentXWikiConf.setProperty("xwiki.authentication.ldap.check_level", "1");
         this.currentXWikiConf.setProperty("xwiki.authentication.ldap.base_DN", 
"o=sevenSeas");
         this.currentXWikiConf.setProperty("xwiki.authentication.ldap.bind_DN",
             "cn={0},ou=people,o=sevenSeas");
-        // currentXWikiConf.setProperty("xwiki.authentication.ldap.bind_pass", 
"{1}");
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.bind_pass", "{1}");
         this.currentXWikiConf.setProperty("xwiki.authentication.ldap.UID_attr",
             LDAP_USERUID_FIELD);
         this.currentXWikiConf
             .setProperty("xwiki.authentication.ldap.fields_mapping",
                 
"name=uid,last_name=sn,first_name=givenname,fullname=description,email=mail,ldap_dn=dn");
-        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.group_mapping_1",
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.group_mapping",
             "XWiki.XWikiAdminGroup=cn=HMS 
Lydia,ou=crews,ou=groups,o=sevenSeas");
-        // ldap_groupcache_expiration
-        // ldap_user_group
-        // ldap_validate_password
-        // ldap_update_user
-        // ldap_trylocal
-        // ldap_mode_group_sync (create,always)
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.groupcache_expiration",
+            "21800");
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.user_group",
+            "cn=HMS Lydia,ou=crews,ou=groups,o=sevenSeas");
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.validate_password",
 "0");
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.update_user", "1");
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.trylocal", "1");
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.mode_group_sync", 
"always");
+        this.currentXWikiConf.setProperty("xwiki.authentication.ldap.ssl", 
"0");
+        
this.currentXWikiConf.setProperty("xwiki.authentication.ldap.ssl.keystore", "");
     }
 
     /**

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to