Search in sources :

Example 11 with WorkspaceHtmlMaterial

use of fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial in project muikku by otavanopisto.

the class CourseMaterialsPageTestsBase method courseMaterialEvaluatedClassTest.

public void courseMaterialEvaluatedClassTest() throws Exception {
    loginAdmin();
    Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE);
    try {
        WorkspaceFolder workspaceFolder1 = createWorkspaceFolder(workspace.getId(), null, Boolean.FALSE, 1, "Test Course material folder", "DEFAULT");
        WorkspaceHtmlMaterial htmlMaterial1 = createWorkspaceHtmlMaterial(workspace.getId(), workspaceFolder1.getId(), "1.0 Testimateriaali", "text/html;editor=CKEditor", "<html><body><p>Testi materiaalia:  Lorem ipsum dolor sit amet </p><p>Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem</p></body></html>", 1l, "EVALUATED");
        try {
            getWebDriver().get(getAppUrl(true) + "/workspace/testcourse/materials");
            waitForElementToBePresent(By.cssSelector(".muikku-page-assignment-type"));
            String actual = findElementByCssSelector("#page-45>div").getAttribute("class");
            String expected = new String("muikku-page-assignment-type evaluated");
            assertEquals(expected, actual);
            WireMock.reset();
        } finally {
            deleteWorkspaceHtmlMaterial(workspace.getId(), htmlMaterial1.getId());
        }
    } finally {
        deleteWorkspace(workspace.getId());
        WireMock.reset();
    }
}
Also used : WorkspaceHtmlMaterial(fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial) Workspace(fi.otavanopisto.muikku.atests.Workspace) WorkspaceFolder(fi.otavanopisto.muikku.atests.WorkspaceFolder)

Example 12 with WorkspaceHtmlMaterial

use of fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial in project muikku by otavanopisto.

the class CourseMaterialsPageTestsBase method answerDropdownTestAdmin.

@Test
@TestEnvironments(browsers = { TestEnvironments.Browser.CHROME, TestEnvironments.Browser.FIREFOX, TestEnvironments.Browser.INTERNET_EXPLORER, TestEnvironments.Browser.SAFARI })
public void answerDropdownTestAdmin() throws Exception {
    loginAdmin();
    maximizeWindow();
    Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE);
    try {
        WorkspaceFolder workspaceFolder = createWorkspaceFolder(workspace.getId(), null, Boolean.FALSE, 1, "Test Course material folder", "DEFAULT");
        WorkspaceHtmlMaterial htmlMaterial = createWorkspaceHtmlMaterial(workspace.getId(), workspaceFolder.getId(), "Test", "text/html;editor=CKEditor", "<p><object type=\"application/vnd.muikku.field.select\"><param name=\"type\" value=\"application/json\" /><param name=\"content\" value=\"{&quot;name&quot;:&quot;muikku-field-22p0Ll4KipuGHcP9n6W1qXBU&quot;,&quot;listType&quot;:&quot;dropdown&quot;,&quot;options&quot;:[{&quot;name&quot;:&quot;1&quot;,&quot;text&quot;:&quot;un&quot;,&quot;correct&quot;:false},{&quot;name&quot;:&quot;2&quot;,&quot;text&quot;:&quot;dos&quot;,&quot;correct&quot;:false},{&quot;name&quot;:&quot;3&quot;,&quot;text&quot;:&quot;tres&quot;,&quot;correct&quot;:false}]}\" /><select name=\"muikku-field-22p0Ll4KipuGHcP9n6W1qXBU\"></select></object></p>", 1l, "EXERCISE");
        try {
            navigate(String.format("/workspace/%s/materials", workspace.getUrlName()), true);
            waitForPresent(String.format("#page-%d", htmlMaterial.getId()));
            assertVisible(String.format("#page-%d .muikku-select-field", htmlMaterial.getId()));
            assertValue(String.format("#page-%d .muikku-select-field", htmlMaterial.getId()), "");
            assertClassNotPresent(String.format("#page-%d .muikku-select-field", htmlMaterial.getId()), "muikku-field-saved");
            selectOption(String.format("#page-%d .muikku-select-field", htmlMaterial.getId()), "2");
            waitClassPresent(String.format("#page-%d .muikku-select-field", htmlMaterial.getId()), "muikku-field-saved");
            navigate(String.format("/workspace/%s/materials", workspace.getUrlName()), true);
            waitForPresent(String.format("#page-%d .muikku-select-field", htmlMaterial.getId()));
            assertSelectedOption(String.format("#page-%d .muikku-select-field", htmlMaterial.getId()), "dos");
        } finally {
            deleteWorkspaceHtmlMaterial(workspace.getId(), htmlMaterial.getId());
        }
    } finally {
        deleteWorkspace(workspace.getId());
        WireMock.reset();
    }
}
Also used : WorkspaceHtmlMaterial(fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial) Workspace(fi.otavanopisto.muikku.atests.Workspace) WorkspaceFolder(fi.otavanopisto.muikku.atests.WorkspaceFolder) Test(org.junit.Test) AbstractUITest(fi.otavanopisto.muikku.ui.AbstractUITest) TestEnvironments(fi.otavanopisto.muikku.TestEnvironments)

Example 13 with WorkspaceHtmlMaterial

use of fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial in project muikku by otavanopisto.

the class CourseMaterialsPageTestsBase method courseMaterialLicenseOverrideLinkTest.

@Test
@TestEnvironments(browsers = { TestEnvironments.Browser.CHROME, TestEnvironments.Browser.FIREFOX, TestEnvironments.Browser.INTERNET_EXPLORER, TestEnvironments.Browser.SAFARI, TestEnvironments.Browser.PHANTOMJS })
public void courseMaterialLicenseOverrideLinkTest() throws Exception {
    MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "User", UserRole.ADMINISTRATOR, "121212-1234", "admin@example.com", Sex.MALE);
    Builder mockBuilder = mocker();
    mockBuilder.addStaffMember(admin).mockLogin(admin).build();
    login();
    Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE);
    try {
        WorkspaceFolder workspaceFolder1 = createWorkspaceFolder(workspace.getId(), null, Boolean.FALSE, 1, "Test Course material folder", "DEFAULT");
        WorkspaceHtmlMaterial htmlMaterial1 = createWorkspaceHtmlMaterial(workspace.getId(), workspaceFolder1.getId(), "1.0 Testimateriaali", "text/html;editor=CKEditor", "<html><body><p>Testi materiaalia:  Lorem ipsum dolor sit amet </p><p>Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem</p></body></html>", 1l, "EXERCISE");
        try {
            navigate(String.format("/workspace/%s/materials-management", workspace.getUrlName()), true);
            waitForPresent(".page-license");
            click(".page-license");
            waitForPresent(".materials-management-page-license div select");
            waitForClickable(".materials-management-page-license div select");
            selectOption(".materials-management-page-license div select", "link");
            waitAndSendKeys("input[name=\"license\"]", "www.test.com");
            waitAndClick(".save-page-license");
            waitAndClick(String.format("#page-%d .publish-page", htmlMaterial1.getId()));
            waitAndClick(".ui-dialog-buttonset .publish-button");
            waitForPresent(".page-license");
            navigate(String.format("/workspace/%s/materials", workspace.getUrlName()), true);
            waitForPresent(String.format(".material-license", htmlMaterial1.getId()));
            assertTextIgnoreCase(String.format(".material-license", htmlMaterial1.getId()), "www.test.com");
        } finally {
            deleteWorkspaceHtmlMaterial(workspace.getId(), htmlMaterial1.getId());
        }
    } finally {
        deleteWorkspace(workspace.getId());
        WireMock.reset();
    }
}
Also used : WorkspaceHtmlMaterial(fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial) Builder(fi.otavanopisto.muikku.mock.PyramusMock.Builder) MockStaffMember(fi.otavanopisto.muikku.mock.model.MockStaffMember) Workspace(fi.otavanopisto.muikku.atests.Workspace) WorkspaceFolder(fi.otavanopisto.muikku.atests.WorkspaceFolder) Test(org.junit.Test) AbstractUITest(fi.otavanopisto.muikku.ui.AbstractUITest) TestEnvironments(fi.otavanopisto.muikku.TestEnvironments)

Example 14 with WorkspaceHtmlMaterial

use of fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial in project muikku by otavanopisto.

the class CourseMaterialsPageTestsBase method answerFileFieldTestAdmin.

@Test
@TestEnvironments(browsers = { TestEnvironments.Browser.CHROME, TestEnvironments.Browser.FIREFOX, TestEnvironments.Browser.INTERNET_EXPLORER })
public void answerFileFieldTestAdmin() throws Exception {
    loginAdmin();
    File testFile = getTestFile();
    Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE);
    try {
        WorkspaceFolder workspaceFolder = createWorkspaceFolder(workspace.getId(), null, Boolean.FALSE, 1, "Test Course material folder", "DEFAULT");
        WorkspaceHtmlMaterial htmlMaterial = createWorkspaceHtmlMaterial(workspace.getId(), workspaceFolder.getId(), "Test", "text/html;editor=CKEditor", "<p><object type=\"application/vnd.muikku.field.file\"><param name=\"type\" value=\"application/json\" /><param name=\"content\" value=\"{&quot;name&quot;:&quot;muikku-field-lAEveKeKFmjD5wQwcMh4SW20&quot;}\" /><input name=\"muikku-field-lAEveKeKFmjD5wQwcMh4SW20\" type=\"file\" /></p>", 1l, "EXERCISE");
        try {
            navigate(String.format("/workspace/%s/materials", workspace.getUrlName()), true);
            waitForPresent(String.format("#page-%d", htmlMaterial.getId()));
            assertPresent(String.format("#page-%d .muikku-file-field", htmlMaterial.getId()));
            assertClassNotPresent(String.format("#page-%d .muikku-file-field", htmlMaterial.getId()), "muikku-field-saved");
            assertCount(String.format("#page-%d .muikku-file-input-field-file", htmlMaterial.getId()), 0);
            sendKeys(String.format("#page-%d .muikku-file-input-field-file-uploader-container input[type='file']", htmlMaterial.getId()), testFile.getAbsolutePath());
            waitClassPresent(String.format("#page-%d .muikku-file-field", htmlMaterial.getId()), "muikku-field-saved");
            navigate(String.format("/workspace/%s/materials", workspace.getUrlName()), true);
            waitForPresent(String.format("#page-%d .muikku-file-field", htmlMaterial.getId()));
            assertCount(String.format("#page-%d .muikku-file-input-field-file", htmlMaterial.getId()), 1);
            assertTextIgnoreCase(String.format("#page-%d .muikku-file-input-field-file .muikku-file-input-field-file-label a", htmlMaterial.getId()), testFile.getName());
        } finally {
            deleteWorkspaceHtmlMaterial(workspace.getId(), htmlMaterial.getId());
        }
    } finally {
        deleteWorkspace(workspace.getId());
        WireMock.reset();
    }
}
Also used : WorkspaceHtmlMaterial(fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial) File(java.io.File) Workspace(fi.otavanopisto.muikku.atests.Workspace) WorkspaceFolder(fi.otavanopisto.muikku.atests.WorkspaceFolder) Test(org.junit.Test) AbstractUITest(fi.otavanopisto.muikku.ui.AbstractUITest) TestEnvironments(fi.otavanopisto.muikku.TestEnvironments)

Example 15 with WorkspaceHtmlMaterial

use of fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial in project muikku by otavanopisto.

the class EvaluationTestsBase method reEvaluateStudentWorkspaceMaterialTest.

@Test
@TestEnvironments(browsers = { TestEnvironments.Browser.CHROME, TestEnvironments.Browser.FIREFOX, TestEnvironments.Browser.INTERNET_EXPLORER, TestEnvironments.Browser.EDGE, TestEnvironments.Browser.SAFARI })
public void reEvaluateStudentWorkspaceMaterialTest() throws Exception {
    MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "User", UserRole.ADMINISTRATOR, "121212-1234", "admin@example.com", Sex.MALE);
    MockStudent student = new MockStudent(2l, 2l, "Student", "Tester", "student@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();
    try {
        mockBuilder.addStudent(student).addStaffMember(admin).mockLogin(admin).build();
        Long courseId = 1l;
        login();
        Workspace workspace = createWorkspace("testcourse", "test course for testing", String.valueOf(courseId), Boolean.TRUE);
        MockCourseStudent courseStudent = new MockCourseStudent(2l, courseId, student.getId());
        CourseStaffMember courseStaffMember = new CourseStaffMember(1l, courseId, admin.getId(), 7l);
        mockBuilder.addCourseStaffMember(courseId, courseStaffMember).addCourseStudent(courseId, courseStudent).build();
        try {
            WorkspaceFolder workspaceFolder1 = createWorkspaceFolder(workspace.getId(), null, Boolean.FALSE, 1, "Test Course material folder", "DEFAULT");
            WorkspaceHtmlMaterial htmlMaterial = createWorkspaceHtmlMaterial(workspace.getId(), workspaceFolder1.getId(), "Test", "text/html;editor=CKEditor", "<p><object type=\"application/vnd.muikku.field.text\"><param name=\"type\" value=\"application/json\" /><param name=\"content\" value=\"{&quot;name&quot;:&quot;muikku-field-nT0yyez23QwFXD3G0I8HzYeK&quot;,&quot;rightAnswers&quot;:[],&quot;columns&quot;:&quot;&quot;,&quot;hint&quot;:&quot;&quot;}\" /></object></p>", 1l, "EVALUATED");
            try {
                Long assessorId = getUserEntityIdForIdentifier(String.format("STAFF-%s", admin.getId()));
                logout();
                mockBuilder.mockLogin(student).build();
                login();
                navigate(String.format("/workspace/%s/materials", workspace.getUrlName()), true);
                waitForPresent(String.format("#page-%d", htmlMaterial.getId()));
                assertVisible(String.format("#page-%d .muikku-text-field", htmlMaterial.getId()));
                assertValue(String.format("#page-%d .muikku-text-field", htmlMaterial.getId()), "");
                assertClassNotPresent(String.format("#page-%d .muikku-text-field", htmlMaterial.getId()), "muikku-field-saved");
                sendKeys(String.format("#page-%d .muikku-text-field", htmlMaterial.getId()), "field value");
                waitClassPresent(String.format("#page-%d .muikku-text-field", htmlMaterial.getId()), "muikku-field-saved");
                waitAndClick(String.format("#page-%d .muikku-submit-assignment", htmlMaterial.getId()));
                waitForPresentAndVisible(".notification-queue-item-success");
                waitForElementToBeClickable(String.format("#page-%d .muikku-withdraw-assignment", htmlMaterial.getId()));
                logout();
                mockBuilder.mockLogin(admin).build();
                login();
                navigate(String.format("/evaluation"), true);
                waitAndClick("#filter-students-by-assessment-requested");
                waitAndClick(".assignment-submitted");
                addTextToCKEditor("Test evaluation.");
                selectOption("#grade", "1/PYRAMUS@1/PYRAMUS");
                selectOption("select[name='assessor']", assessorId.toString());
                click(".save-evaluation-button");
                waitForPresentAndVisible(".evaluation-assignment-wrapper");
                assertClassPresent(".evaluation-assignment-wrapper", "assignment-evaluated");
                // Re-evaluation
                waitAndClick(".assignment-submitted");
                waitForPresent("#grade");
                assertValue("#grade", "1/PYRAMUS@1/PYRAMUS");
                waitForPresent("select[name='assessor']");
                assertValue("select[name='assessor']", assessorId.toString());
                waitForPresent(".cke_contents");
                assertEquals("Test evaluation.", getCKEditorContent());
                addTextToCKEditor("Test evaluation in re-evaluation.");
                selectOption("#grade", "2/PYRAMUS@1/PYRAMUS");
                selectOption("select[name='assessor']", assessorId.toString());
                click(".save-evaluation-button");
                waitForPresentAndVisible(".evaluation-assignment-wrapper");
                waitAndClick(".assignment-submitted");
                waitForPresent("#grade");
                assertValue("#grade", "2/PYRAMUS@1/PYRAMUS");
                waitForPresent("select[name='assessor']");
                assertValue("select[name='assessor']", assessorId.toString());
                waitForPresent(".cke_contents");
                assertEquals("Test evaluation.Test evaluation in re-evaluation.", getCKEditorContent());
            } finally {
                deleteWorkspaceHtmlMaterial(workspace.getId(), htmlMaterial.getId());
            }
        } finally {
            deleteWorkspace(workspace.getId());
        }
    } finally {
        mockBuilder.wiremockReset();
    }
}
Also used : WorkspaceHtmlMaterial(fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial) Builder(fi.otavanopisto.muikku.mock.PyramusMock.Builder) CourseStaffMember(fi.otavanopisto.pyramus.rest.model.CourseStaffMember) MockStaffMember(fi.otavanopisto.muikku.mock.model.MockStaffMember) MockStudent(fi.otavanopisto.muikku.mock.model.MockStudent) MockCourseStudent(fi.otavanopisto.muikku.mock.model.MockCourseStudent) Workspace(fi.otavanopisto.muikku.atests.Workspace) WorkspaceFolder(fi.otavanopisto.muikku.atests.WorkspaceFolder) Test(org.junit.Test) AbstractUITest(fi.otavanopisto.muikku.ui.AbstractUITest) TestEnvironments(fi.otavanopisto.muikku.TestEnvironments)

Aggregations

WorkspaceHtmlMaterial (fi.otavanopisto.muikku.atests.WorkspaceHtmlMaterial)38 Workspace (fi.otavanopisto.muikku.atests.Workspace)37 WorkspaceFolder (fi.otavanopisto.muikku.atests.WorkspaceFolder)37 AbstractUITest (fi.otavanopisto.muikku.ui.AbstractUITest)35 Test (org.junit.Test)35 TestEnvironments (fi.otavanopisto.muikku.TestEnvironments)33 Builder (fi.otavanopisto.muikku.mock.PyramusMock.Builder)24 MockStaffMember (fi.otavanopisto.muikku.mock.model.MockStaffMember)24 MockStudent (fi.otavanopisto.muikku.mock.model.MockStudent)17 MockCourseStudent (fi.otavanopisto.muikku.mock.model.MockCourseStudent)10 CourseStaffMember (fi.otavanopisto.pyramus.rest.model.CourseStaffMember)10 OffsetDateTime (java.time.OffsetDateTime)6 MockCourse (fi.otavanopisto.muikku.mock.model.MockCourse)5 File (java.io.File)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 JSR310Module (com.fasterxml.jackson.datatype.jsr310.JSR310Module)2 WebElement (org.openqa.selenium.WebElement)2 Response (com.jayway.restassured.response.Response)1 CourseAssessment (fi.otavanopisto.pyramus.rest.model.CourseAssessment)1