package fi.otavanopisto.muikku.ui.base.guider;
import java.io.File;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import org.junit.Test;
import fi.otavanopisto.muikku.TestEnvironments;
import fi.otavanopisto.muikku.TestUtilities;
import fi.otavanopisto.muikku.atests.Workspace;
import fi.otavanopisto.muikku.mock.PyramusMock.Builder;
import fi.otavanopisto.muikku.mock.model.MockCourseStudent;
import fi.otavanopisto.muikku.mock.model.MockStaffMember;
import fi.otavanopisto.muikku.mock.model.MockStudent;
import fi.otavanopisto.muikku.ui.AbstractUITest;
import fi.otavanopisto.pyramus.rest.model.CourseStaffMember;
import fi.otavanopisto.pyramus.rest.model.Sex;
import fi.otavanopisto.pyramus.rest.model.UserRole;
import static fi.otavanopisto.muikku.mock.PyramusMock.mocker;
public class GuiderTestsBase extends AbstractUITest {
@Test
public void filterByNameTest() throws Exception {
MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "Person", UserRole.ADMINISTRATOR, "090978-1234", "testadmin@example.com", Sex.MALE);
MockStudent student = new MockStudent(3l, 3l, "Second", "User", "teststudent@example.com", 1l, OffsetDateTime.of(1990, 2, 2, 0, 0, 0, 0, ZoneOffset.UTC), "121212-1212", Sex.FEMALE, TestUtilities.toDate(2012, 1, 1), TestUtilities.getNextYear());
Builder mockBuilder = mocker();
mockBuilder.addStaffMember(admin).addStudent(student).mockLogin(admin).build();
login();
Workspace workspace = createWorkspace("testscourse", "test course for testing", "3", Boolean.TRUE);
Workspace workspace2 = createWorkspace("diffentscourse", "Second test course", "4", Boolean.TRUE);
MockCourseStudent mcs = new MockCourseStudent(3l, workspace.getId(), student.getId());
mockBuilder.addCourseStudent(workspace.getId(), mcs).build();
try {
navigate("/guider", true);
sendKeys(".gt-search .search", "Second User");
waitForPresent(".gt-user .gt-user-meta-topic>span");
assertText(".gt-user .gt-user-meta-topic>span", "Second User (Test Study Programme)");
} finally {
deleteWorkspace(workspace.getId());
deleteWorkspace(workspace2.getId());
}
}
@Test
public void filterByWorkspaceTest() throws Exception {
MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "Person", UserRole.ADMINISTRATOR, "090978-1234", "testadmin@example.com", Sex.MALE);
MockStudent student = new MockStudent(3l, 3l, "Second", "User", "teststudent@example.com", 1l, OffsetDateTime.of(1990, 2, 2, 0, 0, 0, 0, ZoneOffset.UTC), "121212-1212", Sex.FEMALE, TestUtilities.toDate(2012, 1, 1), TestUtilities.getNextYear());
Builder mockBuilder = mocker();
mockBuilder.addStaffMember(admin).addStudent(student).mockLogin(admin).build();
login();
Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE);
Workspace workspace2 = createWorkspace("diffentcourse", "Second test course", "2", Boolean.TRUE);
MockCourseStudent mcs = new MockCourseStudent(1l, workspace.getId(), student.getId());
CourseStaffMember courseStaffMember = new CourseStaffMember(1l, 1l, admin.getId(), 7l);
mockBuilder
.addCourseStaffMember(workspace.getId(), courseStaffMember)
.addCourseStudent(workspace.getId(), mcs)
.build();
try {
navigate("/guider", true);
waitAndClick(String.format("a.gt-filter-link[data-id~=\"%d\"]", workspace.getId()));
waitForPresent(".gt-user .gt-user-meta-topic>span");
assertText(".gt-user .gt-user-meta-topic>span", "Second User (Test Study Programme)");
} finally {
deleteWorkspace(workspace2.getId());
deleteWorkspace(workspace.getId());
}
}
@Test
@TestEnvironments (
browsers = {
TestEnvironments.Browser.CHROME,
TestEnvironments.Browser.FIREFOX,
TestEnvironments.Browser.INTERNET_EXPLORER,
}
)
public void uploadFileToStudentTest() throws Exception {
MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "Person", UserRole.ADMINISTRATOR, "090978-1234", "testadmin@example.com", Sex.MALE);
MockStudent student = new MockStudent(3l, 3l, "Second", "User", "teststudent@example.com", 1l, OffsetDateTime.of(1990, 2, 2, 0, 0, 0, 0, ZoneOffset.UTC), "121212-1212", Sex.FEMALE, TestUtilities.toDate(2012, 1, 1), TestUtilities.getNextYear());
Builder mockBuilder = mocker();
mockBuilder.addStaffMember(admin).addStudent(student).mockLogin(admin).build();
login();
Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE);
MockCourseStudent mcs = new MockCourseStudent(1l, workspace.getId(), student.getId());
CourseStaffMember courseStaffMember = new CourseStaffMember(1l, 1l, admin.getId(), 7l);
mockBuilder
.addCourseStaffMember(workspace.getId(), courseStaffMember)
.addCourseStudent(workspace.getId(), mcs)
.build();
try {
navigate("/guider", true);
waitAndClick(".gt-user .gt-user-meta-topic>span");
waitAndClick(".gt-user .gt-tool-view-profile");
File testFile = getTestFile();
waitForPresent(".gt-user-files .gt-user-file-add input[type=\"file\"]");
sendKeys(".gt-user-files .gt-user-file-add input[type=\"file\"]", testFile.getAbsolutePath());
waitForPresent(".gt-user-file .gt-user-file-name a");
scrollIntoView(".gt-user-file .gt-user-file-name a");
assertTextIgnoreCase(".gt-user-file .gt-user-file-name a", testFile.getName());
logout();
mockBuilder.mockLogin(student).build();
login();
navigate("/records/", true);
waitForPresent(".mf-item .mf-files .mf-file-name a");
assertText(".mf-item .mf-files .mf-file-name a", "img_100x100_3x8bit_RGB_circles_center_0016.png");
} finally {
deleteWorkspace(workspace.getId());
}
}
}