private void testEditInstructorAction() throws Exception { ______TS("failure: ajax error on clicking edit button"); int editInstructorIndex = 1; courseEditPage.changeCourseIdInForm(editInstructorIndex, "InvalidCourse"); courseEditPage.clickEditInstructorLinkUnsuccessfully(editInstructorIndex); courseEditPage.waitForAjaxLoaderGifToDisappear(); assertTrue( courseEditPage .getEditInstructorLink(editInstructorIndex) .getText() .contains("Edit failed.")); courseEditPage.reloadPage(); ______TS("success: edit an instructor"); courseEditPage.editInstructor( editInstructorIndex, "New name", "*****@*****.**", Const.InstructorPermissionRoleNames.INSTRUCTOR_PERMISSION_ROLE_COOWNER); courseEditPage.verifyStatus( String.format(Const.StatusMessages.COURSE_INSTRUCTOR_EDITED, "New name")); ______TS( "success: edit an instructor (InsCrsEdit.coord)--viewing instructor permission details"); courseEditPage.clickEditInstructorLink(editInstructorIndex); assertTrue(courseEditPage.isInstructorEditable(editInstructorIndex)); ______TS("view details: manager"); courseEditPage.clickViewDetailsLinkForInstructor( editInstructorIndex, InstructorCourseEditPage.INSTRUCTOR_TYPE_MANAGER); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COURSE)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_INSTRUCTOR)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_SUBMIT_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); courseEditPage.closeModal(); ______TS("view details: observer"); courseEditPage.clickViewDetailsLinkForInstructor( editInstructorIndex, InstructorCourseEditPage.INSTRUCTOR_TYPE_OBSERVER); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COURSE)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_INSTRUCTOR)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_SUBMIT_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); courseEditPage.closeModal(); ______TS("view details: tutor"); courseEditPage.clickViewDetailsLinkForInstructor( editInstructorIndex, InstructorCourseEditPage.INSTRUCTOR_TYPE_TUTOR); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COURSE)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_INSTRUCTOR)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_SUBMIT_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInModalChecked( Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); courseEditPage.closeModal(); ______TS("view details: co-owner"); courseEditPage.clickViewDetailsLinkForInstructor( editInstructorIndex, InstructorCourseEditPage.INSTRUCTOR_TYPE_COOWNER); courseEditPage.verifyHtmlMainContent("/instructorCourseEditEditInstructorPrivilegesModal.html"); courseEditPage.closeModal(); ______TS("verify that custom has no privileges by default"); int customInstrNum = 5; courseEditPage.clickEditInstructorLink(customInstrNum); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canmodifycourse")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canmodifyinstructor")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canmodifysession")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canmodifystudent")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canviewstudentinsection")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "cangivecommentinsection")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canviewcommentinsection")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canmodifycommentinsection")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "cansubmitsessioninsection")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canviewsessioninsection")); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( customInstrNum, "canmodifysessioncommentinsection")); courseEditPage.clickSaveInstructorButton(customInstrNum); ______TS("success: edit an instructor with privileges"); courseEditPage.clickEditInstructorLink(editInstructorIndex); assertTrue(courseEditPage.getDisplayedToStudentCheckBox(editInstructorIndex).isSelected()); // not displayed to students courseEditPage.clickDisplayedToStudentCheckBox(editInstructorIndex); // select the role as Custom for instr1 courseEditPage.selectRoleForInstructor(editInstructorIndex, "Custom"); // deselect some privileges from Co-owner default values courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_COURSE); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_INSTRUCTORS); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_OTHERS_COMMENTS); courseEditPage.clickAddSectionLevelPrivilegesLink(editInstructorIndex); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 0, 0); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 0, 1); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 0, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 0, InstructorCourseEditPage.SECTION_VIEW_OTHERS_COMMENTS); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 0, InstructorCourseEditPage.SECTION_VIEW_RESPONSES_IN_SESSION); courseEditPage.clickSessionLevelInSectionLevel(editInstructorIndex, 0); courseEditPage.clickAddSectionLevelPrivilegesLink(editInstructorIndex); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 1, 1); courseEditPage.clickAddSectionLevelPrivilegesLink(editInstructorIndex); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 2, 1); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 2, 2); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 2, InstructorCourseEditPage.SECTION_MODIFY_RESPONSES_IN_SESSION); // after 3 sections added, no more things to add assertFalse(courseEditPage.getAddSectionLevelPrivilegesLink(editInstructorIndex).isDisplayed()); courseEditPage.verifyHtmlMainContent( "/instructorCourseEditEditInstructorPrivilegesBeforeSubmit.html"); courseEditPage.clickSaveInstructorButton(editInstructorIndex); courseEditPage.verifyHtmlMainContent( "/instructorCourseEditEditInstructorPrivilegesSuccessful.html"); courseEditPage.clickEditInstructorLink(editInstructorIndex); assertTrue(courseEditPage.isInstructorEditable(editInstructorIndex)); courseEditPage.verifyHtmlMainContent( "/instructorCourseEditEditInstructorPrivilegesSuccessfulAndCheckEditAgain.html"); courseEditPage.clickSaveInstructorButton(editInstructorIndex); ______TS("failure: edit failed due to invalid parameters"); String invalidEmail = "InsCrsEdit.email.tmt"; courseEditPage.editInstructor( editInstructorIndex, "New name", invalidEmail, Const.InstructorPermissionRoleNames.INSTRUCTOR_PERMISSION_ROLE_COOWNER); courseEditPage.verifyStatus(new FieldValidator().getInvalidityInfoForEmail(invalidEmail)); String invalidName = ""; courseEditPage.editInstructor( editInstructorIndex, invalidName, "*****@*****.**", Const.InstructorPermissionRoleNames.INSTRUCTOR_PERMISSION_ROLE_COOWNER); courseEditPage.verifyStatus(new FieldValidator().getInvalidityInfoForPersonName(invalidName)); ______TS( "success: test Custom radio button getting other privileges' default values when selected"); editInstructorIndex = 2; courseEditPage.clickEditInstructorLink(editInstructorIndex); ______TS("tutor->custom"); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Tutor"); courseEditPage.clickSaveInstructorButton(editInstructorIndex); courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Custom"); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COURSE)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_INSTRUCTOR)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_SUBMIT_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); ______TS("observer->custom"); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Observer"); courseEditPage.clickSaveInstructorButton(editInstructorIndex); courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Custom"); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COURSE)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_INSTRUCTOR)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_SUBMIT_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); ______TS("manager->custom"); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Manager"); courseEditPage.clickSaveInstructorButton(editInstructorIndex); courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Custom"); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COURSE)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_INSTRUCTOR)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_SUBMIT_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); ______TS("co-owner->custom"); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Co-owner"); courseEditPage.clickSaveInstructorButton(editInstructorIndex); courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Custom"); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COURSE)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_INSTRUCTOR)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_SUBMIT_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); ______TS("verify that session level checkboxes are accessible"); int sectionToCheck = 0; courseEditPage.clickAddSectionLevelPrivilegesLink(editInstructorIndex); courseEditPage.clickSessionLevelInSectionLevel(editInstructorIndex, sectionToCheck); assertTrue( courseEditPage.isTuneSessionPermissionsDivVisible(editInstructorIndex, sectionToCheck)); ______TS("verify checkbox toggling to false"); int sessionToCheck = 0; // course level courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_VIEW_STUDENTS); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_VIEW_OTHERS_COMMENTS); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_VIEW_RESPONSES_IN_SESSION); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertFalse( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); // section level courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); assertFalse( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_STUDENTS)); assertFalse( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_GIVE_STUDENT_COMMENTS)); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_OTHERS_COMMENTS); assertFalse( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_OTHERS_COMMENTS)); assertFalse( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_MODIFY_OTHERS_COMMENTS)); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_RESPONSES_IN_SESSION); assertFalse( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_RESPONSES_IN_SESSION)); assertFalse( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_MODIFY_RESPONSES_IN_SESSION)); // session level courseEditPage.clickSessionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, sessionToCheck, InstructorCourseEditPage.SESSION_VIEW_RESPONSES); assertFalse( courseEditPage.isSessionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, sessionToCheck, InstructorCourseEditPage.SESSION_VIEW_RESPONSES)); assertFalse( courseEditPage.isSessionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, sessionToCheck, InstructorCourseEditPage.SESSION_MODIFY_RESPONSES)); ______TS("verify checkbox toggling to true"); // course level courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_GIVE_STUDENT_COMMENTS); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_GIVE_COMMENT_IN_SECTIONS)); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_OTHERS_COMMENTS); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_COMMENT_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_COMMENT_IN_SECTIONS)); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_RESPONSES_IN_SESSION); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_SESSION_IN_SECTIONS)); assertTrue( courseEditPage.isPrivilegeCheckboxInPermissionDivChecked( editInstructorIndex, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_SESSION_COMMENT_IN_SECTIONS)); // section level courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_GIVE_STUDENT_COMMENTS); assertTrue( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_STUDENTS)); assertTrue( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_GIVE_STUDENT_COMMENTS)); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_MODIFY_OTHERS_COMMENTS); assertTrue( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_OTHERS_COMMENTS)); assertTrue( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_MODIFY_OTHERS_COMMENTS)); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_MODIFY_RESPONSES_IN_SESSION); assertTrue( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_VIEW_RESPONSES_IN_SESSION)); assertTrue( courseEditPage.isSectionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, InstructorCourseEditPage.SECTION_MODIFY_RESPONSES_IN_SESSION)); // session level courseEditPage.clickSessionLevelPrivilegeLink( editInstructorIndex, sectionToCheck, sessionToCheck, InstructorCourseEditPage.SESSION_MODIFY_RESPONSES); assertTrue( courseEditPage.isSessionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, sessionToCheck, InstructorCourseEditPage.SESSION_VIEW_RESPONSES)); assertTrue( courseEditPage.isSessionLevelPrivilegeLinkClicked( editInstructorIndex, sectionToCheck, sessionToCheck, InstructorCourseEditPage.SESSION_MODIFY_RESPONSES)); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Co-owner"); }
private void testCancelEditInstructorAction() throws Exception { ______TS("success: cancel editing an instructor role from Co-owner to Manager"); int editInstructorIndex = 7; courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Manager"); courseEditPage.clickCancelEditInstructorLink(editInstructorIndex); assertFalse(courseEditPage.isRoleSelectedForInstructor(editInstructorIndex, "Manager")); assertTrue(courseEditPage.isRoleSelectedForInstructor(editInstructorIndex, "Co-owner")); ______TS("success: cancel editing an instructor role from Co-owner to Custom"); courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Custom"); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_INSTRUCTORS); courseEditPage.clickAddSectionLevelPrivilegesLink(editInstructorIndex); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 0, 0); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 0, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); courseEditPage.clickSessionLevelInSectionLevel(editInstructorIndex, 0); courseEditPage.clickAddSectionLevelPrivilegesLink(editInstructorIndex); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 1, 1); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 1, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); courseEditPage.clickAddSectionLevelPrivilegesLink(editInstructorIndex); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 2, 2); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 2, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); courseEditPage.clickCancelEditInstructorLink(editInstructorIndex); courseEditPage.verifyHtmlPart( By.id("formEditInstructor" + editInstructorIndex), "/instructorCourseEditCancelEditCoownerForm.html"); courseEditPage.clickEditInstructorLink(editInstructorIndex); assertFalse(courseEditPage.isTunePermissionsDivVisible(editInstructorIndex)); ______TS("success: cancel editing an instructor role from Custom to Co-owner"); editInstructorIndex = 1; courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.selectRoleForInstructor(editInstructorIndex, "Co-owner"); courseEditPage.clickCancelEditInstructorLink(editInstructorIndex); courseEditPage.verifyHtmlPart( By.id("formEditInstructor" + editInstructorIndex), "/instructorCourseEditCancelEditCustomInstructorForm.html"); ______TS("success: cancel editing a Custom instructor's permissions"); courseEditPage.clickEditInstructorLink(editInstructorIndex); courseEditPage.clickCourseLevelPrivilegesLink( editInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_INSTRUCTORS); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 0, 0); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 0, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); courseEditPage.clickSectionSelectionCheckBox(editInstructorIndex, 1, 1); courseEditPage.clickSectionLevelPrivilegeLink( editInstructorIndex, 1, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); courseEditPage.clickHideSectionLevelPrivileges(editInstructorIndex, 2); courseEditPage.clickCancelEditInstructorLink(editInstructorIndex); courseEditPage.verifyHtmlPart( By.id("formEditInstructor" + editInstructorIndex), "/instructorCourseEditCancelEditCustomInstructorPermissionsForm.html"); courseEditPage.clickEditInstructorLink(editInstructorIndex); assertTrue(courseEditPage.isTunePermissionsDivVisible(editInstructorIndex)); }
private void testAddInstructorAction() throws Exception { ______TS("success: add an instructor with privileges"); courseEditPage.clickShowNewInstructorFormButton(); courseEditPage.fillNewInstructorName("Teammates Instructor"); courseEditPage.fillNewInstructorEmail("*****@*****.**"); int newInstructorIndex = 8; courseEditPage.selectRoleForInstructor(newInstructorIndex, "Custom"); courseEditPage.clickCourseLevelPrivilegesLink( newInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_COURSE); courseEditPage.clickCourseLevelPrivilegesLink( newInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_STUDENTS); courseEditPage.clickCourseLevelPrivilegesLink( newInstructorIndex, InstructorCourseEditPage.COURSE_MODIFY_OTHERS_COMMENTS); courseEditPage.clickAddSectionLevelPrivilegesLink(newInstructorIndex); courseEditPage.clickSectionSelectionCheckBox(newInstructorIndex, 0, 1); courseEditPage.clickSectionLevelPrivilegeLink( newInstructorIndex, 0, InstructorCourseEditPage.SECTION_VIEW_STUDENTS); courseEditPage.clickSectionLevelPrivilegeLink( newInstructorIndex, 0, InstructorCourseEditPage.SECTION_VIEW_RESPONSES_IN_SESSION); courseEditPage.clickAddInstructorButton(); courseEditPage.verifyStatus( String.format( Const.StatusMessages.COURSE_INSTRUCTOR_ADDED, "Teammates Instructor", "*****@*****.**")); AppUrl courseDetailsLink = createUrl(Const.ActionURIs.INSTRUCTOR_COURSE_DETAILS_PAGE) .withCourseId(courseId) .withUserId(testData.instructors.get("InsCrsEdit.test").googleId); InstructorCourseDetailsPage courseDetailsPage = AppPage.getNewPageInstance(browser, courseDetailsLink, InstructorCourseDetailsPage.class); courseDetailsPage.verifyHtmlPart( By.id("instructors"), "/instructorCourseDetailsAddInstructor.html"); courseEditPage = getCourseEditPage(); courseEditPage.clickEditInstructorLink(3); courseEditPage.verifyHtmlMainContent("/instructorCourseEditAddInstructor.html"); ______TS("failure: add an existing instructor"); courseEditPage.addNewInstructor("Teammates Instructor", "*****@*****.**"); courseEditPage.verifyStatus(Const.StatusMessages.COURSE_INSTRUCTOR_EXISTS); ______TS("failure: add an instructor with an invalid parameter"); String invalidEmail = "InsCrsEdit.email.tmt"; courseEditPage.addNewInstructor("Teammates Instructor", invalidEmail); courseEditPage.verifyStatus(new FieldValidator().getInvalidityInfoForEmail(invalidEmail)); String invalidName = ""; courseEditPage.addNewInstructor(invalidName, "*****@*****.**"); courseEditPage.verifyStatus(new FieldValidator().getInvalidityInfoForPersonName(invalidName)); }