You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/04/04 14:07:54 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2165] tests
should be fixed
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 10b5edb [OPENMEETINGS-2165] tests should be fixed
10b5edb is described below
commit 10b5edb2703735b9efdeacb07e4abadc366fb797
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat Apr 4 21:07:14 2020 +0700
[OPENMEETINGS-2165] tests should be fixed
---
.../web/pages/install/TestInstall.java | 77 ++++++++++++----------
1 file changed, 41 insertions(+), 36 deletions(-)
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
index f851669..7ac4f34 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.web.pages.install;
-import static com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog.SUBMIT;
import static org.apache.commons.io.FileUtils.deleteQuietly;
import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
import static org.apache.openmeetings.AbstractJUnitDefaults.email;
@@ -31,14 +30,13 @@ import static org.apache.openmeetings.cli.ConnectionPropertiesPatcher.DEFAULT_DB
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
-import java.io.Serializable;
import java.nio.file.Files;
-import java.util.List;
+import java.util.Iterator;
import java.util.Locale;
import java.util.Random;
import java.util.TimeZone;
@@ -50,8 +48,12 @@ import org.apache.openmeetings.util.ConnectionProperties.DbType;
import org.apache.openmeetings.util.crypt.SCryptImplementation;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxClientInfoBehavior;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
-import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.extensions.wizard.WizardButton;
+import org.apache.wicket.protocol.ws.WebSocketAwareCsrfPreventionRequestCycleListener;
+import org.apache.wicket.request.cycle.IRequestCycleListener;
+import org.apache.wicket.request.cycle.RequestCycleListenerCollection;
import org.apache.wicket.util.tester.FormTester;
import org.apache.wicket.util.tester.WicketTester;
import org.junit.jupiter.api.AfterEach;
@@ -60,12 +62,10 @@ import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
-
public class TestInstall {
private static final Logger log = LoggerFactory.getLogger(TestInstall.class);
private static final String WIZARD_PATH = "wizard";
+ private static final String FORM_PATH = WIZARD_PATH + ":form";
private File tempFolder;
protected WicketTester tester;
protected Random rnd = new Random();
@@ -96,6 +96,14 @@ public class TestInstall {
tempFolder = Files.createTempDirectory("omtempdb").toFile();
setH2Home(tempFolder);
tester = getWicketTester((Application)ensureApplication(-1L));
+ RequestCycleListenerCollection listeners = tester.getApplication().getRequestCycleListeners();
+ for (Iterator<IRequestCycleListener> iter = listeners.iterator(); iter.hasNext();) {
+ IRequestCycleListener l = iter.next();
+ if (l instanceof WebSocketAwareCsrfPreventionRequestCycleListener) {
+ listeners.remove(l);
+ break;
+ }
+ }
assertNotNull(WebSession.get(), "Web session should not be null");
Locale[] locales = Locale.getAvailableLocales();
tester.getSession().setLocale(locales[rnd.nextInt(locales.length)]);
@@ -117,62 +125,59 @@ public class TestInstall {
InstallWizardPage page = tester.startPage(InstallWizardPage.class);
tester.assertRenderedPage(InstallWizardPage.class);
InstallWizard wiz = (InstallWizard)page.get(WIZARD_PATH);
- assertNull(wiz.getWizardModel().getActiveStep(), "Model should be null");
- tester.executeBehavior((AbstractAjaxBehavior)page.getBehaviorById(0)); //welcome step
+ assertFalse(wiz.isEnabled(), "Wizard should be disabled");
+ AjaxClientInfoBehavior clientInfo = page.getBehaviors(AjaxClientInfoBehavior.class).get(0);
+ tester.executeBehavior(clientInfo);
+ assertTrue(wiz.isEnabled(), "Wizard should be enabled");
assertNotNull(wiz.getWizardModel().getActiveStep(), "Model should NOT be null");
- AbstractAjaxBehavior prev = getButtonBehavior(tester, WIZARD_PATH, "PREV");
+ WizardButton prev = getWizardButton("previous");
//check enabled, add check for other buttons on other steps
- //FIXME TODO assertFalse(prev.getButton().isEnabled(), "Prev button should be disabled");
- AbstractAjaxBehavior next = getButtonBehavior(tester, WIZARD_PATH, "NEXT");
- AbstractAjaxBehavior finish = getButtonBehavior(tester, WIZARD_PATH, SUBMIT);
- tester.executeBehavior(next); //DB step
- FormTester wizardTester = tester.newFormTester("wizard:form");
+ assertFalse(prev.isEnabled(), "Prev button should be disabled");
+ WizardButton next = getWizardButton("next");
+ AbstractAjaxBehavior finish = (AbstractAjaxBehavior)getWizardButton("finish").getBehaviorById(0);
+ FormTester wizardTester = tester.newFormTester(FORM_PATH);
+ wizardTester.submit(next);
+ wizardTester = tester.newFormTester(FORM_PATH);
wizardTester.select("view:form:dbType", 1);
checkErrors(tester, 0);
- tester.executeBehavior(next); //user step
+ wizardTester.submit(next); //user step
checkErrors(tester, 0);
+ wizardTester = tester.newFormTester(FORM_PATH);
wizardTester.setValue("view:username", adminUsername);
wizardTester.setValue("view:password", userpass);
wizardTester.setValue("view:email", email);
String[] tzIds = TimeZone.getAvailableIDs();
wizardTester.select("view:timeZone", rnd.nextInt(tzIds.length));
wizardTester.setValue("view:group", group);
- tester.executeBehavior(next); //cfg+smtp step
+ wizardTester.submit(next); //cfg+smtp step
checkErrors(tester, 0);
+ wizardTester = tester.newFormTester(FORM_PATH);
wizardTester.setValue("view:smtpPort", "25");
wizardTester.select("view:defaultLangId", 0);
- tester.executeBehavior(next); //converters step
+ wizardTester.submit(next); //converters step
checkErrors(tester, 0);
+ wizardTester = tester.newFormTester(FORM_PATH);
wizardTester.setValue("view:docDpi", "150");
wizardTester.setValue("view:docQuality", "90");
- tester.executeBehavior(next); //crypt step
+ wizardTester.submit(next); //crypt step
// not checking errors
if (countErrors(tester) > 0) {
tester.cleanupFeedbackMessages();
+ wizardTester = tester.newFormTester(FORM_PATH);
wizardTester.setValue("view:docDpi", "150");
wizardTester.setValue("view:docQuality", "90");
- tester.executeBehavior(next); //skip errors
+ wizardTester.submit(next); //skip errors
}
+ wizardTester = tester.newFormTester(FORM_PATH);
wizardTester.setValue("view:cryptClassName", SCryptImplementation.class.getName());
- tester.executeBehavior(next); //install step
+ wizardTester.submit(next); //install step
checkErrors(tester, 0);
tester.executeBehavior(finish);
checkErrors(tester, 0);
}
- public static <T extends Serializable> ButtonAjaxBehavior getButtonBehavior(WicketTester tester, String path, String name) {
- Args.notNull(path, "path");
- Args.notNull(name, "name");
- @SuppressWarnings("unchecked")
- AbstractDialog<T> dialog = (AbstractDialog<T>)tester.getComponentFromLastRenderedPage(path);
- List<ButtonAjaxBehavior> bl = dialog.getBehaviors(ButtonAjaxBehavior.class);
- for (ButtonAjaxBehavior bb : bl) {
- if (name.equals(bb.getButton().getName())) {
- return bb;
- }
- }
- fail(String.format("Button '%s' not found for dialog '%s'", name, path));
- return null;
+ private WizardButton getWizardButton(String name) {
+ return (WizardButton)tester.getComponentFromLastRenderedPage("wizard:form:buttons:" + name);
}
}