package fi.otavanopisto.muikku.ui.base.discussion;
import org.junit.Test;
import fi.otavanopisto.muikku.atests.Discussion;
import fi.otavanopisto.muikku.atests.DiscussionGroup;
import fi.otavanopisto.muikku.atests.DiscussionThread;
import fi.otavanopisto.muikku.ui.AbstractUITest;
public class DiscussionTestsBase extends AbstractUITest {
@Test
public void courseDiscussionSendMessageTest() throws Exception {
loginAdmin();
DiscussionGroup discussionGroup = createDiscussionGroup("test group");
try {
Discussion discussion = createDiscussion(discussionGroup.getId(), "test discussion");
try {
navigate("/discussion", true);
waitAndClick(".di-new-message-button");
waitAndClick(".mf-textfield-subcontainer input");
sendKeys(".mf-textfield-subcontainer input", "Test title for discussion");
addTextToCKEditor("Test text for discussion.");
click("*[name='send']");
waitForPresent(".di-message-meta-content>span>p");
assertText(".di-message-meta-content>span>p", "Test text for discussion.");
} finally {
deleteDiscussion(discussionGroup.getId(), discussion.getId());
}
} finally {
deleteDiscussionGroup(discussionGroup.getId());
}
}
@Test
public void courseDiscussionAdminCreateAreaTest() throws Exception {
loginAdmin();
DiscussionGroup discussionGroup = createDiscussionGroup("test group");
try {
Discussion discussion = createDiscussion(discussionGroup.getId(), "test discussion");
try {
navigate("/discussion", true);
waitAndClick(".sm-flex-hide .di-new-area-button");
waitAndSendKeys(".mf-textfield input", "Test area");
click("*[name='send']");
waitForPresent("#discussionAreaSelect option:nth-child(2)");
assertText("#discussionAreaSelect option:nth-child(2)", "Test area");
} finally {
deleteDiscussion(discussionGroup.getId(), discussion.getId());
}
} finally {
deleteDiscussionGroup(discussionGroup.getId());
}
}
@Test
public void courseDiscussionReplyTest() throws Exception {
loginAdmin();
DiscussionGroup discussionGroup = createDiscussionGroup("test group");
try {
Discussion discussion = createDiscussion(discussionGroup.getId(), "test discussion");
try {
DiscussionThread thread = createDiscussionThread(discussionGroup.getId(), discussion.getId(), "Testing",
"<p>Testing testing daa daa</p>", false, false);
try {
navigate("/discussion", true);
waitAndClick(".di-message-meta-topic>span");
waitAndClick(".di-message-reply-link");
addTextToCKEditor("Test reply for test.");
click("*[name='send']");
waitForPresent(".di-replies-container .mf-item-content-text p");
assertText(".di-replies-container .mf-item-content-text p", "Test reply for test.");
} finally {
deleteDiscussionThread(discussionGroup.getId(), discussion.getId(), thread.getId());
}
} finally {
deleteDiscussion(discussionGroup.getId(), discussion.getId());
}
} finally {
deleteDiscussionGroup(discussionGroup.getId());
}
}
@Test
public void courseDiscussionDeleteThreadTest() throws Exception {
loginAdmin();
DiscussionGroup discussionGroup = createDiscussionGroup("test group");
try {
Discussion discussion = createDiscussion(discussionGroup.getId(), "test discussion");
try {
DiscussionThread thread = createDiscussionThread(discussionGroup.getId(), discussion.getId(), "Testing",
"<p>Testing testing daa daa</p>", false, false);
try {
navigate("/discussion", true);
waitAndClick(".di-message-meta-topic>span");
waitAndClick(".di-remove-thread-link");
waitAndClick(".delete-button>span");
waitForPresent(".mf-content-empty>h3");
assertNotPresent(".di-threads .di-message");
} catch (Exception e) {
deleteDiscussionThread(discussionGroup.getId(), discussion.getId(), thread.getId());
} finally {
deleteDiscussionThread(discussionGroup.getId(), discussion.getId(), thread.getId());
}
} finally {
deleteDiscussion(discussionGroup.getId(), discussion.getId());
}
} finally {
deleteDiscussionGroup(discussionGroup.getId());
}
}
@Test
public void courseDiscussionReplyReplyTest() throws Exception {
loginAdmin();
DiscussionGroup discussionGroup = createDiscussionGroup("test group");
try {
Discussion discussion = createDiscussion(discussionGroup.getId(), "test discussion");
try {
DiscussionThread thread = createDiscussionThread(discussionGroup.getId(), discussion.getId(), "Testing",
"<p>Testing testing daa daa</p>", false, false);
try {
navigate("/discussion", true);
waitAndClick(".di-message-meta-topic>span");
waitAndClick(".di-message-reply-link");
addTextToCKEditor("Test reply for test.");
click("*[name='send']");
waitForPresent(".di-replies-container .mf-item-content-text p");
waitAndClick(".di-replies-page .di-reply-answer-link>span");
addTextToCKEditor("Test reply reply for test.");
click("*[name='send']");
waitForPresent(".di-replies-container .di-reply-reply .mf-item-content-text p");
assertText(".di-replies-container .di-reply-reply .mf-item-content-text p", "Test reply reply for test.");
} catch (Exception e) {
deleteDiscussionThread(discussionGroup.getId(), discussion.getId(), thread.getId());
} finally {
deleteDiscussionThread(discussionGroup.getId(), discussion.getId(), thread.getId());
}
} finally {
deleteDiscussion(discussionGroup.getId(), discussion.getId());
}
} finally {
deleteDiscussionGroup(discussionGroup.getId());
}
}
}