Repository: openmeetings
Updated Branches:
  refs/heads/master 1da939edb -> 81cd7aa3f


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

Branch: refs/heads/master
Commit: 81cd7aa3f9e1bf99d6288abb65d5553e4fe20bc0
Parents: 1da939e
Author: Maxim Solodovnik <[email protected]>
Authored: Tue Oct 3 17:08:28 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Tue Oct 3 17:08:28 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/AbstractJUnitDefaults.java     |  24 +-
 .../apache/openmeetings/userdata/TestLogin.java |   5 -
 .../apache/openmeetings/web/TestMainAreas.java  | 242 ++++++++++++++++++-
 3 files changed, 256 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/81cd7aa3/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 2de82bb..29f7580 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
@@ -27,10 +27,12 @@ import java.util.UUID;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.Address;
+import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.installation.ImportInitvalues;
 import org.apache.openmeetings.installation.InstallationConfig;
@@ -45,6 +47,7 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
 
        protected static final String adminUsername = "admin";
        protected static final String regularUsername = "user";
+       protected static final String groupAdminUsername = "groupAdmin";
        protected static final String userpass = "12345";
        private static final String group = "smoketest";
        private static final String timeZone = "Europe/Berlin";
@@ -55,6 +58,8 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
        @Autowired
        private UserDao userDao;
        @Autowired
+       private GroupDao groupDao;
+       @Autowired
        private ImportInitvalues importInitvalues;
        @Autowired
        protected ConfigurationDao cfgDao;
@@ -65,10 +70,11 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
                cfgDao.getCryptKey();
                if (userDao.count() < 1) {
                        makeDefaultScheme();
-                       User regular = getUser();
-                       regular.setLogin(regularUsername);
-                       regular.updatePassword(cfgDao, userpass);
-                       createUser(regular);
+                       // regular user
+                       createSystemUser(regularUsername, false);
+
+                       // group admin
+                       createSystemUser(groupAdminUsername, true);
                        log.info("Default scheme created successfully");
                } else {
                        log.info("Default scheme already created");
@@ -159,6 +165,16 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
                return u;
        }
 
+       public User createSystemUser(String login, boolean groupAdmin) throws 
Exception {
+               User u = getUser();
+               GroupUser gu = new GroupUser(groupDao.get(group), u);
+               gu.setModerator(groupAdmin);
+               u.getGroupUsers().add(gu);
+               u.setLogin(login);
+               u.updatePassword(cfgDao, userpass);
+               return createUser(u);
+       }
+
        public User createUser() throws Exception {
                return createUser(UUID.randomUUID().toString());
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/81cd7aa3/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
index 42251a7..559217e 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
@@ -28,18 +28,13 @@ import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class TestLogin extends AbstractJUnitDefaults {
-
        @Autowired
        private UserDao userDao;
 
        @Test
        public void testTestLogin() throws OmException {
                User us = userDao.login(adminUsername, userpass);
-
                assertNotNull("User is unable to login", us);
-
-               //mService.getLanguageById(1);
-
        }
 
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/81cd7aa3/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
index 53ac08e..f206369 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
@@ -18,28 +18,258 @@
  */
 package org.apache.openmeetings.web;
 
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_BACKUP;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_CALENDAR;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_CONFIG;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_CONNECTION;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_EDIT;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_EMAIL;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_GROUP;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_LANG;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_LDAP;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_MESSAGES;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_MY;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_OAUTH2;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_PUBLIC;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_RECORDINGS;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_ROOM;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_USER;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.red5.logging.Red5LoggerFactory.getLogger;
+
+import java.util.function.Consumer;
+
 import org.apache.openmeetings.AbstractWicketTester;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmException;
+import org.apache.openmeetings.web.admin.backup.BackupPanel;
+import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
+import org.apache.openmeetings.web.admin.connection.ConnectionsPanel;
+import org.apache.openmeetings.web.admin.email.EmailPanel;
+import org.apache.openmeetings.web.admin.groups.GroupsPanel;
+import org.apache.openmeetings.web.admin.labels.LangPanel;
+import org.apache.openmeetings.web.admin.ldaps.LdapsPanel;
+import org.apache.openmeetings.web.admin.oauth.OAuthPanel;
+import org.apache.openmeetings.web.admin.rooms.RoomsPanel;
+import org.apache.openmeetings.web.admin.users.UsersPanel;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.user.calendar.CalendarPanel;
 import org.apache.openmeetings.web.user.dashboard.OmDashboardPanel;
+import org.apache.openmeetings.web.user.profile.SettingsPanel;
+import org.apache.openmeetings.web.user.record.RecordingsPanel;
+import org.apache.openmeetings.web.user.rooms.RoomsSelectorPanel;
+import org.apache.openmeetings.web.util.OmUrlFragment.AreaKeys;
+import org.apache.wicket.authorization.UnauthorizedInstantiationException;
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
 import org.apache.wicket.protocol.ws.util.tester.WebSocketTester;
 import org.junit.Assert;
 import org.junit.Test;
+import org.slf4j.Logger;
 
 public class TestMainAreas extends AbstractWicketTester {
-       @Test
-       public void testDashboard() throws OmException {
-               
Assert.assertTrue(((WebSession)tester.getSession()).signIn(adminUsername, 
userpass, User.Type.user, null));;
+       private static final Logger log = getLogger(TestMainAreas.class, 
getWebAppRootKey());
+
+       private void testArea(String user, Consumer<MainPage> consumer) throws 
OmException {
+               
Assert.assertTrue(((WebSession)tester.getSession()).signIn(user, userpass, 
User.Type.user, null));;
                MainPage page = tester.startPage(MainPage.class);
                tester.assertRenderedPage(MainPage.class);
-               
tester.executeBehavior((AbstractAjaxBehavior)tester.getLastRenderedPage().getBehaviors().get(0));
-               
tester.executeBehavior((AbstractAjaxBehavior)tester.getLastRenderedPage().get("main-container").getBehaviors().get(0));
+               
tester.executeBehavior((AbstractAjaxBehavior)page.getBehaviorById(0));
+               
tester.executeBehavior((AbstractAjaxBehavior)page.get("main-container").getBehaviorById(0));
                WebSocketTester webSocketTester = new WebSocketTester(tester, 
page);
                webSocketTester.sendMessage("socketConnected");
 
-               tester.assertComponent("main-container:main:contents:child", 
OmDashboardPanel.class); //main-container:main:contents:child:dashboard
+               consumer.accept(page);
+               tester.getSession().invalidateNow();
+               webSocketTester.destroy();
+       }
+
+       @Test
+       public void testDashboard() throws OmException {
+               testArea(regularUsername, p -> {
+                       
tester.assertComponent("main-container:main:contents:child", 
OmDashboardPanel.class);
+               });
+       }
+
+       private void checkArea(AreaKeys area, String type, Class<? extends 
BasePanel> clazz, String... users) throws OmException {
+               for (String user : users) {
+                       log.debug("Positive test:: area: {}, type: {} for user: 
{}", area, type, user);
+                       testArea(user, p -> {
+                               tester.getRequest().setParameter(area.name(), 
type);
+                               
tester.executeBehavior((AbstractAjaxBehavior)p.getBehaviorById(1));
+                               
tester.assertComponent("main-container:main:contents:child", clazz);
+                       });
+               }
+       }
+
+       private void checkUnauthArea(AreaKeys area, String type, String... 
users) throws OmException {
+               for (String user : users) {
+                       log.debug("Positive test:: area: {}, type: {} for user: 
{}", area, type, user);
+                       testArea(user, p -> {
+                               tester.getRequest().setParameter(area.name(), 
type);
+                               try {
+                                       
tester.executeBehavior((AbstractAjaxBehavior)p.getBehaviorById(1));
+                                       fail("Not authorized");
+                               } catch (UnauthorizedInstantiationException e) {
+                                       assertTrue("Exception is expected", 
true);
+                               }
+                       });
+               }
+       }
+
+       @Test
+       public void testCalendar() throws OmException {
+               checkArea(AreaKeys.user, TYPE_CALENDAR, CalendarPanel.class, 
regularUsername);
+       }
+
+       @Test
+       public void testRecordings() throws OmException {
+               checkArea(AreaKeys.user, TYPE_RECORDINGS, 
RecordingsPanel.class, regularUsername);
+       }
+
+       @Test
+       public void testRoomsPublic() throws OmException {
+               checkArea(AreaKeys.rooms, TYPE_PUBLIC, 
RoomsSelectorPanel.class, regularUsername);
+       }
+
+       @Test
+       public void testRoomsGroup() throws OmException {
+               checkArea(AreaKeys.rooms, TYPE_GROUP, RoomsSelectorPanel.class, 
regularUsername);
+       }
+
+       @Test
+       public void testRoomsMy() throws OmException {
+               checkArea(AreaKeys.rooms, TYPE_MY, RoomsSelectorPanel.class, 
regularUsername);
+       }
+
+       @Test
+       public void testRoomsProfileMessages() throws OmException {
+               checkArea(AreaKeys.profile, TYPE_MESSAGES, SettingsPanel.class, 
regularUsername);
+       }
+
+       @Test
+       public void testRoomsProfileEdit() throws OmException {
+               checkArea(AreaKeys.profile, TYPE_EDIT, SettingsPanel.class, 
regularUsername);
+       }
+
+       @Test
+       public void testNonExistent() throws OmException {
+               checkArea(AreaKeys.profile, "bla", OmDashboardPanel.class, 
regularUsername);
+       }
+
+       @Test
+       public void testAdminUsers() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_USER, UsersPanel.class, 
adminUsername, groupAdminUsername);
+       }
+
+       @Test
+       public void testAdminUsers1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_USER, regularUsername);
+       }
+
+       @Test
+       public void testAdminConnections() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_CONNECTION, 
ConnectionsPanel.class, adminUsername);
+       }
+
+       @Test
+       public void testAdminConnections1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_CONNECTION, 
groupAdminUsername, regularUsername);
+       }
+
+       @Test
+       public void testAdminGroups() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_GROUP, GroupsPanel.class, 
adminUsername, groupAdminUsername);
+       }
+
+       @Test
+       public void testAdminGroups1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_GROUP, regularUsername);
+       }
+
+       @Test
+       public void testAdminRooms() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_ROOM, RoomsPanel.class, 
adminUsername, groupAdminUsername);
+       }
+
+       @Test
+       public void testAdminRooms1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_ROOM, regularUsername);
+       }
+
+       @Test
+       public void testAdminConfigs() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_CONFIG, ConfigsPanel.class, 
adminUsername);
+       }
+
+       @Test
+       public void testAdminConfigs1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_CONFIG, 
groupAdminUsername, regularUsername);
+       }
+
+       @Test
+       public void testAdminLang() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_LANG, LangPanel.class, 
adminUsername);
+       }
+
+       @Test
+       public void testAdminLang1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_LANG, groupAdminUsername, 
regularUsername);
+       }
+
+       @Test
+       public void testAdminLdap() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_LDAP, LdapsPanel.class, 
adminUsername);
+       }
+
+       @Test
+       public void testAdminLdap1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_LDAP, groupAdminUsername, 
regularUsername);
+       }
+
+       @Test
+       public void testAdminOauth() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_OAUTH2, OAuthPanel.class, 
adminUsername);
+       }
+
+       @Test
+       public void testAdminOauth1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_OAUTH2, 
groupAdminUsername, regularUsername);
+       }
+
+       @Test
+       public void testAdminBackup() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_BACKUP, BackupPanel.class, 
adminUsername);
+       }
+
+       @Test
+       public void testAdminBackup1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_BACKUP, 
groupAdminUsername, regularUsername);
+       }
+
+       @Test
+       public void testAdminEmail() throws OmException {
+               checkArea(AreaKeys.admin, TYPE_EMAIL, EmailPanel.class, 
adminUsername);
+       }
+
+       @Test
+       public void testAdminEmail1() throws OmException {
+               checkUnauthArea(AreaKeys.admin, TYPE_EMAIL, groupAdminUsername, 
regularUsername);
+       }
+
+       @Test
+       public void testRoom5() throws OmException {
+               // public presentation room
+               checkArea(AreaKeys.room, String.valueOf(5), RoomPanel.class, 
regularUsername);
+       }
+
+       @Test
+       public void testRoom1() throws OmException {
+               //public interview room
+               checkArea(AreaKeys.room, String.valueOf(1), RoomPanel.class, 
regularUsername);
        }
 }

Reply via email to