diff --git a/.hgtags b/.hgtags index 36fb80220db7a30531e6238743bf971cfd43a069..3027e31ec94b3251cd5a10a32a6787caa637893b 100644 --- a/.hgtags +++ b/.hgtags @@ -180,3 +180,4 @@ ced19a2138aadfc4039ebe223e60f5df63e70af2 OpenOLAT 11.2.3 aa02a5383a846d9b76620693f1713cc1f7a5c3b7 OpenOLAT 11.3.0 337b0fc7a050487d03ced1635bde15b0f42e7af7 OpenOLAT 11.3.1 645a985d874cc6a08fd0abd38973b40e21d46161 OpenOLAT 11.3.2 +11781a2f2cd56895272e83be82eb020904555163 OpenOLAT 11.3.3 diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java index 03cf91b81a1ab6f74f1dea8643250566537d972d..a2e8566db39079d99e0ca65aefd65f4d195408f6 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java @@ -619,7 +619,7 @@ public class AssessmentRenderFunctions { */ public static final String convertLink(AssessmentObjectComponent component, ResolvedAssessmentItem resolvedAssessmentItem, String uri) { - if(uri != null && uri.startsWith("http:") || uri.startsWith("https:") || uri.startsWith("mailto:")) { + if(uri != null && (uri.startsWith("http:") || uri.startsWith("https:") || uri.startsWith("mailto:"))) { return uri; } diff --git a/src/test/java/org/olat/modules/fo/ForumManagerTest.java b/src/test/java/org/olat/modules/fo/ForumManagerTest.java index 6013fd272f46feca631f02680a0aca0c1c4e9017..121ef64eae26f8de90196d7a1225964baf7c2287 100644 --- a/src/test/java/org/olat/modules/fo/ForumManagerTest.java +++ b/src/test/java/org/olat/modules/fo/ForumManagerTest.java @@ -1251,6 +1251,45 @@ public class ForumManagerTest extends OlatTestCase { dbInstance.commitAndCloseSession(); } + @Test + public void deleteMessageTree_withMarks() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-15"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-16"); + Forum fo = forumManager.addAForum(); + dbInstance.commit(); + + Message topMessage = forumManager.createMessage(fo, id1, false); + topMessage.setTitle("Future deleted message 1"); + topMessage.setBody("Future deleted stuff"); + forumManager.addTopMessage(topMessage); + dbInstance.commit(); + + Message reply = forumManager.createMessage(fo, id2, false); + reply.setTitle("Future deleted 2"); + reply.setBody("Future deleted stuff"); + forumManager.replyToMessage(reply, topMessage); + dbInstance.commit(); + + Message reply2 = forumManager.createMessage(fo, id1, false); + reply2.setTitle("Future deleted 3"); + reply2.setBody("Future deleted stuff"); + forumManager.replyToMessage(reply2, reply); + dbInstance.commit(); + + //mark as read + forumManager.markAsRead(id1, fo, topMessage); + forumManager.markAsRead(id1, fo, reply); + forumManager.markAsRead(id1, fo, reply2); + forumManager.markAsRead(id2, fo, topMessage); + forumManager.markAsRead(id2, fo, reply); + forumManager.markAsRead(id2, fo, reply2); + dbInstance.commitAndCloseSession(); + + //delete a message + forumManager.deleteMessageTree(fo.getKey(), reply2); + dbInstance.commitAndCloseSession(); + } + @Test public void deleteForum() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-7"); @@ -1281,6 +1320,54 @@ public class ForumManagerTest extends OlatTestCase { dbInstance.commit(); } + @Test + public void deleteForum_bigForumWithMarks() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-17"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-18"); + Identity id3 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-19"); + Forum fo = forumManager.addAForum(); + dbInstance.commit(); + + List<Message> messages = new ArrayList<>(); + for(int i=0; i<5; i++) { + Message topMessage = forumManager.createMessage(fo, id1, false); + topMessage.setTitle("Future deleted forum part. " + i); + topMessage.setBody("Future deleted stuff"); + forumManager.addTopMessage(topMessage); + messages.add(topMessage); + dbInstance.commit(); + + for(int j=0; j<3; j++) { + Message reply = forumManager.createMessage(fo, id2, false); + reply.setTitle("Future deleted forum part. " + i + "." + j); + reply.setBody("Future deleted stuff"); + forumManager.replyToMessage(reply, topMessage); + messages.add(reply); + dbInstance.commit(); + + for(int k=0; k<3; k++) { + Message reply2 = forumManager.createMessage(fo, id3, false); + reply2.setTitle("Future deleted forum part. " + i + "." + j + "." + k); + reply2.setBody("Future deleted stuff"); + forumManager.replyToMessage(reply2, reply); + messages.add(reply2); + dbInstance.commitAndCloseSession(); + } + } + } + + for(Message message:messages) { + forumManager.markAsRead(id1, fo, message); + forumManager.markAsRead(id2, fo, message); + forumManager.markAsRead(id3, fo, message); + } + dbInstance.commitAndCloseSession(); + + //delete the forum + forumManager.deleteForum(fo.getKey()); + dbInstance.commit(); + } + @Test public void mergeForums() { Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("fo-9");