Merge pull request #3809 from mposolda/master
KEYCLOAK-4169 Add how-to-run.md to testsuite
This commit is contained in:
commit
2990703aeb
5 changed files with 195 additions and 10 deletions
163
testsuite/integration-arquillian/HOW-TO-RUN.md
Normal file
163
testsuite/integration-arquillian/HOW-TO-RUN.md
Normal file
|
@ -0,0 +1,163 @@
|
|||
How To Run various testsuite configurations
|
||||
===========================================
|
||||
|
||||
## Base steps
|
||||
|
||||
It's recomended to build the workspace including distribution.
|
||||
|
||||
````
|
||||
cd $KEYCLOAK_SOURCES
|
||||
mvn clean install -DskipTests=true
|
||||
cd distribution
|
||||
mvn clean install
|
||||
````
|
||||
|
||||
## Run adapter tests
|
||||
|
||||
### Wildfly
|
||||
|
||||
````
|
||||
# Prepare servers
|
||||
mvn -f testsuite/integration-arquillian/servers/pom.xml clean install \
|
||||
-Pauth-server-wildfly \
|
||||
-Papp-server-wildfly
|
||||
|
||||
# Run tests
|
||||
mvn -f testsuite/integration-arquillian/tests/other/adapters/jboss/wildfly/pom.xml \
|
||||
clean install \
|
||||
-Pauth-server-wildfly \
|
||||
-Papp-server-wildfly
|
||||
````
|
||||
|
||||
### JBoss Fuse 6.3
|
||||
----------------------------------------
|
||||
1) Download JBoss Fuse 6.3 to your filesystem. It can be downloaded from http://origin-repository.jboss.org/nexus/content/groups/m2-proxy/org/jboss/fuse/jboss-fuse-karaf
|
||||
Assumed you downloaded `jboss-fuse-karaf-6.3.0.redhat-229.zip`
|
||||
|
||||
2) Install to your local maven repository and change the properties according to your env (This step can be likely avoided if you somehow configure your local maven settings to point directly to Fuse repo):
|
||||
|
||||
````
|
||||
mvn install:install-file \
|
||||
-DgroupId=org.jboss.fuse \
|
||||
-DartifactId=jboss-fuse-karaf \
|
||||
-Dversion=6.3.0.redhat-229 \
|
||||
-Dpackaging=zip \
|
||||
-Dfile=/mydownloads/jboss-fuse-karaf-6.3.0.redhat-229.zip
|
||||
````
|
||||
|
||||
3) Prepare Fuse and run the tests (change props according to your environment, versions etc):
|
||||
|
||||
````
|
||||
# Prepare Fuse server
|
||||
mvn -f testsuite/integration-arquillian/servers \
|
||||
clean install \
|
||||
-Pauth-server-wildfly \
|
||||
-Papp-server-fuse63 \
|
||||
-Dfuse63.version=6.3.0.redhat-229 \
|
||||
-Dapp.server.karaf.update.config=true \
|
||||
-Dmaven.local.settings=$HOME/.m2/settings.xml \
|
||||
-Drepositories=,http://download.eng.bos.redhat.com/brewroot/repos/sso-7.1-build/latest/maven/ \
|
||||
-Dmaven.repo.local=$HOME/.m2/repository
|
||||
|
||||
# Run the Fuse adapter tests
|
||||
mvn -f testsuite/integration-arquillian/tests/other/adapters/karaf/fuse63/pom.xml \
|
||||
clean install \
|
||||
-Pauth-server-wildfly \
|
||||
-Papp-server-fuse63 \
|
||||
-Dfuse63.version=6.3.0.redhat-198
|
||||
````
|
||||
|
||||
### EAP6 with Hawtio
|
||||
|
||||
1) Download JBoss EAP 6.4.0.GA zip
|
||||
|
||||
2) Install to your local maven repository and change the properties according to your env (This step can be likely avoided if you somehow configure your local maven settings to point directly to EAP repo):
|
||||
|
||||
````
|
||||
mvn install:install-file \
|
||||
-DgroupId=org.jboss.as \
|
||||
-DartifactId=jboss-as-dist \
|
||||
-Dversion=7.5.0.Final-redhat-21 \
|
||||
-Dpackaging=zip \
|
||||
-Dfile=/mydownloads/jboss-eap-6.4.0.zip
|
||||
````
|
||||
|
||||
3) Download Fuse EAP installer (for example from http://origin-repository.jboss.org/nexus/content/groups/m2-proxy/com/redhat/fuse/eap/fuse-eap-installer/6.3.0.redhat-220/ )
|
||||
|
||||
4) Install previously downloaded file manually
|
||||
|
||||
````
|
||||
mvn install:install-file \
|
||||
-DgroupId=com.redhat.fuse.eap \
|
||||
-DartifactId=fuse-eap-installer \
|
||||
-Dversion=6.3.0.redhat-220 \
|
||||
-Dpackaging=jar \
|
||||
-Dfile=/fuse-eap-installer-6.3.0.redhat-220.jar
|
||||
````
|
||||
|
||||
5) Prepare EAP6 with Hawtio and run the test
|
||||
|
||||
````
|
||||
# Prepare EAP6 and deploy hawtio
|
||||
mvn -f testsuite/integration-arquillian/servers \
|
||||
clean install \
|
||||
-Pauth-server-wildfly \
|
||||
-Papp-server-eap6-fuse \
|
||||
-Dapp.server.jboss.version=7.5.0.Final-redhat-21 \
|
||||
-Dfuse.installer.version=6.3.0.redhat-220
|
||||
|
||||
# Run the test
|
||||
mvn -f testsuite/integration-arquillian/tests/other/adapters/jboss/eap6-fuse/pom.xml \
|
||||
clean install \
|
||||
-Pauth-server-wildfly \
|
||||
-Papp-server-eap6-fuse
|
||||
````
|
||||
|
||||
## Migration test
|
||||
|
||||
### DB migration test
|
||||
|
||||
This will:
|
||||
- start Keycloak 1.9.8
|
||||
- import realm and some data to MySQL DB
|
||||
- stop Keycloak 1.9.8
|
||||
- start latest KEycloak and update DB from 1.9.8
|
||||
- Do some test that data are correct
|
||||
|
||||
1) Prepare MySQL DB and ensure that MySQL DB is empty. See [../../misc/DatabaseTesting.md](../../misc/DatabaseTesting.md) for some hints for locally prepare Docker MySQL image.
|
||||
|
||||
2) Run the test (Update according to your DB connection):
|
||||
|
||||
````
|
||||
export DB_HOST=localhost
|
||||
|
||||
mvn -f testsuite/integration-arquillian/pom.xml \
|
||||
clean install \
|
||||
-Pauth-server-wildfly,jpa,auth-server-migration \
|
||||
-Dtest=MigrationTest \
|
||||
-Dmigration.mode=auto \
|
||||
-Dmigrated.auth.server.version=1.9.8.Final \
|
||||
-Djdbc.mvn.groupId=mysql \
|
||||
-Djdbc.mvn.version=5.1.29 \
|
||||
-Djdbc.mvn.artifactId=mysql-connector-java \
|
||||
-Dkeycloak.connectionsJpa.url=jdbc:mysql://$DB_HOST/keycloak \
|
||||
-Dkeycloak.connectionsJpa.user=keycloak \
|
||||
-Dkeycloak.connectionsJpa.password=keycloak
|
||||
````
|
||||
|
||||
### JSON export/import migration test
|
||||
This will
|
||||
- start latest Keycloak and import the file, which was previously exported from Keycloak 1.9.8.Final
|
||||
|
||||
````
|
||||
mvn -f testsuite/integration-arquillian/pom.xml \
|
||||
clean install \
|
||||
-Pauth-server-wildfly,migration-import \
|
||||
-Dtest=MigrationTest \
|
||||
-Dmigration.mode=import \
|
||||
-Dmigrated.auth.server.version=1.9.8.Final
|
||||
````
|
||||
|
||||
|
||||
|
||||
|
|
@ -4,6 +4,9 @@
|
|||
|
||||
For overview see the **Modules Overview** section at the bottom of this README.
|
||||
|
||||
## How to run tests
|
||||
|
||||
See the file [HOW-TO-RUN.md](HOW-TO-RUN.md) .
|
||||
|
||||
## Container Lifecycles
|
||||
|
||||
|
|
|
@ -25,7 +25,8 @@ do
|
|||
if "$UPDATE_CONFIG" == "true"; then
|
||||
echo "Updating Config"
|
||||
./client $CLIENT_AUTH -f update-config.cli
|
||||
if [ $? -ne 0 ]; then
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Call update-config.cli failed!";
|
||||
RESULT=1;
|
||||
else
|
||||
./client $CLIENT_AUTH config:list | grep org.ops4j.pax.url.mvn.
|
||||
|
@ -34,12 +35,16 @@ do
|
|||
|
||||
echo "Installing features."
|
||||
./client $CLIENT_AUTH -f install-features.cli
|
||||
if [ $? -ne 0 ]; then RESULT=1; fi
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Call install-features.cli failed!";
|
||||
RESULT=1;
|
||||
fi
|
||||
|
||||
if "$UPDATE_CONFIG" == "true"; then
|
||||
echo "Updating Config - Keycloak authentication"
|
||||
./client $CLIENT_AUTH -f update-config-auth.cli
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Call update-config-auth.cli failed!";
|
||||
RESULT=1;
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -116,6 +116,7 @@ public abstract class AbstractFuseExampleAdapterTest extends AbstractExampleAdap
|
|||
testRealmLoginPage.form().login("admin", "password");
|
||||
assertCurrentUrlStartsWith(adminInterface);
|
||||
assertTrue(driver.getPageSource().contains("Hello admin!"));
|
||||
assertTrue(driver.getPageSource().contains("This second sentence is returned from a Camel RestDSL endpoint"));
|
||||
|
||||
customerListing.navigateTo();
|
||||
customerListing.clickLogOut();
|
||||
|
|
|
@ -361,14 +361,27 @@ public class MigrationTest extends AbstractKeycloakTest {
|
|||
}
|
||||
|
||||
private void testOfflineTokenLogin() {
|
||||
log.info("test login with old offline token");
|
||||
String oldOfflineToken = suiteContext.getMigrationContext().getOfflineToken();
|
||||
Assert.assertNotNull(oldOfflineToken);
|
||||
if (isImportMigrationMode()) {
|
||||
log.info("Skip offline token login test in the 'import' migrationMode");
|
||||
} else {
|
||||
log.info("test login with old offline token");
|
||||
String oldOfflineToken = suiteContext.getMigrationContext().getOfflineToken();
|
||||
Assert.assertNotNull(oldOfflineToken);
|
||||
|
||||
oauth.realm(MIGRATION);
|
||||
oauth.clientId("migration-test-client");
|
||||
OAuthClient.AccessTokenResponse response = oauth.doRefreshTokenRequest(oldOfflineToken, "b2c07929-69e3-44c6-8d7f-76939000b3e4");
|
||||
AccessToken accessToken = oauth.verifyToken(response.getAccessToken());
|
||||
assertEquals("migration-test-user", accessToken.getPreferredUsername());
|
||||
oauth.realm(MIGRATION);
|
||||
oauth.clientId("migration-test-client");
|
||||
OAuthClient.AccessTokenResponse response = oauth.doRefreshTokenRequest(oldOfflineToken, "b2c07929-69e3-44c6-8d7f-76939000b3e4");
|
||||
AccessToken accessToken = oauth.verifyToken(response.getAccessToken());
|
||||
assertEquals("migration-test-user", accessToken.getPreferredUsername());
|
||||
}
|
||||
}
|
||||
|
||||
private String getMigrationMode() {
|
||||
return System.getProperty("migration.mode");
|
||||
}
|
||||
|
||||
private boolean isImportMigrationMode() {
|
||||
String mode = getMigrationMode();
|
||||
return "import".equals(mode);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue