def login(self): """Clicks on the login button on the login page Returns: dashboard.Dashboard """ self.button_login.click() return dashboard.Dashboard(self._driver)
def get_objs_available_to_map_via_add_widget(self, src_obj): """Open Info Widget of source object. Clock 'add widget' button. Return list of objects names from 'add widget' dropdown available to map with source object. """ # pylint: disable=invalid-name self.open_info_page_of_obj(src_obj) return sorted(dashboard.Dashboard( self.driver).get_mappable_via_add_widgets_objs_aliases())
def test_horizontal_nav_bar_tabs(self, selenium, new_controls_rest): """Tests that several objects in a widget can be deleted sequentially.""" selenium.get(dashboard.Dashboard.URL) controls_widget = dashboard.Dashboard(selenium).select_controls() for _ in xrange(controls_widget.member_count): counter = controls_widget.get_items_count() (controls_widget.select_nth_member( 0).press_object_settings().select_delete().confirm_delete()) controls_widget.wait_member_deleted(counter) assert generic_widget.Controls(selenium).members_listed == []
def get_items_from_dashboard_widget(self, obj): """Navigate to InfoPage of object. Open 'Dashboard' tab and return all urls of dashboard items. - Return: list of str """ self.open_info_page_of_obj(obj) dashboard_widget_elem = (dashboard.Dashboard( self.driver).select_dashboard_tab()) return DashboardWidget( self.driver, dashboard_widget_elem).get_all_tab_names_and_urls()
def test_horizontal_nav_bar_tabs(self, new_controls_rest, selenium): """Tests that several objects in widget can be deleted sequentially.""" selenium.get(dashboard.Dashboard.URL) controls_widget = dashboard.Dashboard(selenium).select_controls() for _ in xrange(controls_widget.member_count): counter = controls_widget.get_items_count() (controls_widget.select_member_by_num( 0).open_info_3bbs().select_delete().confirm_delete()) controls_widget.wait_member_deleted(counter) assert generic_widget.Controls(selenium, objects.CONTROLS).members_listed == []
def test_mapping_via_lhn(self, selenium, new_product, new_project, new_system, new_data_asset, new_process): """LHN mapping tests from smoke tests, section 6""" objects = [ new_product, new_project, new_system, new_data_asset, new_process ] for object_ in objects: selenium.get(object_.url) header = dashboard.Header(selenium) # map objects for mapped_object in objects: # don't map an object to itself if mapped_object != object_: extended_info = conftest_utils\ .get_lhn_accordion(selenium, mapped_object.object_name)\ .hover_over_visible_member(mapped_object.title_entered.text) if not extended_info.is_mapped: extended_info.map_to_object() # workaround for CORE-3324 selenium_utils.hover_over_element( selenium, header.toggle_user_dropdown.element) # close LHN so that the contents are seen header.close_lhn_menu() widget = factory.get_cls_widget( mapped_object.object_name)(selenium) # check that the focus is on relevant widget assert widget.name_from_url in mapped_object.object_name # check items count assert widget.member_count == 1 # check that all mapped widgets are shown widget_bar = dashboard.Dashboard(selenium) for mapped_object in objects: if mapped_object != object_: # select a widget getattr( widget_bar, factory.get_method_select(mapped_object.object_name))() # verify widget widget = factory.get_cls_widget( mapped_object.object_name)(selenium) assert widget.name_from_url in mapped_object.object_name
def test_search_snapshots_in_lhn( self, create_audit_with_control_and_update_control, selenium, version_of_ctrl, is_found, tab_name): """Check via UI that LHN search not looking for snapshots.""" audit_with_one_control = create_audit_with_control_and_update_control selenium_utils.open_url(selenium, dashboard.Dashboard.URL) lhn_menu = dashboard.Dashboard(selenium).open_lhn_menu() lhn_menu.select_tab(tab_name) control_title = audit_with_one_control[version_of_ctrl][0].title lhn_menu.filter_query(control_title) controls = (lhn_menu.select_controls_or_objectives().select_controls(). members_visible) assert (control_title in [el.text for el in controls]) == is_found
def test_search_snapshots_in_lhn(self, create_audit_and_update_original_control, selenium, version_of_ctrl, is_found, tab_name): """Check via UI that LHN search not looking for snapshots.""" selenium.get(dashboard.Dashboard.URL) lhn_menu = dashboard.Dashboard(selenium).open_lhn_menu() lhn_menu.select_tab(tab_name) control_title = ( create_audit_and_update_original_control[version_of_ctrl].title) lhn_menu.filter_query(control_title) list_of_ctrls = (lhn_menu.select_controls_or_objectives(). select_controls().members_visible) assert (control_title in [ el.text for el in list_of_ctrls if len(list_of_ctrls) != 0 ]) == is_found
def create_threat(threat): """Creates a threat `threat`.""" selenium_utils.open_url(url.dashboard()) dashboard.Dashboard().open_create_obj_modal(objects.get_singular( objects.THREATS, title=True)) internal_ui_operations.submit_obj(threat)
def open_obj_dashboard_tab(self): """Navigates to dashboard tab URL of object according to object name. Returns: generic widget class object.""" dashboard.Dashboard().open_objs_tab_via_url(self.obj_type) return self.generic_widget_cls(self._driver, self.obj_name)
def is_dashboard_tab_exist(self, obj): """Navigate to InfoPage of object and check is 'Dashboard' tab exist. - Return: bool. """ self.open_info_page_of_obj(obj) return dashboard.Dashboard(self.driver).is_dashboard_tab_exist()
def open_create_obj_modal(obj_type): """Opens create object modal for selected type.""" selenium_utils.open_url(url.dashboard()) obj_modal = dashboard.Dashboard().open_create_obj_modal(obj_type=obj_type) return obj_modal
def lhn_menu(selenium): """Open LHN menu and return LHN page objects model.""" selenium_utils.open_url(url.Urls().dashboard) return dashboard.Dashboard(selenium).open_lhn_menu()
def my_work_dashboard(selenium): """Open My Work Dashboard URL and return My Work Dashboard page objects model.""" selenium_utils.open_url(url.Urls().dashboard) return dashboard.Dashboard(selenium)
def lhn_menu(self, selenium): """Open LHN menu and return LHN page objects model.""" selenium_utils.open_url(selenium, dashboard.Dashboard.URL) return dashboard.Dashboard(selenium).open_lhn_menu()
def create_workflow(workflow): """Creates a workflow `workflow`.""" selenium_utils.open_url(url.dashboard()) dashboard.Dashboard().start_workflow() internal_ui_operations.submit_obj(workflow)
def add_task_group(workflow, task_group): """Adds task group.""" workflow_tabs.SetupTab().open_via_url(workflow) dashboard.Dashboard().start_task_group() object_modal.get_modal_obj("task_group").submit_obj(task_group)