Make it easier to use test utils

This commit is contained in:
Stian Thorgersen 2013-10-12 11:29:12 +01:00
parent 63ee50e39e
commit 42aba41d6b
6 changed files with 110 additions and 72 deletions

View file

@ -400,6 +400,11 @@
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
<version>2.2</version> <version>2.2</version>
</plugin> </plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
</plugin>
</plugins> </plugins>
</pluginManagement> </pluginManagement>

View file

@ -1,54 +0,0 @@
Executing testsuite
===================
Browser
-------
The testsuite uses Sellenium. By default it uses the HtmlUnit WebDriver, but can also be executed with Chrome or Firefox.
To run the tests with Firefox add `-Dbrowser=firefox` or for Chrome add `-Dbrowser=chrome`
Test utils
==========
Keycloak server
---------------
To start a basic Keycloak server for testing run:
mvn exec:java -Dexec.mainClass=org.keycloak.testutils.KeycloakServer
or just run KeycloakServer from your favourite IDE!
When starting the server it can also import a realm from a json file:
mvn exec:java -Dexec.mainClass=org.keycloak.testutils.KeycloakServer -Dexec.args="-import testrealm.json"
You can also change the host and port the server is bound to:
mvn exec:java -Dexec.mainClass=org.keycloak.testutils.KeycloakServer -Dexec.args="-b host -p 8080"
TOTP codes
----------
To generate totp codes without Google authenticator run:
mvn exec:java -Dexec.mainClass=org.keycloak.testutils.TotpGenerator -Dexec.args="PJBX GURY NZIT C2JX I44T S3D2 JBKD G6SB"
or just run TotpGenerator from your favourite IDE!
Replace value of -Dexec.args with the secret from the totp configuration page
Mail server
-----------
To start a test mail server for testing email sending run:
mvn exec:java -Dexec.mainClass=org.keycloak.testutils.MailServer
or just run MailServer from your favourite IDE!
To configure Keycloak to use the above server add:
-Dkeycloak.mail.smtp.from=auto@keycloak.org -Dkeycloak.mail.smtp.host=localhost -Dkeycloak.mail.smtp.port=3025

View file

@ -0,0 +1,57 @@
Executing testsuite
===================
Browser
-------
The testsuite uses Sellenium. By default it uses the HtmlUnit WebDriver, but can also be executed with Chrome or Firefox.
To run the tests with Firefox add `-Dbrowser=firefox` or for Chrome add `-Dbrowser=chrome`
Test utils
==========
Keycloak server
---------------
To start a basic Keycloak server for testing run:
mvn exec:java -Pkeycloak-server
or run org.keycloak.testutils.KeycloakServer from your favourite IDE!
When starting the server it can also import a realm from a json file:
mvn exec:java -Pkeycloak-server -Dimport=testrealm.json
TOTP codes
----------
To generate totp codes without Google authenticator run:
mvn exec:java -Ptotp -Dsecret='PJBX GURY NZIT C2JX I44T S3D2 JBKD G6SB'
or run org.keycloak.testutils.TotpGenerator from your favourite IDE!
Replace value of -Dsecret with the secret from the totp configuration page (remember quotes!)
Mail server
-----------
To start a test mail server for testing email sending run:
mvn exec:java -Pmail-server
or run org.keycloak.testutils.MailServer from your favourite IDE!
To configure Keycloak to use the above server add the following system properties:
keycloak.mail.smtp.from=auto@keycloak.org
keycloak.mail.smtp.host=localhost
keycloak.mail.smtp.port=3025
For example if using the test utils Keycloak server start it with:
mvn exec:java -Pkeycloak-server -Dkeycloak.mail.smtp.from=auto@keycloak.org -Dkeycloak.mail.smtp.host=localhost -Dkeycloak.mail.smtp.port=3025

View file

@ -205,26 +205,49 @@
<profiles> <profiles>
<profile> <profile>
<id>jboss-managed</id> <id>keycloak-server</id>
<dependencies> <build>
<dependency> <plugins>
<groupId>org.jboss.as</groupId> <plugin>
<artifactId>jboss-as-arquillian-container-managed</artifactId> <groupId>org.codehaus.mojo</groupId>
<scope>test</scope> <artifactId>exec-maven-plugin</artifactId>
<version>7.1.1.Final</version> <configuration>
</dependency> <mainClass>org.keycloak.testutils.KeycloakServer</mainClass>
</dependencies> </configuration>
</plugin>
</plugins>
</build>
</profile> </profile>
<profile> <profile>
<id>jboss-remote</id> <id>mail-server</id>
<dependencies> <build>
<dependency> <plugins>
<groupId>org.jboss.as</groupId> <plugin>
<artifactId>jboss-as-arquillian-container-remote</artifactId> <groupId>org.codehaus.mojo</groupId>
<scope>test</scope> <artifactId>exec-maven-plugin</artifactId>
<version>7.1.1.Final</version> <configuration>
</dependency> <mainClass>org.keycloak.testutils.MailServer</mainClass>
</dependencies> </configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>totp</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>org.keycloak.testutils.TotpGenerator</mainClass>
<arguments>
<argument>${secret}</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</profile> </profile>
</profiles> </profiles>
</project> </project>

View file

@ -121,6 +121,10 @@ public class KeycloakServer {
} }
} }
if (System.getProperties().containsKey("import")) {
keycloak.importRealm(new FileInputStream(System.getProperty("import")));
}
Runtime.getRuntime().addShutdownHook(new Thread() { Runtime.getRuntime().addShutdownHook(new Thread() {
@Override @Override
public void run() { public void run() {

View file

@ -14,6 +14,9 @@ public class MailServer {
GreenMail greenMail = new GreenMail(setup); GreenMail greenMail = new GreenMail(setup);
greenMail.start(); greenMail.start();
System.out.println("Started mail server (localhost:3025)");
System.out.println();
while (true) { while (true) {
int c = greenMail.getReceivedMessages().length; int c = greenMail.getReceivedMessages().length;