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