Repository: openmeetings
Updated Branches:
  refs/heads/master 4393fb1d8 -> effe83366


[OPENMEETINGS-1714] more issues are fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/effe8336
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/effe8336
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/effe8336

Branch: refs/heads/master
Commit: effe833661584800f5fe6bb467be4f610fdb7739
Parents: 4393fb1
Author: Maxim Solodovnik <[email protected]>
Authored: Thu Oct 5 16:07:09 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Thu Oct 5 16:07:09 2017 +0700

----------------------------------------------------------------------
 .../java/org/apache/openmeetings/cli/Admin.java |   3 +-
 .../cli/ConnectionPropertiesPatcher.java        |   1 +
 .../apache/openmeetings/cli/DerbyPatcher.java   |   7 +-
 .../apache/openmeetings/cli/MssqlPatcher.java   |   4 +-
 .../apache/openmeetings/cli/MysqlPatcher.java   |   4 +-
 .../apache/openmeetings/cli/OraclePatcher.java  |   2 +-
 .../openmeetings/cli/PostgresPatcher.java       |   4 +-
 .../util/OpenmeetingsVariables.java             |   1 +
 .../openmeetings/AbstractJUnitDefaults.java     |  16 +--
 .../openmeetings/AbstractWicketTester.java      |  22 ++++
 .../apache/openmeetings/web/TestInstall.java    |  64 ----------
 .../web/pages/auth/TestLoginUI.java             |  17 ---
 .../web/pages/install/TestInstall.java          | 123 +++++++++++++++++++
 13 files changed, 168 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
index 3afd80e..86fc5b0 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
@@ -21,6 +21,7 @@ package org.apache.openmeetings.cli;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static 
org.apache.openmeetings.db.util.ApplicationHelper.destroyApplication;
 import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_CONTEXT_NAME;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
@@ -185,7 +186,7 @@ public class Admin {
        }
 
        private void process(String[] args) {
-               String ctxName = System.getProperty("context", "openmeetings");
+               String ctxName = System.getProperty("context", 
DEFAULT_CONTEXT_NAME);
                setWicketApplicationName(ctxName);
                File home = new File(System.getenv("RED5_HOME"));
                OmFileHelper.setOmHome(new File(new File(home, "webapps"), 
ctxName));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
index b46f607..441b2b1 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
@@ -42,6 +42,7 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 public abstract class ConnectionPropertiesPatcher {
+       public static final String DEFAULT_DB_NAME = "openmeetings";
        protected static final String URL_PREFIX = "Url";
        protected static final String DRIVER_PREFIX = "DriverClassName";
        protected static final String USER_PREFIX = "Username";

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-install/src/main/java/org/apache/openmeetings/cli/DerbyPatcher.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/DerbyPatcher.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/DerbyPatcher.java
index 402b598..c79aa1a 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/DerbyPatcher.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/DerbyPatcher.java
@@ -21,8 +21,9 @@ package org.apache.openmeetings.cli;
 public class DerbyPatcher extends ConnectionPropertiesPatcher {
        @Override
        protected String getUrl(String _url, String host, String _port, String 
_db) {
-               String db = (_db == null) ? "openmeetings" : _db;
-               String suffix = _url.substring(_url.indexOf(';'));
-               return "jdbc:derby" + ":" + db + suffix;
+               String db = (_db == null) ? DEFAULT_DB_NAME : _db;
+               int idx = _url.indexOf(';');
+               String suffix = idx > -1 ? _url.substring(idx) : "";
+               return String.format("jdbc:derby:%s%s", db, suffix);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MssqlPatcher.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MssqlPatcher.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MssqlPatcher.java
index 2bd04a8..77b9194 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MssqlPatcher.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MssqlPatcher.java
@@ -22,7 +22,7 @@ public class MssqlPatcher extends ConnectionPropertiesPatcher 
{
        @Override
        protected String getUrl(String _url, String host, String _port, String 
_db) {
                String port = (_port == null) ? "1433" : _port;
-               String db = (_db == null) ? "openmeetings" : _db;
-               return "jdbc:sqlserver://" + host + ":" + port + 
";databaseName=" + db;
+               String db = (_db == null) ? DEFAULT_DB_NAME : _db;
+               return String.format("jdbc:sqlserver://%s:%s;databaseName=%s", 
host, port, db);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MysqlPatcher.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MysqlPatcher.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MysqlPatcher.java
index 2a3c7d4..d0eaef1 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MysqlPatcher.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/MysqlPatcher.java
@@ -22,8 +22,8 @@ public class MysqlPatcher extends ConnectionPropertiesPatcher 
{
        @Override
        protected String getUrl(String _url, String host, String _port, String 
_db) {
                String port = (_port == null) ? "3306" : _port;
-               String db = (_db == null) ? "openmeetings" : _db;
+               String db = (_db == null) ? DEFAULT_DB_NAME : _db;
                String suffix = _url.substring(_url.indexOf('?'));
-               return "jdbc:mysql://" + host + ":" + port + "/" + db + suffix;
+               return String.format("jdbc:mysql://%s:%s/%s%s", host, port, db, 
suffix);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OraclePatcher.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OraclePatcher.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OraclePatcher.java
index 0284efd..edac555 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OraclePatcher.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OraclePatcher.java
@@ -22,7 +22,7 @@ public class OraclePatcher extends 
ConnectionPropertiesPatcher {
        @Override
        protected String getUrl(String _url, String host, String _port, String 
_db) {
                String port = (_port == null) ? "1521" : _port;
-               String db = (_db == null) ? "openmeetings" : _db;
+               String db = (_db == null) ? DEFAULT_DB_NAME : _db;
                String delim = ":";
                if (db.startsWith("/")) {
                        delim = "";

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-install/src/main/java/org/apache/openmeetings/cli/PostgresPatcher.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/PostgresPatcher.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/PostgresPatcher.java
index 53f1140..9b72eb3 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/PostgresPatcher.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/PostgresPatcher.java
@@ -22,7 +22,7 @@ public class PostgresPatcher extends 
ConnectionPropertiesPatcher {
        @Override
        protected String getUrl(String _url, String host, String _port, String 
_db) {
                String port = (_port == null) ? "5432" : _port;
-               String db = (_db == null) ? "openmeetings" : _db;
-               return "jdbc:postgresql://" + host + ":" + port + "/" + db;
+               String db = (_db == null) ? DEFAULT_DB_NAME : _db;
+               return String.format("jdbc:postgresql://%s:%s/%s", host, port, 
db);
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index e171531..7f72bea 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -94,6 +94,7 @@ public class OpenmeetingsVariables {
        public static final int USER_LOGIN_MINIMUM_LENGTH = 4;
        public static final int USER_PASSWORD_MINIMUM_LENGTH = 8;
        public static final String DEFAULT_APP_NAME = "OpenMeetings";
+       public static final String DEFAULT_CONTEXT_NAME = "openmeetings";
        public static final long DEFAULT_MAX_UPLOAD_SIZE = 100 * 1024 * 1024L; 
// 100MB
        public static final String FLASH_SECURE = "secure";
        public static final String FLASH_NATIVE_SSL = "native";

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
index 76adff4..65a58ab 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings;
 
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_CONTEXT_NAME;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getConfigKeyCryptClassName;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
 import static org.junit.Assert.assertNotNull;
@@ -43,15 +44,14 @@ import 
org.springframework.beans.factory.annotation.Autowired;
 
 public abstract class AbstractJUnitDefaults extends AbstractSpringTest {
        private static final Logger log = 
Red5LoggerFactory.getLogger(AbstractJUnitDefaults.class);
+       private static final String timeZone = "Europe/Berlin";
        public static final int ONE_HOUR = 60 * 60 * 1000;
-
-       protected static final String adminUsername = "admin";
-       protected static final String regularUsername = "user";
+       public static final String adminUsername = "admin";
+       public static final String regularUsername = "user";
        protected static final String groupAdminUsername = "groupAdmin";
-       protected static final String userpass = "Q!w2e3r4t5";
-       private static final String group = "smoketest";
-       private static final String timeZone = "Europe/Berlin";
-       private static final String email = "[email protected]";
+       public static final String userpass = "Q!w2e3r4t5";
+       public static final String group = "smoketest";
+       public static final String email = "[email protected]";
 
        @Autowired
        private AppointmentDao appointmentDao;
@@ -66,7 +66,7 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
 
        @Before
        public void setUp() throws Exception {
-               setWicketApplicationName("openmeetings");
+               setWicketApplicationName(DEFAULT_CONTEXT_NAME);
                cfgDao.getCryptKey();
                if (userDao.count() < 1) {
                        makeDefaultScheme();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
index 15c46a3..4e31990 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
@@ -22,6 +22,7 @@ import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplicatio
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setInitComplete;
 import static org.apache.wicket.util.string.Strings.escapeMarkup;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -39,6 +40,8 @@ import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter;
+import org.apache.wicket.feedback.FeedbackMessage;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.tester.WicketTester;
@@ -109,6 +112,10 @@ public class AbstractWicketTester extends 
AbstractJUnitDefaults {
        }
 
        public <T extends Serializable> ButtonAjaxBehavior 
getButtonBehavior(String path, String name) {
+               return getButtonBehavior(tester, path, name);
+       }
+
+       public static <T extends Serializable> ButtonAjaxBehavior 
getButtonBehavior(WicketTester tester, String path, String name) {
                Args.notNull(path, "path");
                Args.notNull(name, "name");
                @SuppressWarnings("unchecked")
@@ -119,6 +126,21 @@ public class AbstractWicketTester extends 
AbstractJUnitDefaults {
                                return bb;
                        }
                }
+               fail(String.format("Button '%s' not found for dialog '%s'", 
name, path));
                return null;
        }
+
+       public void checkErrors(int count) {
+               checkErrors(tester, count);
+       }
+
+       public static void checkErrors(WicketTester tester, int count) {
+               List<FeedbackMessage> errors = tester.getFeedbackMessages(new 
ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR));
+               if (count != errors.size()) {
+                       for (FeedbackMessage fm : errors) {
+                               log.debug("Error {}", fm);
+                       }
+               }
+               assertEquals(String.format("There should be exactly %s errors", 
count), count, errors.size());
+       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestInstall.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestInstall.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestInstall.java
deleted file mode 100644
index b2e86ec..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestInstall.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.openmeetings.web;
-
-import static org.apache.openmeetings.AbstractWicketTester.getWicketTester;
-import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-import java.util.Locale;
-import java.util.Random;
-
-import org.apache.openmeetings.AbstractSpringTest;
-import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.pages.install.InstallWizardPage;
-import org.apache.wicket.util.tester.WicketTester;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestInstall {
-       private static final String DERBY_HOME = "derby.system.home";
-       protected WicketTester tester;
-       protected Random rnd = new Random();
-
-       @Before
-       public void setUp() throws IOException {
-               AbstractSpringTest.setOmHome();
-               setWicketApplicationName("openmeetings");
-               System.setProperty(DERBY_HOME, getOmHome().getCanonicalPath());
-               tester = getWicketTester();
-               assertNotNull("Web session should not be null", 
WebSession.get());
-               Locale[] locales = Locale.getAvailableLocales();
-               
tester.getSession().setLocale(locales[rnd.nextInt(locales.length)]);
-       }
-
-       @After
-       public void tearDown() {
-               System.getProperties().remove(DERBY_HOME);
-       }
-
-       @Test
-       public void testInstall() {
-               tester.startPage(InstallWizardPage.class);
-               tester.assertRenderedPage(InstallWizardPage.class);
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
index fd54dac..f7184bf 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
@@ -20,13 +20,10 @@ package org.apache.openmeetings.web.pages.auth;
 
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_AT_REGISTER;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_VERIFICATION;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.red5.logging.Red5LoggerFactory.getLogger;
 
 import java.lang.reflect.Method;
 import java.util.List;
@@ -41,19 +38,15 @@ import org.apache.openmeetings.web.pages.ActivatePage;
 import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.openmeetings.web.pages.ResetPage;
 import org.apache.wicket.extensions.markup.html.captcha.CaptchaImageResource;
-import org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter;
-import org.apache.wicket.feedback.FeedbackMessage;
 import org.apache.wicket.markup.html.image.Image;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Test;
-import org.slf4j.Logger;
 
 import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
 
 public class TestLoginUI extends AbstractWicketTester {
-       private static final Logger log = getLogger(TestLoginUI.class, 
getWebAppRootKey());
        private final static String PATH_REGISTER = "register:form";
 
        private void checkLogin(String login, String pass) {
@@ -76,16 +69,6 @@ public class TestLoginUI extends AbstractWicketTester {
                checkLogin(adminUsername, userpass);
        }
 
-       private void checkErrors(int count) {
-               List<FeedbackMessage> errors = tester.getFeedbackMessages(new 
ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR));
-               if (count != errors.size()) {
-                       for (FeedbackMessage fm : errors) {
-                               log.debug("Error {}", fm);
-                       }
-               }
-               assertEquals(String.format("There should be exactly %s errors", 
count), count, errors.size());
-       }
-
        @Test
        public void testEmptyLogin() {
                tester.startPage(SignInPage.class);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/effe8336/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
----------------------------------------------------------------------
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
new file mode 100644
index 0000000..b405093
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+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.deleteDirectory;
+import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
+import static org.apache.openmeetings.AbstractJUnitDefaults.email;
+import static org.apache.openmeetings.AbstractJUnitDefaults.group;
+import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
+import static org.apache.openmeetings.AbstractWicketTester.checkErrors;
+import static org.apache.openmeetings.AbstractWicketTester.getButtonBehavior;
+import static org.apache.openmeetings.AbstractWicketTester.getWicketTester;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
+import static org.junit.Assert.assertNotNull;
+import static org.red5.logging.Red5LoggerFactory.getLogger;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.Locale;
+import java.util.Random;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.AbstractSpringTest;
+import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.util.crypt.SCryptImplementation;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.behavior.AbstractAjaxBehavior;
+import org.apache.wicket.util.tester.FormTester;
+import org.apache.wicket.util.tester.WicketTester;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
+
+public class TestInstall {
+       private static final Logger log = getLogger(TestInstall.class, 
getWebAppRootKey());
+       private static final String DERBY_HOME = "derby.system.home";
+       private static final String WIZARD_PATH = "wizard";
+       private File tempFolder;
+       protected WicketTester tester;
+       protected Random rnd = new Random();
+
+       @Before
+       public void setUp() throws IOException {
+               AbstractSpringTest.setOmHome();
+               setWicketApplicationName(DEFAULT_APP_NAME);
+               tempFolder = Files.createTempDirectory("omtempdb").toFile();
+               System.setProperty(DERBY_HOME, tempFolder.getCanonicalPath());
+               tester = getWicketTester();
+               assertNotNull("Web session should not be null", 
WebSession.get());
+               Locale[] locales = Locale.getAvailableLocales();
+               
tester.getSession().setLocale(locales[rnd.nextInt(locales.length)]);
+               log.debug("Setup complete");
+       }
+
+       @After
+       public void tearDown() throws IOException {
+               AbstractWicketTester.destroy(tester);
+               System.getProperties().remove(DERBY_HOME);
+               deleteDirectory(tempFolder);
+       }
+
+       @Test
+       public void testInstall() {
+               InstallWizardPage page = 
tester.startPage(InstallWizardPage.class);
+               tester.assertRenderedPage(InstallWizardPage.class);
+               
tester.executeBehavior((AbstractAjaxBehavior)page.getBehaviorById(0)); 
//welcome step
+
+               ButtonAjaxBehavior prev = getButtonBehavior(tester, 
WIZARD_PATH, "PREV"); //check enabled
+               log.debug("Prev button enabled ? {}", 
prev.getButton().isEnabled());
+               ButtonAjaxBehavior next = getButtonBehavior(tester, 
WIZARD_PATH, "NEXT");
+               ButtonAjaxBehavior finish = getButtonBehavior(tester, 
WIZARD_PATH, SUBMIT);
+               tester.executeBehavior(next); //DB step
+               FormTester wizardTester = tester.newFormTester("wizard:form");
+               wizardTester.select("view:form:dbType", 1);
+               checkErrors(tester, 0);
+               tester.executeBehavior(next); //user step
+               checkErrors(tester, 0);
+               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
+               checkErrors(tester, 0);
+               wizardTester.setValue("view:smtpPort", "25");
+               wizardTester.select("view:defaultLangId", 0);
+               tester.executeBehavior(next); //converters step
+               checkErrors(tester, 0);
+               wizardTester.setValue("view:docDpi", "150");
+               wizardTester.setValue("view:docQuality", "90");
+               tester.executeBehavior(next); //crypt step
+               checkErrors(tester, 0);
+               wizardTester.setValue("view:cryptClassName", 
SCryptImplementation.class.getName());
+               tester.executeBehavior(next); //install step
+               checkErrors(tester, 0);
+               tester.executeBehavior(finish);
+               checkErrors(tester, 0);
+       }
+}

Reply via email to