diff --git a/pom.xml b/pom.xml index 480f368bf60ec69cbc68b1b6dd3e4e72220a37c2..f5c31f1e51fc90a4637771c7cac3819f5cd79841 100644 --- a/pom.xml +++ b/pom.xml @@ -1099,11 +1099,6 @@ <url>https://maven.java.net/content/repositories/public</url> <layout>default</layout> </repository> - <repository> - <id>nexus.codehaus.org</id> - <name>Codehaus nexus repo</name> - <url>https://nexus.codehaus.org/content/groups/public</url> - </repository> <repository> <id>jboss-public-repository-group</id> <name>JBoss Public Maven Repository Group</name> diff --git a/src/main/java/org/olat/modules/fo/manager/ForumManager.java b/src/main/java/org/olat/modules/fo/manager/ForumManager.java index 2476a9d72519c7ec7d593123b7ffc315d2dd9a18..56ac4e6215d81dd3a3d2e4b73363f04b13f7dcf4 100644 --- a/src/main/java/org/olat/modules/fo/manager/ForumManager.java +++ b/src/main/java/org/olat/modules/fo/manager/ForumManager.java @@ -141,12 +141,6 @@ public class ForumManager { return dbQuery.getResultList(); } - public List<Long> getAllForumKeys(){ - return dbInstance.getCurrentEntityManager() - .createNamedQuery("getAllForumKeys", Long.class) - .getResultList(); - } - /** * * @param forum_id @@ -353,20 +347,6 @@ public class ForumManager { return pseudonyms == null || pseudonyms.isEmpty() ? null : pseudonyms.get(0); } - public MessageLight getLightMessageById(Long messageKey) { - StringBuilder query = new StringBuilder(); - query.append("select msg from fomessage as msg") - .append(" left join fetch msg.creator as creator") - .append(" left join fetch msg.modifier as modifier") - .append(" where msg.key=:messageKey "); - - List<MessageLight> messages = dbInstance.getCurrentEntityManager() - .createQuery(query.toString(), MessageLight.class) - .setParameter("messageKey", messageKey) - .getResultList(); - return messages == null || messages.isEmpty() ? null : messages.get(0); - } - public List<MessageLight> getLightMessagesByForum(Forum forum) { StringBuilder query = new StringBuilder(); query.append("select msg from folightmessage as msg") diff --git a/src/main/java/org/olat/modules/fo/model/ForumImpl.java b/src/main/java/org/olat/modules/fo/model/ForumImpl.java index 35716ef06de369b927b86236e7c9544ad9440def..0ee927494f0367ca5b5a2bf13cc941762ca1abff 100644 --- a/src/main/java/org/olat/modules/fo/model/ForumImpl.java +++ b/src/main/java/org/olat/modules/fo/model/ForumImpl.java @@ -30,8 +30,6 @@ import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @@ -51,9 +49,7 @@ import org.olat.modules.fo.Forum; */ @Entity(name="forum") @Table(name="o_forum") -@NamedQueries({ - @NamedQuery(name="getAllForumKeys", query="select fo.key from forum as fo") -}) +//@NamedQueries({}) public class ForumImpl implements Forum, CreateInfo, Persistable{ private static final long serialVersionUID = 3240047228287740990L; diff --git a/src/test/java/org/olat/modules/fo/ForumManagerTest.java b/src/test/java/org/olat/modules/fo/ForumManagerTest.java index 143a8ff7d5e7d0427e11b0eab5d161b58218dd67..302935dc930c88dfa9700757f10a09f4f4eeb0d7 100644 --- a/src/test/java/org/olat/modules/fo/ForumManagerTest.java +++ b/src/test/java/org/olat/modules/fo/ForumManagerTest.java @@ -29,12 +29,17 @@ package org.olat.modules.fo; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Locale; +import java.util.UUID; import org.junit.Assert; import org.junit.Test; +import org.olat.basesecurity.BaseSecurity; import org.olat.core.commons.persistence.DB; import org.olat.core.id.Identity; import org.olat.modules.fo.manager.ForumManager; +import org.olat.modules.fo.model.ForumThread; +import org.olat.modules.fo.model.ForumUserStatistics; import org.olat.test.JunitTestHelper; import org.olat.test.OlatTestCase; import org.olat.user.UserManager; @@ -54,9 +59,11 @@ public class ForumManagerTest extends OlatTestCase { public UserManager userManager; @Autowired public ForumManager forumManager; + @Autowired + public BaseSecurity securityManager; @Test - public void testGetThread() { + public void getThread() { Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-4"); Forum fo = forumManager.addAForum(); dbInstance.commit(); @@ -77,21 +84,21 @@ public class ForumManagerTest extends OlatTestCase { } @Test - public void testCreateAndGetMessages_loadForumID() throws Exception { + public void createAndGetMessages_loadForumID() throws Exception { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); Forum fo = forumManager.addAForum(); dbInstance.commit(); Message topMessage = forumManager.createMessage(fo, id1, false); - topMessage.setTitle("stufe 0: subject 0"); - topMessage.setBody("body/n dep 0"); + topMessage.setTitle("Create and get message"); + topMessage.setBody("Create and get message"); forumManager.addTopMessage(topMessage); dbInstance.commit(); Message reply = forumManager.createMessage(fo, id2, false); - reply.setTitle("stufe 0: subject 0"); - reply.setBody("body/n dep 0"); + reply.setTitle("Re: Create and get message"); + reply.setBody("Create and get message"); forumManager.replyToMessage(reply, topMessage); dbInstance.commitAndCloseSession(); @@ -107,36 +114,394 @@ public class ForumManagerTest extends OlatTestCase { } @Test - public void testCountMessagesByForumID() { + public void getForumThreads() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); + Forum forum = forumManager.addAForum(); + dbInstance.commit(); + + Message thread1 = forumManager.createMessage(forum, id1, false); + thread1.setTitle("Get forum threads"); + thread1.setBody("Get forum threads"); + forumManager.addTopMessage(thread1); + dbInstance.commit(); + + Message reply = forumManager.createMessage(forum, id2, false); + reply.setTitle("Re: Get forum threads"); + reply.setBody("Get forum threads"); + forumManager.replyToMessage(reply, thread1); + dbInstance.commitAndCloseSession(); + + Message thread2 = forumManager.createMessage(forum, id1, false); + thread2.setTitle("More on get forum threads"); + thread2.setBody("More on get forum threads"); + forumManager.addTopMessage(thread2); + dbInstance.commit(); + + List<ForumThread> forumThreads = forumManager.getForumThreads(forum, id1); + Assert.assertNotNull(forumThreads); + Assert.assertEquals(2, forumThreads.size()); + + ForumThread forumThread1 = null; + ForumThread forumThread2 = null; + for(ForumThread forumThread:forumThreads) { + if(forumThread.getKey().equals(thread1.getKey())) { + forumThread1 = forumThread; + } else if(forumThread.getKey().equals(thread2.getKey())) { + forumThread2 = forumThread; + } + } + + Assert.assertNotNull(forumThread1); + Assert.assertNotNull(forumThread2); + } + + @Test + public void getForumUserStatistics() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); + Forum forum = forumManager.addAForum(); + dbInstance.commit(); + + Message thread1 = forumManager.createMessage(forum, id1, false); + thread1.setTitle("Get forum user statistics"); + thread1.setBody("Get forum user statistics"); + forumManager.addTopMessage(thread1); + dbInstance.commit(); + + Message reply = forumManager.createMessage(forum, id2, false); + reply.setTitle("Re: Get forum user statistics"); + reply.setBody("Get forum user statistics and other usefull stuff to we need"); + forumManager.replyToMessage(reply, thread1); + dbInstance.commitAndCloseSession(); + + List<ForumUserStatistics> userStatistics = forumManager.getForumUserStatistics(forum); + Assert.assertNotNull(userStatistics); + Assert.assertEquals(2, userStatistics.size()); + + ForumUserStatistics userStatistic1 = null; + ForumUserStatistics userStatistic2 = null; + for(ForumUserStatistics userStatistic:userStatistics) { + if(userStatistic.getIdentity().getKey().equals(id1.getKey())) { + userStatistic1 = userStatistic; + } else if(userStatistic.getIdentity().getKey().equals(id2.getKey())) { + userStatistic2 = userStatistic; + } + } + + Assert.assertNotNull(userStatistic1); + Assert.assertNotNull(userStatistic2); + + //stats user 1 + Assert.assertEquals(1, userStatistic1.getNumOfThreads()); + Assert.assertEquals(0, userStatistic1.getNumOfReplies()); + Assert.assertTrue(userStatistic1.getNumOfWords() > 1); + Assert.assertTrue(userStatistic1.getNumOfCharacters() > 1); + + //stats user 2 + Assert.assertEquals(0, userStatistic2.getNumOfThreads()); + Assert.assertEquals(1, userStatistic2.getNumOfReplies()); + Assert.assertTrue(userStatistic2.getNumOfWords() > 1); + Assert.assertTrue(userStatistic2.getNumOfCharacters() > 1); + } + + @Test + public void getLightMessagesByForum() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); + Forum forum = forumManager.addAForum(); + dbInstance.commit(); + + Message thread1 = forumManager.createMessage(forum, id1, false); + thread1.setTitle("Get messages light by forum"); + thread1.setBody("Get messages light by forum"); + forumManager.addTopMessage(thread1); + dbInstance.commit(); + + Message reply = forumManager.createMessage(forum, id2, false); + reply.setTitle("Re: Get messages light by forum"); + reply.setBody("Get messages light by forum and other usefull stuff we need"); + forumManager.replyToMessage(reply, thread1); + dbInstance.commitAndCloseSession(); + + //load and check the messages + List<MessageLight> messages = forumManager.getLightMessagesByForum(forum); + dbInstance.commitAndCloseSession(); + + MessageLight message1 = null; + MessageLight message2 = null; + for(MessageLight message:messages) { + if(message.getKey().equals(thread1.getKey())) { + message1 = message; + } else if(message.getKey().equals(reply.getKey())) { + message2 = message; + } + } + + //check thread + Assert.assertNotNull(message1); + Assert.assertEquals(thread1.getKey(), message1.getKey()); + Assert.assertEquals(thread1.getTitle(), message1.getTitle()); + Assert.assertEquals(thread1.getBody(), message1.getBody()); + Assert.assertEquals(thread1.getCreator(), id1); + Assert.assertNull(message1.getThreadtop()); + + //check reply + dbInstance.commitAndCloseSession(); + Assert.assertNotNull(message2); + Assert.assertEquals(reply.getKey(), message2.getKey()); + Assert.assertEquals(reply.getTitle(), message2.getTitle()); + Assert.assertEquals(reply.getBody(), message2.getBody()); + Assert.assertEquals(reply.getCreator(), id2); + Assert.assertNotNull(message2.getThreadtop()); + Assert.assertEquals(thread1.getKey(), message2.getThreadtop().getKey()); + } + + @Test + public void getLightMessagesByThread() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); + Forum forum = forumManager.addAForum(); + dbInstance.commit(); + + Message thread1 = forumManager.createMessage(forum, id1, false); + thread1.setTitle("Get messages light by thread"); + thread1.setBody("Get messages light by thread"); + forumManager.addTopMessage(thread1); + dbInstance.commit(); + + Message reply = forumManager.createMessage(forum, id2, false); + reply.setTitle("Re: Get messages light by thread"); + reply.setBody("Get messages light by thread and other usefull stuff we need"); + forumManager.replyToMessage(reply, thread1); + dbInstance.commitAndCloseSession(); + + //load and check the messages + List<MessageLight> messages = forumManager.getLightMessagesByThread(forum, thread1); + dbInstance.commitAndCloseSession(); + + Assert.assertNotNull(messages); + Assert.assertEquals(1, messages.size()); + MessageLight message = messages.get(0); + Assert.assertNotNull(message); + Assert.assertEquals(reply.getKey(), message.getKey()); + Assert.assertEquals(reply.getTitle(), message.getTitle()); + Assert.assertEquals(reply.getBody(), message.getBody()); + Assert.assertEquals(reply.getCreator(), id2); + Assert.assertNotNull(message.getThreadtop()); + Assert.assertEquals(thread1.getKey(), message.getThreadtop().getKey()); + } + + @Test + public void getLightMessagesOfGuests() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity guest2 = securityManager.getAndUpdateAnonymousUserForLanguage(Locale.ENGLISH); + Forum forum = forumManager.addAForum(); + dbInstance.commit(); + + Message thread1 = forumManager.createMessage(forum, id1, false); + thread1.setTitle("Get messages light of guests"); + thread1.setBody("Get messages light of guests"); + forumManager.addTopMessage(thread1); + dbInstance.commit(); + + Message reply = forumManager.createMessage(forum, guest2, true); + reply.setTitle("Re: Get messages light of guests"); + reply.setBody("Get messages light of guests and other usefull stuff we need"); + reply.setPseudonym("Guest pseudo 1289"); + forumManager.replyToMessage(reply, thread1); + dbInstance.commitAndCloseSession(); + + //load and check the messages + List<MessageLight> messages = forumManager.getLightMessagesOfGuests(forum); + dbInstance.commitAndCloseSession(); + + Assert.assertNotNull(messages); + Assert.assertEquals(1, messages.size()); + MessageLight message = messages.get(0); + Assert.assertNotNull(message); + Assert.assertEquals(reply.getKey(), message.getKey()); + Assert.assertEquals(reply.getTitle(), message.getTitle()); + Assert.assertEquals(reply.getBody(), message.getBody()); + Assert.assertEquals("Guest pseudo 1289", message.getPseudonym()); + Assert.assertNull(message.getCreator()); + Assert.assertTrue(message.isGuest()); + Assert.assertNotNull(message.getThreadtop()); + Assert.assertEquals(thread1.getKey(), message.getThreadtop().getKey()); + } + + @Test + public void getLightMessagesByUser() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); + Identity id3 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-3"); + Forum forum = forumManager.addAForum(); + dbInstance.commit(); + + Message thread1 = forumManager.createMessage(forum, id1, false); + thread1.setTitle("Get messages light by user"); + thread1.setBody("Get messages light by user"); + forumManager.addTopMessage(thread1); + dbInstance.commit(); + + Message reply = forumManager.createMessage(forum, id2, false); + reply.setTitle("Re: Get messages light by user"); + reply.setBody("Get messages light by user and other usefull stuff we need"); + forumManager.replyToMessage(reply, thread1); + dbInstance.commitAndCloseSession(); + + Message replyPseudo = forumManager.createMessage(forum, id3, false); + replyPseudo.setTitle("Re: Get messages light by user"); + replyPseudo.setBody("Get messages light by user and other usefull stuff we need"); + replyPseudo.setPseudonym("Id pseudo 3476"); + forumManager.replyToMessage(replyPseudo, thread1); + dbInstance.commitAndCloseSession(); + + //load and check the messages of first user + List<MessageLight> messagesOfUser1 = forumManager.getLightMessagesByUser(forum, id1); + dbInstance.commitAndCloseSession(); + + Assert.assertNotNull(messagesOfUser1); + Assert.assertEquals(1, messagesOfUser1.size()); + MessageLight messageOfUser1 = messagesOfUser1.get(0); + Assert.assertNotNull(messageOfUser1); + Assert.assertEquals(thread1.getKey(), messageOfUser1.getKey()); + Assert.assertEquals(thread1.getTitle(), messageOfUser1.getTitle()); + Assert.assertEquals(thread1.getBody(), messageOfUser1.getBody()); + Assert.assertNotNull(messageOfUser1.getCreator()); + Assert.assertEquals(id1, messageOfUser1.getCreator()); + Assert.assertFalse(messageOfUser1.isGuest()); + Assert.assertNull(messageOfUser1.getThreadtop()); + + //load and check the messages of second user + List<MessageLight> messagesOfUser2 = forumManager.getLightMessagesByUser(forum, id2); + dbInstance.commitAndCloseSession(); + + Assert.assertNotNull(messagesOfUser2); + Assert.assertEquals(1, messagesOfUser2.size()); + MessageLight messageOfUser2 = messagesOfUser2.get(0); + Assert.assertNotNull(messageOfUser2); + Assert.assertEquals(reply.getKey(), messageOfUser2.getKey()); + Assert.assertEquals(reply.getTitle(), messageOfUser2.getTitle()); + Assert.assertEquals(reply.getBody(), messageOfUser2.getBody()); + Assert.assertNotNull(messageOfUser2.getCreator()); + Assert.assertEquals(id2, messageOfUser2.getCreator()); + Assert.assertFalse(messageOfUser2.isGuest()); + Assert.assertNotNull(messageOfUser2.getThreadtop()); + Assert.assertEquals(thread1.getKey(), messageOfUser2.getThreadtop().getKey()); + + //load and check the messages of third user which use a pseudo + List<MessageLight> messagesOfUser3 = forumManager.getLightMessagesByUser(forum, id3); + dbInstance.commitAndCloseSession(); + Assert.assertNotNull(messagesOfUser3); + Assert.assertTrue(messagesOfUser3.isEmpty()); + } + + @Test + public void getLightMessagesByUserUnderPseudo() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); + Forum forum = forumManager.addAForum(); + dbInstance.commit(); + + Message thread1 = forumManager.createMessage(forum, id1, false); + thread1.setTitle("Get messages light by user with pseudo"); + thread1.setBody("Get messages light by user with pseudo"); + forumManager.addTopMessage(thread1); + dbInstance.commit(); + + Message reply = forumManager.createMessage(forum, id2, false); + reply.setTitle("Re: Get messages light by user with pseudo"); + reply.setBody("Get messages light by user and other usefull stuff we need"); + forumManager.replyToMessage(reply, thread1); + dbInstance.commitAndCloseSession(); + + Message replyPseudo = forumManager.createMessage(forum, id2, false); + replyPseudo.setTitle("Re: Get messages light by user with pseudo"); + replyPseudo.setBody("Get messages light by user and other usefull stuff we need"); + String pseudo = "Id pseudo " + UUID.randomUUID(); + replyPseudo.setPseudonym(pseudo); + forumManager.replyToMessage(replyPseudo, thread1); + dbInstance.commitAndCloseSession(); + + //load and check the messages of user with pseudo + List<MessageLight> messagesOfUser2 = forumManager.getLightMessagesByUserUnderPseudo(forum, id2, pseudo); + dbInstance.commitAndCloseSession(); + + Assert.assertNotNull(messagesOfUser2); + Assert.assertEquals(1, messagesOfUser2.size()); + MessageLight messageUnderPseudo = messagesOfUser2.get(0); + Assert.assertNotNull(messageUnderPseudo); + Assert.assertEquals(replyPseudo.getKey(), messageUnderPseudo.getKey()); + Assert.assertEquals(replyPseudo.getTitle(), messageUnderPseudo.getTitle()); + Assert.assertEquals(replyPseudo.getBody(), messageUnderPseudo.getBody()); + Assert.assertNotNull(messageUnderPseudo.getCreator()); + Assert.assertEquals(id2, messageUnderPseudo.getCreator()); + Assert.assertFalse(messageUnderPseudo.isGuest()); + Assert.assertNotNull(messageUnderPseudo.getThreadtop()); + Assert.assertEquals(thread1.getKey(), messageUnderPseudo.getThreadtop().getKey()); + } + + @Test + public void countMessagesByForumID() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); Forum fo = forumManager.addAForum(); dbInstance.commit(); Message topMessage = forumManager.createMessage(fo, id1, false); - topMessage.setTitle("stufe 0: subject 0"); - topMessage.setBody("body/n dep 0"); + topMessage.setTitle("Messages count by forum"); + topMessage.setBody("Messages count by forum"); forumManager.addTopMessage(topMessage); dbInstance.commit(); Message reply = forumManager.createMessage(fo, id2, false); - reply.setTitle("stufe 1: subject 0"); - reply.setBody("body/n dep 0"); + reply.setTitle("Re: Messages count by forum"); + reply.setBody("Messages count by forum"); forumManager.replyToMessage(reply, topMessage); dbInstance.commit(); Message reply2 = forumManager.createMessage(fo, id1, false); - reply2.setTitle("stufe 1: subject 0"); - reply2.setBody("body/n dep 0"); + reply2.setTitle("Re: Re: Messages count by forum"); + reply2.setBody("Messages count by forum"); forumManager.replyToMessage(reply2, reply); dbInstance.commit(); int numOfMessages = forumManager.countMessagesByForumID(fo.getKey()); Assert.assertEquals("Not the right number of messages for this forum", 3, numOfMessages); } + + @Test + public void countThreadsByForumID() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-1"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-2"); + Forum fo = forumManager.addAForum(); + dbInstance.commit(); + + Message topMessage = forumManager.createMessage(fo, id1, false); + topMessage.setTitle("Threads count by forum"); + topMessage.setBody("Threads count by forum"); + forumManager.addTopMessage(topMessage); + dbInstance.commit(); + + Message reply = forumManager.createMessage(fo, id2, false); + reply.setTitle("Re: Threads count by forum"); + reply.setBody("Threads count by forum"); + forumManager.replyToMessage(reply, topMessage); + dbInstance.commit(); + + Message topMessage2 = forumManager.createMessage(fo, id2, false); + topMessage2.setTitle("More on threads count by forum"); + topMessage2.setBody("More on threads count by forum"); + forumManager.addTopMessage(topMessage2); + dbInstance.commit(); + + int numOfThreads = forumManager.countThreadsByForumID(fo.getKey()); + Assert.assertEquals("Not the right number of threads for this forum", 2, numOfThreads); + } @Test - public void testGetNewMessageInfo() { + public void getNewMessageInfo() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-5"); Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-6"); Forum fo = forumManager.addAForum(); @@ -169,7 +534,7 @@ public class ForumManagerTest extends OlatTestCase { } @Test - public void testDeleteMessageTree() { + public void deleteMessageTree() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-5"); Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-6"); Forum fo = forumManager.addAForum(); @@ -203,7 +568,7 @@ public class ForumManagerTest extends OlatTestCase { } @Test - public void testDeleteForum() { + public void deleteForum() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-7"); Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-8"); Forum fo = forumManager.addAForum(); diff --git a/src/test/java/org/olat/selenium/page/graphene/OOGraphene.java b/src/test/java/org/olat/selenium/page/graphene/OOGraphene.java index a8b503a5a0081edfcc3368acd4c2b7da4004e665..697ddc6694345a7f30fcb05efff09f227e81eecc 100644 --- a/src/test/java/org/olat/selenium/page/graphene/OOGraphene.java +++ b/src/test/java/org/olat/selenium/page/graphene/OOGraphene.java @@ -176,7 +176,7 @@ public class OOGraphene { public static final void waitAndCloseBlueMessageWindow(WebDriver browser) { try { - OOGraphene.waitElement(closeBlueBoxButtonBy, 1, browser); + waitElement(closeBlueBoxButtonBy, 1, browser); } catch (Exception e) { e.printStackTrace(); } @@ -188,10 +188,10 @@ public class OOGraphene { for(WebElement closeButton:closeButtons) { if(closeButton.isDisplayed()) { try { - clickCloseButton(closeButton); + clickCloseButton(browser, closeButton); } catch (TimeoutException e) { try { - clickCloseButton(closeButton); + clickCloseButton(browser, closeButton); } catch(Exception e2) { // } @@ -200,10 +200,10 @@ public class OOGraphene { } } - private static final void clickCloseButton(WebElement closeButton) { + private static final void clickCloseButton(WebDriver browser, WebElement closeButton) { try { closeButton.click(); - Graphene.waitModel() + Graphene.waitModel(browser) .withTimeout(1000, TimeUnit.MILLISECONDS) .pollingEvery(poolingDuration, TimeUnit.MILLISECONDS) .until(new CloseAlertInfoPredicate()); @@ -211,4 +211,14 @@ public class OOGraphene { //e.printStackTrace(); } } + + /*public static void closeOffCanvas(WebDriver browser) { + By closeBy = By.cssSelector("a.o_offcanvas_close"); + List<WebElement> closeButtons = browser.findElements(closeBy); + if(closeButtons.size() == 1 && closeButtons.get(0).isDisplayed()) { + closeButtons.get(0).click(); + By bodyBy = By.xpath("//body[contains(@class,'o_offcanvas_right_visible')]"); + OOGraphene.waitElementDisappears(bodyBy, 2, browser); + } + }*/ } diff --git a/src/test/java/org/olat/selenium/page/group/GroupPage.java b/src/test/java/org/olat/selenium/page/group/GroupPage.java index 393ddee294610135434ba1b6392993c7a46b6f05..d4036a2252b7e311f29fab92a45855d41ba145f8 100644 --- a/src/test/java/org/olat/selenium/page/group/GroupPage.java +++ b/src/test/java/org/olat/selenium/page/group/GroupPage.java @@ -49,6 +49,7 @@ public class GroupPage { private static final By toolsBy = By.className("o_sel_collab_tools"); private static final By editDetails = By.className("o_sel_group_edit_title"); private static final By bookingConfigBy = By.className("o_sel_accesscontrol_create"); + private static final By memberMenuItem = By.cssSelector("li.o_sel_group_members a"); private WebDriver browser; @@ -148,30 +149,29 @@ public class GroupPage { OOGraphene.waitBusy(browser); } - public GroupPage setVisibility(boolean owners, boolean participants, boolean waitingList) { + public GroupPage setVisibility(boolean owners, boolean participants, boolean waitingList) { if(owners) { By showOwnersBy = By.cssSelector(".o_sel_group_show_owners input[type='checkbox']"); browser.findElement(showOwnersBy).click(); OOGraphene.waitBusy(browser); - OOGraphene.closeBlueMessageWindow(browser); + OOGraphene.waitElement(memberMenuItem, 2, browser); } if(participants) { By showParticipants = By.cssSelector(".o_sel_group_show_participants input[type='checkbox']"); browser.findElement(showParticipants).click(); OOGraphene.waitBusy(browser); - OOGraphene.closeBlueMessageWindow(browser); + OOGraphene.waitElement(memberMenuItem, 2, browser); } if(waitingList) { By showWaitingListBy = By.cssSelector(".o_sel_group_show_waiting_list input[type='checkbox']"); browser.findElement(showWaitingListBy).click(); OOGraphene.waitBusy(browser); - OOGraphene.closeBlueMessageWindow(browser); + OOGraphene.waitElement(memberMenuItem, 2, browser); } OOGraphene.waitBusy(browser); - OOGraphene.closeBlueMessageWindow(browser); return this; } @@ -276,9 +276,7 @@ public class GroupPage { public GroupPage assertParticipantList() { By participantListBy = By.id("o_sel_group_participants"); List<WebElement> participantListEl = browser.findElements(participantListBy); - if(participantListEl.size() == 0) { - System.out.println(); - } + Assert.assertFalse(participantListEl.isEmpty()); return this; } diff --git a/src/test/java/org/olat/selenium/page/user/UserAdminPage.java b/src/test/java/org/olat/selenium/page/user/UserAdminPage.java index 1a0628b43c35f1a7cc57d8151c75e79dbdeb0dce..3a502c369903ccb9ca77e4eddfa1ba2647111a62 100644 --- a/src/test/java/org/olat/selenium/page/user/UserAdminPage.java +++ b/src/test/java/org/olat/selenium/page/user/UserAdminPage.java @@ -123,6 +123,7 @@ public class UserAdminPage { By saveBy = By.cssSelector(".o_sel_id_create button.btn-primary"); browser.findElement(saveBy).click(); OOGraphene.waitBusy(browser); + OOGraphene.waitAndCloseBlueMessageWindow(browser); return this; } diff --git a/src/test/java/org/olat/test/rest/UserRestClient.java b/src/test/java/org/olat/test/rest/UserRestClient.java index 6cd270ad104bb3eb03d11f5576fa55ae652615f8..01f14fa46afc1b55c5e4bd3e12e42dcde7eea1fc 100644 --- a/src/test/java/org/olat/test/rest/UserRestClient.java +++ b/src/test/java/org/olat/test/rest/UserRestClient.java @@ -111,7 +111,7 @@ public class UserRestClient { UserVO vo = new UserVO(); String rndUsername = (name + "-" + uuid).substring(0, 24); - vo.setLogin(rndUsername); + vo.setLogin(rndUsername.toLowerCase()); String rndPassword = ("passwd-" + uuid).substring(0, 24); vo.setPassword(rndPassword); vo.setFirstName(name + "-"+ role + "-" + uuid);