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 <solomax...@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);
        }
 }

Reply via email to