Repository: openmeetings Updated Branches: refs/heads/master cec150c81 -> 3b16ec473
[OPENMEETINGS-1714] basic tests for appointments Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/3b16ec47 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/3b16ec47 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/3b16ec47 Branch: refs/heads/master Commit: 3b16ec4732429652f1ea85fe8df4679f906dffe6 Parents: cec150c Author: Maxim Solodovnik <[email protected]> Authored: Sat Oct 14 20:40:43 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Sat Oct 14 20:40:43 2017 +0700 ---------------------------------------------------------------------- .../db/dao/calendar/AppointmentDao.java | 2 +- .../web/user/calendar/CalendarPanel.java | 6 +- .../openmeetings/AbstractWicketTester.java | 2 + .../apache/openmeetings/web/TestCalendar.java | 79 ++++++++++++++++++++ .../apache/openmeetings/web/TestMainAreas.java | 6 +- .../apache/openmeetings/web/TestMainMenu.java | 4 +- .../webservice/CalendarWebService.java | 2 +- 7 files changed, 89 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java index 240f621..db1e462 100644 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java @@ -188,7 +188,7 @@ public class AppointmentDao { return list == null || list.isEmpty() ? null : list.get(0); } - public List<Appointment> searchAppointmentsByTitle(Long userId, String title) { + public List<Appointment> searchByTitle(Long userId, String title) { return em.createNamedQuery("getAppointmentsByTitle", Appointment.class) .setParameter("title", title).setParameter("userId", userId).getResultList(); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java index 7dd9b8d..7afe918 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java @@ -227,7 +227,6 @@ public class CalendarPanel extends UserBasePanel { if (a.getCalendar() != null) { updatedeleteAppointment(target, CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a); } - //TODO add feedback info } @Override @@ -247,7 +246,6 @@ public class CalendarPanel extends UserBasePanel { if (a.getCalendar() != null) { updatedeleteAppointment(target, CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a); } - //TODO add feedback info } }; @@ -270,7 +268,6 @@ public class CalendarPanel extends UserBasePanel { @Override protected List<OmCalendar> load() { - // TODO: better way to do this? AppointmentManager manager = getAppointmentManager(); List<OmCalendar> cals = new ArrayList<>(manager.getCalendars(getUserId())); cals.addAll(manager.getGoogleCalendars(getUserId())); @@ -368,7 +365,6 @@ public class CalendarPanel extends UserBasePanel { } //Adds a new Event Source to the Calendar - //TODO: The Ajax Refresh does not work. public void populateGoogleCalendar(OmCalendar gcal, IPartialPageRequestHandler target) { calendar.addSource(new GoogleCalendar(gcal.getHref(), gcal.getToken())); refresh(target); @@ -405,7 +401,7 @@ public class CalendarPanel extends UserBasePanel { private static Appointment getDefault() { Appointment a = new Appointment(); - a.setReminder(Reminder.ical); //TODO: Make configurable + a.setReminder(Reminder.ical); a.setOwner(getBean(UserDao.class).get(getUserId())); a.setTitle(Application.getString("1444")); log.debug(" -- getDefault -- Current model " + a); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/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 4fbf3da..0f7211f 100644 --- a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java @@ -58,6 +58,8 @@ import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior; public class AbstractWicketTester extends AbstractJUnitDefaults { private static final Logger log = getLogger(AbstractWicketTester.class, getWebAppRootKey()); + public static final String PATH_CHILD = "main-container:main:contents:child"; + public static final String PATH_MENU = "main-container:main:topControls:menu:menu"; protected WicketTester tester; public static WicketTester getWicketTester() { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java new file mode 100644 index 0000000..c568232 --- /dev/null +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java @@ -0,0 +1,79 @@ +/* + * 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.junit.Assert.assertEquals; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +import org.apache.openmeetings.AbstractWicketTester; +import org.apache.openmeetings.db.dao.calendar.AppointmentDao; +import org.apache.openmeetings.db.entity.calendar.Appointment; +import org.apache.openmeetings.db.entity.user.User; +import org.apache.openmeetings.util.OmException; +import org.apache.openmeetings.web.user.calendar.CalendarPanel; +import org.apache.wicket.behavior.AbstractAjaxBehavior; +import org.apache.wicket.util.tester.FormTester; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import com.googlecode.wicket.jquery.ui.calendar.CalendarView; +import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior; +import com.googlecode.wicket.jquery.ui.widget.menu.Menu; + +public class TestCalendar extends AbstractWicketTester { + private static final String PATH_APPOINTMENT_DLG = String.format("%s:appointment", PATH_CHILD); + private static final String PATH_APPOINTMENT_DLG_FRM = String.format("%s:appForm", PATH_APPOINTMENT_DLG); + @Autowired + private AppointmentDao appointmentDao; + + @Test + public void testEventCreate() throws OmException { + testArea(regularUsername, p -> { + Menu menu = (Menu)p.get(PATH_MENU); + Assert.assertNotNull(menu); + tester.getRequest().setParameter("hash", menu.getItemList().get(0).getItems().get(1).getId()); + tester.executeBehavior((AbstractAjaxBehavior)menu.getBehaviorById(0)); + + tester.assertComponent(PATH_CHILD, CalendarPanel.class); + CalendarPanel cal = (CalendarPanel)p.get(PATH_CHILD); + tester.executeAllTimerBehaviors(cal); + + User u = userDao.getByLogin(regularUsername, User.Type.user, null); + //test create month + tester.getRequest().setParameter("allDay", String.valueOf(false)); + tester.getRequest().setParameter("startDate", LocalDateTime.of(2017, 11, 13, 13, 13).toString()); + tester.getRequest().setParameter("endDate", LocalDateTime.of(2017, 11, 13, 13, 13).toString()); + tester.getRequest().setParameter("viewName", CalendarView.month.name()); + tester.executeBehavior((AbstractAjaxBehavior)cal.get("form:calendar").getBehaviorById(0)); //select-event + FormTester appTester = tester.newFormTester(PATH_APPOINTMENT_DLG_FRM); + String title = String.format("title%s", UUID.randomUUID()); + appTester.setValue("title", title); + ButtonAjaxBehavior save = getButtonBehavior(PATH_APPOINTMENT_DLG, "save"); + tester.executeBehavior(save); + + List<Appointment> appts = appointmentDao.searchByTitle(u.getId(), title); + assertEquals("Appointment should be created", 1, appts.size()); + assertEquals("Appointment should be created", title, appts.get(0).getTitle()); + }); + } +} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/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 146a61b..7be7c81 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 @@ -79,7 +79,7 @@ public class TestMainAreas extends AbstractWicketTester { @Test public void testDashboard() throws OmException { testArea(regularUsername, p -> { - tester.assertComponent("main-container:main:contents:child", OmDashboardPanel.class); + tester.assertComponent(PATH_CHILD, OmDashboardPanel.class); }); } @@ -93,7 +93,7 @@ public class TestMainAreas extends AbstractWicketTester { testArea(user, p -> { tester.getRequest().setParameter(area.name(), type); tester.executeBehavior((AbstractAjaxBehavior)p.getBehaviorById(1)); - tester.assertComponent("main-container:main:contents:child", clazz); + tester.assertComponent(PATH_CHILD, clazz); if (consumer != null) { consumer.accept(p); } @@ -271,7 +271,7 @@ public class TestMainAreas extends AbstractWicketTester { private void testRoom(Long id) throws OmException { checkArea(AreaKeys.room, String.valueOf(id), RoomPanel.class, p -> { - RoomPanel rp = (RoomPanel)p.get("main-container:main:contents:child"); + RoomPanel rp = (RoomPanel)p.get(PATH_CHILD); tester.executeBehavior((AbstractAjaxBehavior)rp.getBehaviorById(0)); //room enter AbstractWbPanel wb = (AbstractWbPanel)rp.get("roomContainer:wb-area:whiteboard"); tester.executeBehavior((AbstractAjaxBehavior)wb.getBehaviorById(0)); //wb load http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java index e34e53c..34f181b 100644 --- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java @@ -44,12 +44,12 @@ import com.googlecode.wicket.jquery.ui.widget.menu.Menu; public class TestMainMenu extends AbstractWicketTester { private void checkMenuItem(int idx1, int idx2, Class<? extends BasePanel> clazz) throws OmException { testArea(adminUsername, p -> { - Menu menu = (Menu)p.get("main-container:main:topControls:menu:menu"); + Menu menu = (Menu)p.get(PATH_MENU); Assert.assertNotNull(menu); tester.getRequest().setParameter("hash", menu.getItemList().get(idx1).getItems().get(idx2).getId()); tester.executeBehavior((AbstractAjaxBehavior)menu.getBehaviorById(0)); - tester.assertComponent("main-container:main:contents:child", clazz); + tester.assertComponent(PATH_CHILD, clazz); }); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java ---------------------------------------------------------------------- diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java index 39a5cbe..9bcfbac 100644 --- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java +++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java @@ -198,7 +198,7 @@ public class CalendarWebService extends BaseWebService { @GET @Path("/title/{title}") public List<AppointmentDTO> getByTitle(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("title") @WebParam(name="title") String title) { - return performCall(sid, User.Right.Room, sd -> AppointmentDTO.list(getDao().searchAppointmentsByTitle(sd.getUserId(), title))); + return performCall(sid, User.Right.Room, sd -> AppointmentDTO.list(getDao().searchByTitle(sd.getUserId(), title))); } /**
