From 8385e5e129b6b4ed84f767aa43bdafe2106de6a7 Mon Sep 17 00:00:00 2001 From: cesar991 Date: Wed, 13 Jul 2016 12:25:43 +0200 Subject: [PATCH] Brought tests from develop to 6.0 branch --- tests/console/PAN1.py | 2 +- tests/console/PAN2.py | 28 ++--- tests/console/PAN3.py | 13 +-- tests/console/PAN4.py | 6 +- tests/console/PAN5.py | 76 +++++++++++++ tests/console/PAN7.py | 44 ++++++++ tests/console/PAN8.py | 62 +++++++++++ tests/console/enterprise/__init__.py | 0 tests/console/include/agent_functions.py | 52 +++++++++ tests/console/include/common_functions_60.py | 110 +++---------------- tests/console/include/dashboard_functions.py | 53 +++++++++ tests/console/include/module_functions.py | 106 ++++++++++++++++++ tests/console/include/reports_functions.py | 35 ++++++ tests/console/include/user_functions.py | 85 ++++++++++++++ 14 files changed, 549 insertions(+), 123 deletions(-) create mode 100644 tests/console/PAN5.py create mode 100644 tests/console/PAN7.py create mode 100644 tests/console/PAN8.py create mode 100644 tests/console/enterprise/__init__.py create mode 100644 tests/console/include/agent_functions.py create mode 100644 tests/console/include/dashboard_functions.py create mode 100644 tests/console/include/module_functions.py create mode 100644 tests/console/include/reports_functions.py create mode 100644 tests/console/include/user_functions.py diff --git a/tests/console/PAN1.py b/tests/console/PAN1.py index ed8d31c170..9cc8c7023c 100644 --- a/tests/console/PAN1.py +++ b/tests/console/PAN1.py @@ -16,7 +16,7 @@ class PAN1(PandoraWebDriverTestCase): def test_pan1(self): driver = self.driver - login(driver,"admin","pandora",self.base_url) + login(driver) detect_and_pass_all_wizards(driver) click_menu_element(driver,"General Setup") self.assertEqual("IP list with API access", driver.find_element_by_id("table2-15-0").text) diff --git a/tests/console/PAN2.py b/tests/console/PAN2.py index 70b4d7335b..bb04c69f5a 100644 --- a/tests/console/PAN2.py +++ b/tests/console/PAN2.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from include.common_classes_60 import PandoraWebDriverTestCase from include.common_functions_60 import login, click_menu_element, detect_and_pass_all_wizards +from include.agent_functions import create_agent from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys @@ -13,24 +14,18 @@ class PAN2(PandoraWebDriverTestCase): test_name = u'PAN_2' test_description = u'Creation two agents and delete this agents using bulk operation' tickets_associated = [3831] - + def test_pan2(self): driver = self.driver - login(driver,"admin","pandora",self.base_url) + login(driver) detect_and_pass_all_wizards(driver) - click_menu_element(driver,"Agent detail") - driver.find_element_by_id("submit-crt").click() - driver.find_element_by_id("text-agente").click() - driver.find_element_by_id("text-agente").clear() - driver.find_element_by_id("text-agente").send_keys("prueba masivas 1") - driver.find_element_by_id("submit-crtbutton").click() + + create_agent(driver,"prueba masivas 1") + driver.find_element_by_css_selector("b").click() - click_menu_element(driver,"Agent detail") - driver.find_element_by_id("submit-crt").click() - driver.find_element_by_id("text-agente").click() - driver.find_element_by_id("text-agente").clear() - driver.find_element_by_id("text-agente").send_keys("prueba masivas 2") - driver.find_element_by_id("submit-crtbutton").click() + + create_agent(driver,"prueba masivas 2") + driver.find_element_by_css_selector("b").click() driver.find_element_by_css_selector("b").click() click_menu_element(driver,"Agents operations") @@ -44,7 +39,6 @@ class PAN2(PandoraWebDriverTestCase): self.assertEqual(self.driver.find_element_by_xpath('//div[@id="main"]//td[contains(.,"Successfully deleted (2)")]').text,"Successfully deleted (2)") except AssertionError as e: self.verificationErrors.append(str(e)) - -if __name__ == "__main__": - unittest.main() +if __name__ == "__main__": + unittest.main() diff --git a/tests/console/PAN3.py b/tests/console/PAN3.py index a8446be6d7..8d76245105 100644 --- a/tests/console/PAN3.py +++ b/tests/console/PAN3.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from include.common_classes_60 import PandoraWebDriverTestCase from include.common_functions_60 import login, click_menu_element, refresh_N_times_until_find_element, detect_and_pass_all_wizards +from include.agent_functions import create_agent from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys @@ -17,17 +18,9 @@ class PAN3(PandoraWebDriverTestCase): def test_pan3(self): driver = self.driver - login(driver,"admin","pandora",self.base_url) + login(driver) detect_and_pass_all_wizards(driver) - click_menu_element(driver,"Agent detail") - driver.find_element_by_id("submit-crt").click() - driver.find_element_by_id("text-agente").click() - driver.find_element_by_id("text-agente").clear() - driver.find_element_by_id("text-agente").send_keys("localhost icmp test") - driver.find_element_by_id("text-direccion").click() - driver.find_element_by_id("text-direccion").clear() - driver.find_element_by_id("text-direccion").send_keys("127.0.0.1") - driver.find_element_by_id("submit-crtbutton").click() + create_agent(driver,"localhost icmp test",ip="127.0.0.1") driver.find_element_by_css_selector("li.nomn.tab_godmode > a > img.forced_title").click() driver.find_element_by_id("moduletype").click() Select(driver.find_element_by_id("moduletype")).select_by_visible_text("Create a new network server module") diff --git a/tests/console/PAN4.py b/tests/console/PAN4.py index b07c0bf0d2..cec17f79c3 100644 --- a/tests/console/PAN4.py +++ b/tests/console/PAN4.py @@ -2,8 +2,10 @@ # -*- coding: utf-8 -*- from include.common_classes_60 import PandoraWebDriverTestCase -from include.common_functions_60 import login, click_menu_element, refresh_N_times_until_find_element, detect_and_pass_all_wizards, create_user, is_element_present, create_report, logout, delete_report +from include.common_functions_60 import login, click_menu_element, refresh_N_times_until_find_element, detect_and_pass_all_wizards, is_element_present, logout from selenium import webdriver +from include.reports_functions import delete_report, create_report +from include.user_functions import create_user from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select @@ -24,7 +26,7 @@ class PAN4(PandoraWebDriverTestCase): #Creates a user with Chief Operator - Applications profile profile_list = [] - profile_list.append(("Chief Operator","Applications")) + profile_list.append(("Chief Operator","Applications",[])) create_user(driver,'PAN_4','PAN_4',email='pan_4@pandorafms.com',profile_list=profile_list) #Creates report diff --git a/tests/console/PAN5.py b/tests/console/PAN5.py new file mode 100644 index 0000000000..2110ac9cd5 --- /dev/null +++ b/tests/console/PAN5.py @@ -0,0 +1,76 @@ + +# -*- coding: utf-8 -*- +from include.common_classes_60 import PandoraWebDriverTestCase +from include.common_functions_60 import login, click_menu_element, refresh_N_times_until_find_element, detect_and_pass_all_wizards, is_element_present, logout +from include.reports_functions import create_report, delete_report +from include.user_functions import create_user +from include.agent_functions import create_agent +from selenium import webdriver +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support.ui import Select +from selenium.common.exceptions import StaleElementReferenceException, NoSuchElementException +import unittest, time, re + +class PAN5(PandoraWebDriverTestCase): + + test_name = u'PAN_5' + test_description = u'Creates an agent and a module with japanese characters and test if the event list show the characters properly' + tickets_associated = [] + + def test_pan5(self): + driver = self.driver + login(driver) + detect_and_pass_all_wizards(driver) + + create_agent(driver,u"次のライセンスに基づいていま") + + #Create module + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() + Select(driver.find_element_by_id("moduletype")).select_by_visible_text("Create a new network server module") + driver.find_element_by_name("updbutton").click() + Select(driver.find_element_by_id("network_component_group")).select_by_visible_text("Network Management") + Select(driver.find_element_by_id("network_component")).select_by_visible_text("Host Alive") + time.sleep(3) + driver.find_element_by_id("text-name").clear() + driver.find_element_by_id("text-name").send_keys(u"管理者ガイド") + driver.find_element_by_id("submit-crtbutton").click() + + #Create alert + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Alerts"]').click() + Select(driver.find_element_by_id("id_agent_module")).select_by_visible_text(u"管理者ガイド") + Select(driver.find_element_by_id("template")).select_by_visible_text("Critical condition") + Select(driver.find_element_by_id("action_select")).select_by_visible_text("Default action") + driver.find_element_by_id("submit-add").click() + + #Force alert + click_menu_element(driver,"Agent detail") + driver.find_element_by_id("text-search").clear() + driver.find_element_by_id("text-search").send_keys(u"次のライセンスに基づいていま") + driver.find_element_by_id("submit-srcbutton").click() + driver.find_element_by_css_selector("b").click() + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Alerts"]').click() + driver.find_element_by_xpath('//tr[@id="table2-0"]/td/a/img[@data-title="Force"]').click() + time.sleep(10) + + #Search events of our agent + click_menu_element(driver,"View events") + driver.find_element_by_xpath('//a[contains(.,"Event control filter")]').click() + driver.find_element_by_xpath('//a[contains(.,"Advanced options")]').click() + driver.find_element_by_id("text-text_agent").clear() + driver.find_element_by_id("text-text_agent").send_keys(u"次のライセンスに基づいていま") + driver.find_element_by_id("text-module_search").clear() + driver.find_element_by_id("text-module_search").send_keys(u"管理者ガイド") + driver.find_element_by_id("submit-update").click() + + #Check that there are japanese characters present on the event + try: + self.assertEqual(True,u"Alert fired (Critical condition) assigned to (管理者ガイド)" in driver.page_source) + except AssertionError as e: + self.verificationErrors.append(str(e)) + + + +if __name__ == "__main__": + unittest.main() + diff --git a/tests/console/PAN7.py b/tests/console/PAN7.py new file mode 100644 index 0000000000..be2f9ef1f7 --- /dev/null +++ b/tests/console/PAN7.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +from include.common_classes_60 import PandoraWebDriverTestCase +from include.common_functions_60 import login, logout, click_menu_element, detect_and_pass_all_wizards, activate_home_screen +from selenium import webdriver +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support.ui import Select +from selenium.common.exceptions import NoSuchElementException +from selenium.common.exceptions import NoAlertPresentException +import unittest, time, re + +class PAN7(PandoraWebDriverTestCase): + + test_name = u'PAN_7' + test_description = u'Modify home screen, and check that change is correct. Return this change' + tickets_associated = [] + + def test_pan7(self): + + driver = self.driver + login(driver) + detect_and_pass_all_wizards(driver) + + activate_home_screen(driver,"Event list") + + logout(driver,self.base_url) + login(driver) + + try: + + self.assertEqual("Event control filter" in driver.page_source,True) + + except AssertionError as e: + + self.verificationErrors.append(str(e)) + + #Return this change + + activate_home_screen(driver,"Default") + + +if __name__ == "__main__": + unittest.main() + diff --git a/tests/console/PAN8.py b/tests/console/PAN8.py new file mode 100644 index 0000000000..55043fb1fd --- /dev/null +++ b/tests/console/PAN8.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +from include.common_classes_60 import PandoraWebDriverTestCase +from include.common_functions_60 import login, click_menu_element, detect_and_pass_all_wizards, logout +from include.agent_functions import create_agent, search_agent +from include.user_functions import create_user +from include.module_functions import create_network_server_module +from selenium import webdriver +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support.ui import Select +from selenium.common.exceptions import NoSuchElementException +from selenium.common.exceptions import NoAlertPresentException +import unittest, time, re + +class PAN8(PandoraWebDriverTestCase): + + test_name = u'PAN_8' + test_description = u'Create agent and two modules, one without tag and with tag, create a user with tag and check this user can view module with tag and user can´t view module without tag' + tickets_associated = [] + + def test_pan8(self): + + driver = self.driver + login(driver) + detect_and_pass_all_wizards(driver) + + create_agent(driver,"PAN_8",group="Applications",ip="192.168.50.50") + + #We create a module without a tag + + create_network_server_module(driver,"PAN_8",module_name="Without tag",component_group="Network Management",network_component="Host Alive",ip="192.168.50.50") + + #We now create a modulo with tag "critical" + + create_network_server_module(driver,"PAN_8",module_name="With tag",component_group="Network Management",network_component="Host Alive",ip="192.168.50.50",tag_name="critical") + + l = [("Operator (Read)","All",["critical"])] + + create_user(driver,"PAN8_user","pandora",profile_list=l) + + logout(driver,self.base_url) + + login(driver,user="PAN8_user") + + detect_and_pass_all_wizards(driver) + + search_agent(driver,"PAN_8") + + try: + #The user should be able to see the module with Tag + self.assertEqual("With tag" in driver.page_source,True) + except AssertionError as e: + self.verificationErrors.append(str(e)) + + try: + #The user should NOT be able to see the module without tag + self.assertEqual("Without tag" in driver.page_source,False) + except AssertionError as e: + self.verificationErrors.append(str(e)) + +if __name__ == "__main__": + unittest.main() diff --git a/tests/console/enterprise/__init__.py b/tests/console/enterprise/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/console/include/agent_functions.py b/tests/console/include/agent_functions.py new file mode 100644 index 0000000000..204c7f5a31 --- /dev/null +++ b/tests/console/include/agent_functions.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +from selenium import selenium +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait, Select +from selenium.webdriver.support import expected_conditions as EC +from common_functions_60 import * + +import random, time +import string + +def delete_agent (driver,agent_names_list): + + click_menu_element(driver,"Agents operations") + driver.find_element_by_id("option").click() + Select(driver.find_element_by_id("option")).select_by_visible_text("Bulk agent delete") + + for agent_name in agent_names_list: + Select(driver.find_element_by_id("id_agents")).select_by_visible_text(agent_name) + + driver.find_element_by_id("submit-go").click() + +def search_agent(driver,agent_name): + + click_menu_element(driver,"Agent detail") + driver.find_element_by_id("text-search").click() + driver.find_element_by_id("text-search").clear() + driver.find_element_by_id("text-search").send_keys(agent_name) + driver.find_element_by_id("submit-srcbutton").click() + driver.find_element_by_css_selector("b").click() + +def create_agent(driver,agent_name,ip=None,description=None,group=None,os_id=None): + + click_menu_element(driver,"Agent detail") + driver.find_element_by_id("submit-crt").click() + driver.find_element_by_id("text-agente").send_keys(agent_name) + + if ip != None: + driver.find_element_by_id("text-direccion").clear() + driver.find_element_by_id("text-direccion").send_keys(ip) + + if description != None: + driver.find_element_by_id("text-comentarios").clear() + driver.find_element_by_id("text-comentarios").send_keys(description) + + if group != None: + Select(driver.find_element_by_id("grupo")).select_by_visible_text(group) + + if os_id !=None: + Select(driver.find_element_by_id("id_os")).select_by_visible_text(os_id) + + driver.find_element_by_id("submit-crtbutton").click() + diff --git a/tests/console/include/common_functions_60.py b/tests/console/include/common_functions_60.py index 847f3f67df..5c52aba3c8 100644 --- a/tests/console/include/common_functions_60.py +++ b/tests/console/include/common_functions_60.py @@ -4,7 +4,7 @@ from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait, Select from selenium.webdriver.support import expected_conditions as EC -import random +import random, time import string def gen_random_string(size,preffix=None): @@ -52,89 +52,8 @@ def logout(driver,url): driver.get(url+"/pandora_console/index.php") refresh_N_times_until_find_element(driver,2,"nick") -def create_report(driver,nombre,group_name): - click_menu_element(driver,"Custom reporting") - driver.find_element_by_id("submit-create").click() - driver.find_element_by_id("text-name").clear() - driver.find_element_by_id("text-name").send_keys(nombre) - if group_name == "All": - Select(driver.find_element_by_id("id_group")).select_by_visible_text(group_name) - else: - #TODO This will not work when choosing a group within a group within another group - Select(driver.find_element_by_id("id_group")).select_by_visible_text(" "+group_name) - driver.find_element_by_id("submit-add").click() - -def delete_report(driver,report_name): - click_menu_element(driver,"Custom reporting") - driver.find_element_by_id('text-search').clear() - driver.find_element_by_id('text-search').send_keys(report_name) - driver.find_element_by_id('submit-search_submit').click() - driver.find_element_by_id('image-delete2').click() - alert = driver.switch_to_alert() - alert.accept() - - -def add_user_profile(driver,user_name,profile,group): - click_menu_element(driver,"Users management") - driver.find_element_by_css_selector("b").click() - driver.find_element_by_id("text-filter_search").clear() - driver.find_element_by_id("text-filter_search").send_keys(user_name) - driver.find_element_by_id("submit-search").click() - driver.find_element_by_xpath('//*[@id="table3-0-6"]/a[2]').click() - Select(driver.find_element_by_id("assign_profile")).select_by_visible_text(profile) - - if group == "All": - Select(driver.find_element_by_id("assign_group")).select_by_visible_text(group) - else: - #TODO This will not work when choosing a group within a group within another group - Select(driver.find_element_by_id("assign_group")).select_by_visible_text(" "+group) - - #driver.find_element_by_id("image-add2").click() - driver.find_element_by_xpath('//*[@name="add"]').click() - - -def create_user(driver,user_name,userpwd,email=None,profile_list=None): - u""" - Profile list es una LISTA de TUPLAS: - l = [("Chief Operator","All"),("Read Operator","Servers")] - """ - click_menu_element(driver,"Users management") - driver.find_element_by_id("submit-crt").click() - driver.find_element_by_name("id_user").clear() - driver.find_element_by_name("id_user").send_keys(user_name) - driver.find_element_by_name("password_new").clear() - driver.find_element_by_name("password_new").send_keys(userpwd) - driver.find_element_by_name("password_confirm").clear() - driver.find_element_by_name("password_confirm").send_keys(userpwd) - driver.find_element_by_name("email").clear() - if email != None: - driver.find_element_by_name("email").clear() - driver.find_element_by_name("email").send_keys(email) - driver.find_element_by_id("submit-crtbutton").click() - - if profile_list != None: - for profile_name,group_name in profile_list: - add_user_profile(driver,user_name,profile_name,group_name) - -def search_user(driver,user_name): - click_menu_element(driver,"Users management") - driver.find_element_by_css_selector("b").click() - driver.find_element_by_id('text-filter_search').clear() - driver.find_element_by_id("text-filter_search").send_keys(user_name) - driver.find_element_by_id("submit-search").click() - -def is_element_present(driver, how, what): - from selenium.common.exceptions import NoSuchElementException - try: - driver.implicitly_wait(5) - driver.find_element(by=how, value=what) - except NoSuchElementException: - driver.implicitly_wait(5) - return False - - driver.implicitly_wait(30) - return True +#Pass Wizards def detect_and_pass_pandorin(driver): if is_element_present(driver,By.NAME,'clippy_is_annoying'): @@ -162,16 +81,21 @@ def detect_and_pass_all_wizards(driver): detect_and_pass_initial_wizard(driver) detect_and_pass_newsletter_wizard(driver) - -def delete_agent (driver,agent_names_list): +def activate_home_screen(driver,mode): - click_menu_element(driver,"Agents operations") - driver.find_element_by_id("option").click() - Select(driver.find_element_by_id("option")).select_by_visible_text("Bulk agent delete") - - for agent_name in agent_names_list: - Select(driver.find_element_by_id("id_agents")).select_by_visible_text(agent_name) - - driver.find_element_by_id("submit-go").click() + click_menu_element(driver,"Edit my user") + Select(driver.find_element_by_id("section")).select_by_visible_text(mode) + driver.find_element_by_id("submit-uptbutton").click() + +def is_element_present(driver, how, what): + from selenium.common.exceptions import NoSuchElementException + try: + driver.implicitly_wait(5) + driver.find_element(by=how, value=what) + except NoSuchElementException: + driver.implicitly_wait(5) + return False + driver.implicitly_wait(30) + return True diff --git a/tests/console/include/dashboard_functions.py b/tests/console/include/dashboard_functions.py new file mode 100644 index 0000000000..cf519a9609 --- /dev/null +++ b/tests/console/include/dashboard_functions.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +from selenium import selenium +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait, Select +from selenium.webdriver.support import expected_conditions as EC +from common_functions_60 import * + +import random, time +import string + +def create_new_dashboard(driver,name,group): + + click_menu_element(driver,"Main dashboard") + driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[4]/a/img').click() + driver.find_element_by_xpath('//*[@id="table2-0-1"]/a[2]/img').click() + driver.find_element_by_id("text-name").send_keys(name) + Select(driver.find_element_by_id("group")).select_by_visible_text(group) + driver.find_element_by_id('submit-add-btn').click() + +def delete_dashboard(driver,name): + + click_menu_element(driver,"Main dashboard") + driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[4]/a/img').click() + Select(driver.find_element_by_id("id_dashboard")).select_by_visible_text(name) + driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[4]/a/img').click() + driver.find_element_by_xpath('//*[@id="table2-0-1"]/a[1]/img').click() + + +def edit_dashboard(driver,name,new_number_cell=None,new_group=None,new_name=None): + + click_menu_element(driver,"Main dashboard") + driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[4]/a/img').click() + Select(driver.find_element_by_id("id_dashboard")).select_by_visible_text(name) + + if new_number_cell != None: + driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[4]/a/img').click() + driver.find_element_by_id("text-number_cells").clear() + driver.find_element_by_id("text-number_cells").send_keys(new_number_cell) + driver.find_element_by_id('button-update_cells').click() + time.sleep(3) + + if new_group != None: + driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[4]/a/img').click() + Select(driver.find_element_by_id("group_dashboard")).select_by_visible_text(new_group) + driver.find_element_by_id('button-update_group_dashboard').click() + time.sleep(3) + + if new_name != None: + driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[4]/a/img').click() + driver.find_element_by_id("text-name_dashboard").clear() + driver.find_element_by_id("text-name_dashboard").send_keys(new_name) + driver.find_element_by_id('button-update_name_dashboard').click() + diff --git a/tests/console/include/module_functions.py b/tests/console/include/module_functions.py new file mode 100644 index 0000000000..81d753ee4f --- /dev/null +++ b/tests/console/include/module_functions.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +from selenium import selenium +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait, Select +from selenium.webdriver.support import expected_conditions as EC +from agent_functions import search_agent +from common_functions_60 import * + +import random, time +import string + + +def create_network_server_module(driver,agent_name,module_name=None,component_group=None,type=None,network_component=None,min_warning=None,max_warning=None,min_critical=None,max_critical=None,ip=None,tag_name=None,description=None): + + # component_group -> Example: Remote ICMP network agent (latency) + # network_component -> Example: Host Alive + + #The type variable is optional, but required if component_group and network_component variables are specified + + search_agent(driver,agent_name) + + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Manage"]').click() + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() + Select(driver.find_element_by_id("moduletype")).select_by_visible_text("Create a new network server module") + driver.find_element_by_xpath('//*[@id="create_module_type"]/table/tbody/tr/td[5]/input').click() + + driver.find_element_by_xpath('//a[contains(.,"Advanced options")]').click() + + if min_warning != None: + + driver.find_element_by_id("text-min_warning").clear() + driver.find_element_by_id("text-min_warning").send_keys(min_warning) + + if max_warning != None: + + driver.find_element_by_id("text-max_warning").clear() + driver.find_element_by_id("text-max_warning").send_keys(min_warning) + + if min_critical != None: + + driver.find_element_by_id("text-min_critical").clear() + driver.find_element_by_id("text-min_critical").send_keys(min_critical) + + if max_critical != None: + + driver.find_element_by_id("text-max_critical").clear() + driver.find_element_by_id("text-max_critical").send_keys(max_critical) + + if ip != None: + + driver.find_element_by_id("text-ip_target").clear() + driver.find_element_by_id("text-ip_target").send_keys(ip) + + if component_group!= None and network_component!= None: + Select(driver.find_element_by_id("network_component_group")).select_by_visible_text(component_group) + Select(driver.find_element_by_id("network_component")).select_by_visible_text(network_component) + + else: + driver.find_element_by_id("text-name").clear() + driver.find_element_by_id("text-name").send_keys(module_name) + Select(driver.find_element_by_id("id_module_type")).select_by_visible_text(type) + + if module_name != None: + driver.find_element_by_id("text-name").clear() + driver.find_element_by_id("text-name").send_keys(module_name) + + if tag_name != None: + + Select(driver.find_element_by_id("id_tag_available")).select_by_visible_text(tag_name) + driver.find_element_by_xpath('//*[@id="right"]').click() + + if description != None: + + driver.find_element_by_id("textarea_description").clear() + driver.find_element_by_id("textarea_description").send_keys(description) + + driver.find_element_by_id("submit-crtbutton").click() + + +def delete_module (driver,agent_name,module_name): + + search_agent(driver,agent_name) + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Manage"]').click() + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() + + driver.find_element_by_id("text-search_string").clear() + driver.find_element_by_id("text-search_string").send_keys(module_name) + + driver.find_element_by_id("submit-filter").click() + driver.find_element_by_id("checkbox-id_delete").click() + driver.find_element_by_xpath('//*[@id="table2-1-9"]/a/img').click() + + alert = driver.switch_to_alert() + alert.accept() + +def search_module (driver,agent_name,module_name): + + search_agent(driver,agent_name) + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Manage"]').click() + driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() + + driver.find_element_by_id("text-search_string").clear() + driver.find_element_by_id("text-search_string").send_keys(module_name) + + driver.find_element_by_id("submit-filter").click() + diff --git a/tests/console/include/reports_functions.py b/tests/console/include/reports_functions.py new file mode 100644 index 0000000000..6400ca961a --- /dev/null +++ b/tests/console/include/reports_functions.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +from selenium import selenium +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait, Select +from selenium.webdriver.support import expected_conditions as EC +from common_functions_60 import * + +import random, time +import string + +def create_report(driver,nombre,group_name,description=None): + click_menu_element(driver,"Custom reporting") + driver.find_element_by_id("submit-create").click() + driver.find_element_by_id("text-name").clear() + driver.find_element_by_id("text-name").send_keys(nombre) + if group_name == "All": + Select(driver.find_element_by_id("id_group")).select_by_visible_text(group_name) + else: + #TODO This will not work when choosing a group within a group within another group + Select(driver.find_element_by_id("id_group")).select_by_visible_text(" "+group_name) + + if description != None: + driver.find_element_by_id("textarea_description").clear() + driver.find_element_by_id("textarea_description").send_keys(description) + + driver.find_element_by_id("submit-add").click() + +def delete_report(driver,report_name): + click_menu_element(driver,"Custom reporting") + driver.find_element_by_id('text-search').clear() + driver.find_element_by_id('text-search').send_keys(report_name) + driver.find_element_by_id('submit-search_submit').click() + driver.find_element_by_id('image-delete2').click() + alert = driver.switch_to_alert() + alert.accept() diff --git a/tests/console/include/user_functions.py b/tests/console/include/user_functions.py new file mode 100644 index 0000000000..d9b54a31d3 --- /dev/null +++ b/tests/console/include/user_functions.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +from selenium import selenium +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait, Select +from selenium.webdriver.support import expected_conditions as EC +from common_functions_60 import * + +import random, time +import string + + +def add_user_profile(driver,user_name,profile,group,tags=[]): + click_menu_element(driver,"Users management") + driver.find_element_by_css_selector("b").click() + driver.find_element_by_id("text-filter_search").clear() + driver.find_element_by_id("text-filter_search").send_keys(user_name) + driver.find_element_by_id("submit-search").click() + driver.find_element_by_xpath('//*[@id="table3-0-6"]/a[2]').click() + Select(driver.find_element_by_id("assign_profile")).select_by_visible_text(profile) + + + if group == "All": + Select(driver.find_element_by_id("assign_group")).select_by_visible_text(group) + else: + #TODO This will not work when choosing a group within a group within another group + Select(driver.find_element_by_id("assign_group")).select_by_visible_text(" "+group) + + for tag in tags: + Select(driver.find_element_by_id("assign_tags")).select_by_visible_text(tag) + + #If we do not provide tags, we NEED to leave "Any" selected, otherwise we need to deselect it. + if tags != []: + Select(driver.find_element_by_id("assign_tags")).deselect_by_visible_text("Any") + + driver.find_element_by_xpath('//*[@name="add"]').click() + + + +def create_user(driver,user_name,userpwd,email=None,profile_list=None,is_admin=False): + + u""" + Profile list es una LISTA de TUPLAS: + l = [("Chief Operator","All",[]),("Read Operator","Servers",["tag1","tag2"])] + """ + + click_menu_element(driver,"Users management") + driver.find_element_by_id("submit-crt").click() + driver.find_element_by_name("id_user").clear() + driver.find_element_by_name("id_user").send_keys(user_name) + driver.find_element_by_name("password_new").clear() + driver.find_element_by_name("password_new").send_keys(userpwd) + driver.find_element_by_name("password_confirm").clear() + driver.find_element_by_name("password_confirm").send_keys(userpwd) + driver.find_element_by_name("email").clear() + + if is_admin == True: + driver.find_element_by_id('radiobtn0001').click() + + if is_admin == False: + driver.find_element_by_id('radiobtn0002').click() + + if email != None: + driver.find_element_by_name("email").clear() + driver.find_element_by_name("email").send_keys(email) + driver.find_element_by_id("submit-crtbutton").click() + + if profile_list != None: + for profile_name,group_name,tag_list in profile_list: + add_user_profile(driver,user_name,profile_name,group_name,tags=tag_list) + + +def search_user(driver,user_name): + click_menu_element(driver,"Users management") + driver.find_element_by_css_selector("b").click() + driver.find_element_by_id('text-filter_search').clear() + driver.find_element_by_id("text-filter_search").send_keys(user_name) + driver.find_element_by_id("submit-search").click() + + +def activate_home_screen(driver,mode): + + click_menu_element(driver,"Edit my user") + Select(driver.find_element_by_id("section")).select_by_visible_text(mode) + driver.find_element_by_id("submit-uptbutton").click() +