def testCreatePrivateProgramOwner(self):
        self.testname="TestCreatePrivateProgramOwner"
        self.setup()
        util = WebdriverUtilities()
        util.setDriver(self.driver)
        element = Elements()
        do = Helpers(self)
        grcobject = GRCObject()
        do.setUtils(util)
        do.login()

        email = config.creator1
        password = config.same_password

        private_prgm_1 = do.createPrivateProgramPermission(email, "", "ProgramOwner")       
        print private_prgm_1
        # map any object so that we can check that reader can see
        do.mapAObjectLHN("Contract")
 
        # now log out and then log in with the ProgramEditor user
        do.selectMenuInTopRight("Logout")          
        do.refresh()          
        # Log in with new user
        do.login(email, password)
        print "Log in as : " + do.whoAmI()      
 
        do.assertEquals("ProgramCreator", do.getRoleLabelInTopRight(), "Label does not says 'ProgramCreator'.")
        do.selectMenuInTopRight("My Work")
         
        # verify that user can see program tab and some programs; by seeing counts 
        do.selectInnerNavTab("program")
        count = do.countOfAnyObjectInWidget("Program")
        do.assertGreater(count, 0, "Fail because count is expected to be non-zero if programs indeed exist.")
         
        # and being able to navigate to the expanded program row
        index = do.expandItemWidget("program", private_prgm_1)
        do.clickViewProgram("program", index)
         
        # can see mapped objects
        do.selectInnerNavTab("contract")
        count = do.countOfAnyObjectInWidget("Contract")
        do.assertGreater(count, 0, "Fail because count is expected to be non-zero if programs indeed exist.")         

        # can map an object to program
        do.mapAObjectWidget("Product", "", True, ("Control", "Objective", "System"))

        # map link and edit authorization link should not exist
        do.selectInnerNavTab("person")
        do.assertTrue(do.isMapLinkPresent("Person"), "Expect map link present since it's a ProgramOwner role.")
        do.expandItemWidget("Person", email)
        do.assertTrue(do.isEditAuthorizationPresent(), "Expect Edit Authorization link present since it's a ProgramOwner role.")
        
        # can edit info page
        do.selectInnerNavTab("info")
        do.assertTrue(do.isSubmitForReviewPresent(), "Expect Submit For Review link not present since it's a ProgramOwner role.") 
        do.clickOnInfoPageEditLink()
        do.populateObjectInEditWindow(private_prgm_1 , grcobject.program_elements, grcobject.program_values)
        do.openObjectEditWindow()
        do.verifyObjectValues(grcobject.program_elements, grcobject.program_values)   
        do.deleteObject()
예제 #2
0
 def testRegulationEdit(self):
     self.testname="TestRegulationEdit"
     self.setup()
     util = WebdriverUtilities()
     util.setDriver(self.driver)
     element = Elements()
     do = Helpers(self)
     grcobject = GRCObject()
     do.setUtils(util)
     do.login()
     last_created_object_link = do.createObject("Regulation")
     object_name = str(util.getTextFromXpathString(last_created_object_link)).strip()
     do.navigateToObjectAndOpenObjectEditWindow("Regulation",last_created_object_link)
     do.populateObjectInEditWindow( object_name , grcobject.regulation_elements, grcobject.regulation_values)
     do.openObjectEditWindow()
     do.verifyObjectValues(grcobject.regulation_elements, grcobject.regulation_values)
     do.deleteObject()
예제 #3
0
 def testSectionEdit(self):
     self.testname="TestSectionEdit"
     self.setup()
     util = WebdriverUtilities()
     util.setDriver(self.driver)
     element = Elements()
     do = Helpers(self)
     grcobject = GRCObject()
     do.setUtils(util)
     do.login()
     object_name = "Auto_Section_" + do.getTimeId() + str(do.getRandomNumber())
     last_created_object_link = do.createObjectSaveAddAnother("Section", object_name, "unchecked")
     #object_name = str(util.getTextFromXpathString(last_created_object_link)).strip()
     do.navigateToObjectAndOpenObjectEditWindow("Section",last_created_object_link)
     do.populateObjectInEditWindow( object_name , grcobject.section_elements, grcobject.section_values)
     do.openObjectEditWindow()
     do.verifyObjectValues(grcobject.section_elements, grcobject.section_values)
     do.deleteObject()
 def testCreateUpdateDeleteSystem(self):
     self.testname="TestCreateUpdateDeleteSystem"
     self.setup()
     util = WebdriverUtilities()
     util.setDriver(self.driver)
     element = Elements()
     grcobject = GRCObject()
     do = Helpers(self)
     do.setUtils(util)
     myUtil = do.getUtils()
     do.login()
     
     aEmail = "*****@*****.**" #already exists in the database
     
     last_created_object_link = do.createObject("System")
     object_name = str(do.util.getTextFromXpathString(last_created_object_link)).strip()
     do.navigateToObjectAndOpenObjectEditWindow("System", last_created_object_link)
     do.populateObjectInEditWindow(object_name , grcobject.system_elements, grcobject.system_values, aEmail)
     do.openObjectEditWindow()
     do.verifyObjectValues(grcobject.system_elements, grcobject.system_values)
     do.deleteObject()
예제 #5
0
    def testProgramAudit(self):
        self.testname="TestProgramAudit"
        self.setup()
        util = WebdriverUtilities()
        util.setDriver(self.driver)
        element = Elements()
        grcobject = GRCObject()
        do = Helpers(self)
        do.setUtils(util)
        do.login()
        # Read audit_setup_data to retrieve program name and the IDs of the 3 objectives
        #
        objectiveID={}
        # default to using setup file for TEST server
        setup_file = SETUP_FILE_PREFIX + TARGET_SERVER_DICT.get(config.url, "test")
        f = open(os.path.join(SETUP_DIR, setup_file), "r")
        program_name=f.readline().strip("\n")
        # 1.  Navigate to the Program page created in Audit Part 1
        #print first_program_in_lhn
        do.navigateToObjectWithSearch(program_name,"Program")
        util.max_screen()
        
        # 2.  Choose Audit from Object page nav to bring up the Audit widget
        do.navigateToAuditSectionViaInnerNavSection("Audit")

        # 3.  Click on blue +Audit link in widget
        util.clickOn(element.audit_area_plus_audit_link)
                     
        # 4.  New Audit (modal)
        do.authorizeGAPI()  # Another place GAPI dialog could pop up
        new_audit_title = do.createAudit(program_name)
        
        # 5.  Confirm the audit appear in the widget
        newly_created_audit = element.audit_area_by_title.replace("AUDIT_TITLE", new_audit_title)
        print newly_created_audit
        util.waitForElementToBePresent(newly_created_audit)
        self.assertTrue(util.isElementPresent(newly_created_audit), "do not see the newly created audit " +new_audit_title )
        
        # 6. Click on it to open the 2nd tier info.  confirm there are 3 requests in the PBC Requests section. 
        # GAPI could pop up here
        do.authorizeGAPI()
        util.scrollIntoView(newly_created_audit)
        util.clickOn(newly_created_audit + element.first_link_within)
        #util.switch_to_active_element()
        util.max_screen()
        util.scrollIntoView(newly_created_audit)
        #verifying the 3 objectives
        
        do.dismissFlashMessages()
        for objective_title in grcobject.objective_title:
            objective_title_element = element.audit_pbc_request.replace("TITLE", objective_title)
            print objective_title_element
            util.waitForElementToBePresent(objective_title_element)
            self.assertTrue(util.isElementPresent(objective_title_element), "do not see the pbc request " + objective_title_element )
            util.scrollIntoView(objective_title_element)
        
        #do.waitForAlertSuccessMessages()
        
        ####7. Change Objective 2 for Auto test of Audit - Type: Interview
        ###print "Change Objective 2 for Auto test of Audit - Type: Interview"
        #### navigate into PBC edit modal
        ####click on "Objective 2 for Auto test of Audit" to open 2nd tier info
        ###print "click on Objective 2 for Auto test of Audit to open 2nd tier info"
        ###do.expandCollapseRequest(grcobject.objective_title[1])
        ####click on Edit PBC Request
        ###util.waitForElementToBePresent(element.audit_pbc_request_expanded_content_edit_link)
        ###self.assertTrue(util.isElementPresent(element.audit_pbc_request_expanded_content_edit_link), "do not see the Edit link in the expanded request  "  )
        ###util.clickOn(element.audit_pbc_request_expanded_content_edit_link)
        ###objective2_selected_option = element.audit_pbc_request_modal_type_select_selected_option
        ###util.waitForElementToBePresent(element.audit_pbc_request_modal_type_select)
        ###util.selectFromDropdownUntilSelected(element.audit_pbc_request_modal_type_select,  "Interview")
        ####verifying the selected option
        ###
        ###util.waitForElementToBePresent(objective2_selected_option)
        ###do.saveObjectData()
        ###util.clickOn(element.audit_pbc_request_expanded_content_edit_link)
        ###new_value = util.getTextFromXpathString(objective2_selected_option)
        ###self.assertTrue(new_value =="Interview" , "the selected option is not Interview" )

        ####Delete
        ###print "deleting Request"
        ###do.deleteObject()
        ### #8. Change Objective 3 for Auto test of Audit - Type: Population Sample
        ###objective3_select = element.audit_pbc_request_type_select.replace("TITLE", grcobject.objective_title[2] )
        ###do.expandCollapseRequest(grcobject.objective_title[2])
        ####click on Edit PBC Request
        ###util.waitForElementToBePresent(element.audit_pbc_request_expanded_content_edit_link)
        ###self.assertTrue(util.isElementPresent(element.audit_pbc_request_expanded_content_edit_link), "do not see the Edit link in the expanded request  "  )
        ###util.clickOn(element.audit_pbc_request_expanded_content_edit_link)
        ###objective3_selected_option = element.audit_pbc_request_modal_type_select_selected_option
        ###util.waitForElementToBePresent(element.audit_pbc_request_modal_type_select)
        ###util.selectFromDropdownUntilSelected(element.audit_pbc_request_modal_type_select,  "Population Sample")
        ####verifying the selected option
        ###
        ###util.waitForElementToBePresent(objective3_selected_option)
        ###do.saveObjectData()
        ###util.clickOn(element.audit_pbc_request_expanded_content_edit_link)
        ###new_value = util.getTextFromXpathString(objective2_selected_option)
        ###self.assertTrue(new_value == "Population Sample" , "the selected option is not Population Sample" )



        ####Delete
        ###print "deleting Response"
        ###do.deleteObject()
        
        #9.    Click on Objective 1 for Auto Test of Audit to open 2nd tier info (Documentation Response)
        #util.scrollIntoView(newly_created_audit_open_link)
        do.expandCollapseRequest(grcobject.objective_title[0])
        do.setRequestToRespondable(grcobject.objective_title[0])
        # open the response model and fill it out
        new_response_button = element.audit_pbc_request_response_create.replace("TITLE", grcobject.objective_title[0])
        util.waitForElementToBePresent(new_response_button)
        util.clickOn(new_response_button)
        new_response_title = "Response to " + grcobject.objective_title[0]
        do.NewResponseCreate(new_response_title)

        response_element = element.audit_pbc_request_response2.replace("TITLE", grcobject.objective_title[0]).replace("RESPONSE", new_response_title)
        print "response element " + response_element
        util.waitForElementToBePresent(response_element)
        util.scrollIntoView(response_element)  
        time.sleep(20)
        self.assertTrue(util.isElementPresent(response_element), "can't see the new Response for the request link") 

        # look for edit button
        new_response_edit_link = element.audit_pbc_request_expanded_response_edit_link2.replace("TITLE", grcobject.objective_title[0]).replace("RESPONSE", new_response_title)
        util.waitForElementToBePresent(new_response_edit_link)
        util.clickOn(new_response_edit_link)
        # need to re-open
        # verify assignee is the same as audit lead ([email protected])
        pbc_response_elements = {
            # name is description, but functions more like a title in
            # the context of the verifyObjectValues helper
            "description": element.response_title,
            "owner": element.response_assignee,
        }

        pbc_response_values = {
            "description": new_response_title,
            "owner": do.current_user_email(),
        }
        do.verifyObjectValues(pbc_response_elements, pbc_response_values, "Audit")
        do.saveObjectData()
        audit_edit_button = newly_created_audit + element.audit_edit
        util.scrollIntoView(audit_edit_button)
        util.clickOn(audit_edit_button)
        do.deleteObject()