Repository: openmeetings
Updated Branches:
  refs/heads/master 19024cd88 -> bc652660b


[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/bc652660
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/bc652660
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/bc652660

Branch: refs/heads/master
Commit: bc652660b61152a3afa38484bd57f48e2208b175
Parents: 19024cd
Author: Maxim Solodovnik <[email protected]>
Authored: Wed Oct 4 13:08:51 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Wed Oct 4 13:08:51 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/AbstractWicketTester.java      | 10 +++
 .../web/pages/auth/TestLoginUI.java             | 92 +++++++++++++++-----
 2 files changed, 78 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/bc652660/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 b460857..de9b502 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
@@ -29,11 +29,14 @@ import static 
org.springframework.web.context.WebApplicationContext.ROOT_WEB_APP
 
 import java.io.Serializable;
 import java.util.List;
+import java.util.Locale;
+import java.util.Random;
 
 import javax.servlet.ServletContext;
 
 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.protocol.http.WebApplication;
 import org.apache.wicket.util.lang.Args;
@@ -47,6 +50,7 @@ import 
com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
 public class AbstractWicketTester extends AbstractJUnitDefaults {
        private static final Logger log = getLogger(AbstractWicketTester.class, 
getWebAppRootKey());
        protected WicketTester tester;
+       protected Random rnd = new Random();
 
        public static WicketTester getWicketTester() {
                return getWicketTester(-1);
@@ -72,11 +76,17 @@ public class AbstractWicketTester extends 
AbstractJUnitDefaults {
                }
        }
 
+       public String getString(String lbl) {
+               return Application.getString(lbl, 
tester.getSession().getLocale());
+       }
+
        @Override
        public void setUp() throws Exception {
                super.setUp();
                tester = getWicketTester();
                assertNotNull("Web session should not be null", 
WebSession.get());
+               Locale[] locales = Locale.getAvailableLocales();
+               
tester.getSession().setLocale(locales[rnd.nextInt(locales.length)]);
        }
 
        public void login(String login, String password) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/bc652660/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 b944a9a..05ce66e 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,22 +20,23 @@ 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.apache.wicket.util.string.Strings.escapeMarkup;
 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;
 import java.util.Locale;
-import java.util.Random;
 import java.util.UUID;
 
 import org.apache.openmeetings.AbstractWicketTester;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.pages.ActivatePage;
 import org.apache.openmeetings.web.pages.MainPage;
@@ -48,10 +49,12 @@ 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) {
@@ -74,6 +77,16 @@ 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);
@@ -82,8 +95,7 @@ public class TestLoginUI extends AbstractWicketTester {
                FormTester formTester = tester.newFormTester("signin:signin");
                formTester.submit("submit");
 
-               assertEquals("There should be exactly 2 errors", 2,
-                               tester.getFeedbackMessages(new 
ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR)).size());
+               checkErrors(2);
        }
 
        private FormTester showRegister() {
@@ -99,8 +111,16 @@ public class TestLoginUI extends AbstractWicketTester {
        public void testEmptyRegister() {
                FormTester formTester = showRegister();
                formTester.submit("submit");
-               assertEquals("There should be exactly 8 errors", 8,
-                               tester.getFeedbackMessages(new 
ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR)).size());
+               checkErrors(8);
+       }
+
+       @Test
+       public void testRegister() throws ReflectiveOperationException, 
SecurityException {
+               tester.startPage(SignInPage.class);
+               tester.assertRenderedPage(SignInPage.class);
+
+               String uid = UUID.randomUUID().toString();
+               performRegister(uid, "account.created");
        }
 
        private FormTester showForget() {
@@ -114,8 +134,21 @@ public class TestLoginUI extends AbstractWicketTester {
        public void testEmptyForget() {
                FormTester formTester = showForget();
                formTester.submit("submit");
-               assertEquals("There should be exactly 2 errors", 2,
-                               tester.getFeedbackMessages(new 
ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR)).size());
+               checkErrors(2);
+       }
+
+       @Test
+       public void testForget() throws SecurityException, 
ReflectiveOperationException {
+               tester.startPage(SignInPage.class);
+               tester.assertRenderedPage(SignInPage.class);
+
+               performForget(UUID.randomUUID().toString());
+       }
+
+       @Test
+       public void testReset() {
+               tester.startPage(ResetPage.class, new 
PageParameters().add(ResetPage.RESET_PARAM, UUID.randomUUID().toString()));
+               tester.assertRenderedPage(SignInPage.class);
        }
 
        private String getCaptcha(String path) throws 
ReflectiveOperationException, SecurityException {
@@ -130,7 +163,7 @@ public class TestLoginUI extends AbstractWicketTester {
                return captcha.getChallengeId();
        }
 
-       private void testRegister(String uid) throws 
ReflectiveOperationException, SecurityException {
+       private void performRegister(String uid, String lbl) throws 
ReflectiveOperationException, SecurityException {
                ButtonAjaxBehavior b1 = getButtonBehavior("signin", "register");
                tester.executeBehavior(b1);
                FormTester formTester = tester.newFormTester(PATH_REGISTER);
@@ -142,13 +175,23 @@ public class TestLoginUI extends AbstractWicketTester {
                formTester.setValue("confirmPassword", userpass);
                formTester.setValue("captcha:captchaText", 
getCaptcha("register:form:captcha:captcha"));
                formTester.submit("submit");
-               assertEquals("There should be exactly 0 errors", 0,
-                               tester.getFeedbackMessages(new 
ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR)).size());
-               
tester.assertLabel("register:confirmRegistration:container:message", 
Application.getString("warn.notverified"));
+               checkErrors(0);
+               
tester.assertLabel("register:confirmRegistration:container:message", 
escapeMarkup(getString(lbl), false, false).toString());
                ButtonAjaxBehavior b2 = 
getButtonBehavior("register:confirmRegistration", "OK");
                tester.executeBehavior(b2);
        }
 
+       private void performForget(String uid) throws 
ReflectiveOperationException, SecurityException {
+               int type = rnd.nextInt(2);
+               FormTester forgetTester = showForget();
+               forgetTester.select("type", type);
+               forgetTester.setValue("name", type == 0 ? getEmail(uid) : 
getLogin(uid));
+               forgetTester.setValue("captcha:captchaText", 
getCaptcha("forget:form:captcha:captcha"));
+               forgetTester.submit("submit");
+               checkErrors(0);
+               tester.assertLabel("forget:confirmDialog:container:message", 
getString("321"));
+       }
+
        // complex test
        @Test
        public void testCompleteRegister() throws ReflectiveOperationException, 
SecurityException {
@@ -163,7 +206,7 @@ public class TestLoginUI extends AbstractWicketTester {
                        tester.assertRenderedPage(SignInPage.class);
 
                        String uid = UUID.randomUUID().toString();
-                       testRegister(uid);
+                       performRegister(uid, "warn.notverified");
 
                        // activate
                        User u = userDao.getByLogin(getLogin(uid), 
User.Type.user, null);
@@ -178,20 +221,14 @@ public class TestLoginUI extends AbstractWicketTester {
                        assertNull(u.getActivatehash());
                        assertTrue(u.getRights().contains(User.Right.Login));
                        checkLogin(getEmail(uid), userpass);
+
+                       // logout
+                       Locale loc = tester.getSession().getLocale();
                        tester.getSession().invalidateNow();
+                       tester.getSession().setLocale(loc);
 
                        // forget by 'random'
-                       tester.getSession().setLocale(Locale.GERMAN);
-                       Random rnd = new Random();
-                       int type = rnd.nextInt(2);
-                       FormTester forgetTester = showForget();
-                       forgetTester.select("type", type);
-                       forgetTester.setValue("name", type == 0 ? getEmail(uid) 
: getLogin(uid));
-                       forgetTester.setValue("captcha:captchaText", 
getCaptcha("forget:form:captcha:captcha"));
-                       forgetTester.submit("submit");
-                       assertEquals("There should be exactly 0 errors", 0,
-                                       tester.getFeedbackMessages(new 
ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR)).size());
-                       
tester.assertLabel("forget:confirmDialog:container:message", 
Application.getString("321"));
+                       performForget(uid);
 
                        // reset password
                        u = userDao.getByEmail(getEmail(uid));
@@ -201,6 +238,13 @@ public class TestLoginUI extends AbstractWicketTester {
                        tester.assertRenderedPage(ResetPage.class);
 
                        // check reset
+                       String passwd = "q1W@e3r4t5";
+                       FormTester resetTester = 
tester.newFormTester("resetPassword:form");
+                       resetTester.setValue("password", passwd);
+                       resetTester.setValue("confirmPassword", passwd);
+                       resetTester.submit("submit");
+                       checkErrors(0);
+                       
tester.assertLabel("resetPassword:confirmReset:container:message", 
getString("332"));
                } finally {
                        for (Configuration c : cfgs) {
                                c.setValueB(false);

Reply via email to