def switch_tab(sclnt, tab_name, dt_name, control_data): """switches host view tab and waits until dt is rendered""" sclnt.find_element_by_xpath( '//ul[@id="host_view_tabs"]//a[contains(@class, "nav-link") and @href="#%s"]' % tab_name).click() webdriver_waituntil(sclnt, EC.visibility_of_element_located((By.ID, dt_name))) dt_rendered(sclnt, dt_name, control_data)
def test_service_list_route_service_endpoint_dropdown(live_server, sl_operator, service): # pylint: disable=unused-argument """service endpoint uris dropdown test""" sl_operator.get(url_for('storage.service_list_route', _external=True)) dt_rendered(sl_operator, 'service_list_table', service.comment) check_service_endpoint_dropdown( sl_operator, sl_operator.find_element_by_id('service_list_table'), service.port)
def test_vuln_list_route_service_endpoint_dropdown(live_server, sl_operator, vuln_factory, service): # pylint: disable=unused-argument """service endpoint uris dropdown test""" test_vuln = vuln_factory.create(service=service) sl_operator.get(url_for('storage.vuln_list_route', _external=True)) dt_rendered(sl_operator, 'vuln_list_table', test_vuln.comment) check_service_endpoint_dropdown( sl_operator, sl_operator.find_element_by_id('vuln_list_table'), f'{test_vuln.service.port}/{test_vuln.service.proto}')
def test_vuln_list_route_viatarget_visibility_toggle(live_server, sl_operator, vuln): # pylint: disable=unused-argument """viatarget visibility toggle""" class JsDocumentReloaded(): # pylint: disable=too-few-public-methods """custom expected_condition, wait for document to be realoaded""" def __call__(self, driver): return driver.execute_script( 'return(document.readyState==="complete" && document.title!=="reload helper")' ) sl_operator.get(url_for('storage.vuln_list_route', _external=True)) dt_rendered(sl_operator, 'vuln_list_table', vuln.comment) webdriver_waituntil( sl_operator, EC.invisibility_of_element_located( (By.XPATH, '//th[contains(text(), "via_target")]'))) sl_operator.execute_script('document.title="reload helper"') sl_operator.find_element_by_xpath( '//li[contains(@class, "dropdown")]/a[@id="dropdownUser"]').click() webdriver_waituntil( sl_operator, EC.visibility_of_element_located( (By.XPATH, '//a[contains(text(), "Toggle via_target")]'))) sl_operator.find_element_by_xpath( '//a[contains(text(), "Toggle via_target")]').click() webdriver_waituntil(sl_operator, EC.alert_is_present()) sl_operator.switch_to.alert.accept() webdriver_waituntil(sl_operator, JsDocumentReloaded()) dt_rendered(sl_operator, 'vuln_list_table', vuln.comment) webdriver_waituntil( sl_operator, EC.visibility_of_element_located( (By.XPATH, '//th[contains(text(), "via_target")]')))
def test_user_apikey_route(live_server, sl_admin, test_user): # pylint: disable=unused-argument """apikey generation/revoking feature tests""" sl_admin.get(url_for('auth.user_list_route', _external=True)) dt_rendered(sl_admin, 'user_list_table', test_user.username) # disable fade, the timing interferes with the test sl_admin.execute_script('$("div#modal-global").toggleClass("fade")') sl_admin.find_element_by_xpath('//a[@data-url="%s"]' % url_for( 'auth.user_apikey_route', user_id=test_user.id, action='generate')).click() webdriver_waituntil( sl_admin, EC.visibility_of_element_located( (By.XPATH, '//h4[@class="modal-title" and text()="Apikey operation"]'))) sl_admin.find_element_by_xpath( '//div[@id="modal-global"]//button[@class="close"]').click() webdriver_waituntil( sl_admin, EC.invisibility_of_element_located( (By.XPATH, '//div[@class="modal-global"'))) dt_rendered(sl_admin, 'user_list_table', test_user.username) user = User.query.get(test_user.id) assert user.apikey db.session.expunge(user) sl_admin.find_element_by_xpath('//a[@data-url="%s"]' % url_for( 'auth.user_apikey_route', user_id=test_user.id, action='revoke')).click() webdriver_waituntil( sl_admin, EC.visibility_of_element_located( (By.XPATH, '//h4[@class="modal-title" and text()="Apikey operation"]'))) sl_admin.find_element_by_xpath( '//div[@id="modal-global"]//button[@class="close"]').click() webdriver_waituntil( sl_admin, EC.invisibility_of_element_located( (By.XPATH, '//div[@class="modal-global"'))) dt_rendered(sl_admin, 'user_list_table', test_user.username) assert not User.query.get(test_user.id).apikey
def test_note_list_route_annotate(live_server, sl_operator, test_note): # pylint: disable=unused-argument """test annotation from list route""" sl_operator.get(url_for('storage.note_list_route', _external=True)) dt_rendered(sl_operator, 'note_list_table', test_note.comment) check_annotate(sl_operator, 'abutton_annotate_dt', test_note)
def test_note_list_route(live_server, sl_operator, test_note): # pylint: disable=unused-argument """simple test ajaxed datatable rendering""" sl_operator.get(url_for('storage.note_list_route', _external=True)) dt_rendered(sl_operator, 'note_list_table', test_note.comment)
def test_task_list_route(live_server, sl_operator, test_task): # pylint: disable=unused-argument """simple test ajaxed datatable rendering""" sl_operator.get(url_for('scheduler.task_list_route', _external=True)) dt_rendered(sl_operator, 'task_list_table', test_task.name)
def test_user_list_route(live_server, sl_admin, test_user): # pylint: disable=unused-argument """simple test ajaxed datatable rendering""" sl_admin.get(url_for('auth.user_list_route', _external=True)) dt_rendered(sl_admin, 'user_list_table', test_user.username)
def test_excl_list_route(live_server, sl_operator, excl_network): # pylint: disable=unused-argument """simple test ajaxed datatable rendering""" sl_operator.get(url_for('scheduler.excl_list_route', _external=True)) dt_rendered(sl_operator, 'excl_list_table', excl_network.comment)