From 60da5367524830667d926fed801e69cd4d99520f Mon Sep 17 00:00:00 2001 From: Nico Schedel Date: Thu, 12 Mar 2026 12:59:09 +0100 Subject: [PATCH] MT#64630 remove selenium from mr12.5+ NGCP-Flow: mr12.5 Change-Id: I3e0fac31e77d7c1419898c74d0f194f750fd8080 (cherry picked from commit e20369dc8a2febd843427078ef557a5ec900a388) --- t/selenium/Dockerfile | 84 --- t/selenium/functions/Collections.py | 158 ------ t/selenium/functions/Functions.py | 63 --- t/selenium/jenkins_docker_run | 12 - t/selenium/nose2cfg/jenkinstest.cfg | 22 - t/selenium/nose2cfg/localtest.cfg | 22 - t/selenium/testrun.py | 780 ---------------------------- t/selenium/testrunner | 78 --- t/selenium/webdriver_prefs.json | 69 --- 9 files changed, 1288 deletions(-) delete mode 100644 t/selenium/Dockerfile delete mode 100644 t/selenium/functions/Collections.py delete mode 100644 t/selenium/functions/Functions.py delete mode 100755 t/selenium/jenkins_docker_run delete mode 100644 t/selenium/nose2cfg/jenkinstest.cfg delete mode 100644 t/selenium/nose2cfg/localtest.cfg delete mode 100644 t/selenium/testrun.py delete mode 100755 t/selenium/testrunner delete mode 100644 t/selenium/webdriver_prefs.json diff --git a/t/selenium/Dockerfile b/t/selenium/Dockerfile deleted file mode 100644 index 6377b9d7..00000000 --- a/t/selenium/Dockerfile +++ /dev/null @@ -1,84 +0,0 @@ -# DOCKER_NAME=ngcp-csc-ui-selenium-test-bookworm -FROM docker.mgm.sipwise.com/sipwise-bookworm:latest - -# Important! Update this no-op ENV variable when this Dockerfile -# is updated with the current date. It will force refresh of all -# of the base images and things like `apt-get update` won't be using -# old cached versions when the Dockerfile is built. -ENV REFRESHED_AT 2024-03-22 - -RUN apt-get update -RUN apt-get install --assume-yes \ - apt-utils \ - curl \ - devscripts \ - fluxbox \ - git \ - libdbus-glib-1-2 \ - libgtk-3-0 \ - lsof \ - net-tools \ - procps \ - python3 \ - python3-coverage \ - python3-nose2 \ - python3-selenium \ - tigervnc-standalone-server \ - unzip \ - vim-tiny \ - wget \ - xterm - -RUN adduser --disabled-password --gecos=Selenium-User selenium - -WORKDIR /home/selenium/ - -# installing geckodriver (0.33.0) -RUN wget https://deb.sipwise.com/files/geckodriver-v0.33.0-linux64.tar.gz && \ - tar xvf geckodriver-v0.33.0-linux64.tar.gz && \ - ln -s /home/selenium/geckodriver /usr/bin/geckodriver && \ - rm -f geckodriver-v0.33.0-linux64.tar.gz - -# installing firefox (lang=en_US) (123.0.1) -RUN wget https://deb.sipwise.com/files/firefox-123.0.1.tar.bz2 && \ - tar xvf firefox-123.0.1.tar.bz2 && \ - ln -s /home/selenium/firefox/firefox /usr/bin/firefox && \ - rm -f firefox-123.0.1.tar.bz2 - -# installing chromedriver (114.0.5735.90) -RUN wget https://deb.sipwise.com/files/chromedriver_linux64_114.zip && \ - unzip chromedriver_linux64_114.zip && \ - #ln -s /home/selenium/chromedriver /usr/bin/chromedriver && \ - rm -f chromedriver_linux64114.zip - -# installing chrome (114.0.5735.198) -RUN wget https://deb.sipwise.com/files/google-chrome-stable_114_amd64.deb && \ - apt install -y ./google-chrome-stable_114_amd64.deb && \ - rm -f google-chrome-stable_114_amd64.deb - -RUN echo "cd /code && ./t/selenium/testrunner 1.2.3.4 /code/ tap" >/home/selenium/.bash_history -RUN echo "su - selenium" >/root/.bash_history -EXPOSE 5999 - -COPY t/selenium/jenkins_docker_run /home/selenium/ -COPY t/selenium/webdriver_prefs.json /usr/lib/python3/dist-packages/selenium/webdriver/firefox/ - -################################################################################ -# Instructions for usage -# ---------------------- -# When you want to build the base image from scratch (jump to the next section if you don't want to build yourself!): -# NOTE: run the following command from root folder of git repository: -# % docker build --tag="ngcp-csc-ui-selenium-test-bookworm" -f t/selenium/Dockerfile . -# % docker run --rm -p 5999:5999 --shm-size 4g -i -t -v ~/Documents/ngcp-csc-ui:/code:rw ngcp-csc-ui-selenium-test-bookworm bash -# -# Use the existing docker image: -# % docker pull docker.mgm.sipwise.com/ngcp-csc-ui-selenium-test-bookworm -# % docker run --rm -p 5999:5999 --shm-size 4g -i -t -v $(pwd):/code:rw docker.mgm.sipwise.com/ngcp-csc-ui-selenium-test-bookworm:latest bash -# -# Inside docker: -# su - selenium -# cd /code && ./t/selenium/testrunner $IP_OF_NGCP_SYSTEM # IP_OF_NGCP_SYSTEM can be e.g. IP of a `vagrant up ce-trunk` system (eth1) -# -# On host (where vncviewer can be e.g. from Debian package tigervnc-viewer): -# % vncviewer geometry=1280x1024x16 localhost:5999 -################################################################################ diff --git a/t/selenium/functions/Collections.py b/t/selenium/functions/Collections.py deleted file mode 100644 index 4cb1b867..00000000 --- a/t/selenium/functions/Collections.py +++ /dev/null @@ -1,158 +0,0 @@ -import os -import random -import time -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from selenium.webdriver.common.by import By -from functions.Functions import fill_element -from functions.Functions import scroll_to_element -from functions.Functions import click_js -from functions.Functions import check_if_unchecked - - -def login_csc(driver, name, pwd): - driver.get(os.environ['CATALYST_SERVER']) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', name) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', pwd) - driver.find_element(By.XPATH, '//*[@id="csc-login-card"]/div[3]/button[2]').click() - - -def logout_csc(driver): - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[2]'))) - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[2]').click() - scroll_to_element(driver, '/html/body//div[contains(text(), "Logout")]') - driver.find_element(By.XPATH, '/html/body//div[contains(text(), "Logout")]').click() - - -def login_panel(driver): - driver.get(os.environ['CATALYST_SERVER'] + ":1443/logout") - driver.get(os.environ['CATALYST_SERVER'] + ":1443") - try: - driver.implicitly_wait(1) - driver.find_element(By.XPATH, '//*[@id="q-app"]/div/footer/div/button/span[2]/span').click() - driver.implicitly_wait(10) - except: - pass - finally: - driver.implicitly_wait(10) - driver.find_element(By.XPATH, '//*[@id="username"]').send_keys('administrator') - driver.find_element(By.XPATH, '//*[@id="password"]').send_keys('administrator') - driver.find_element(By.XPATH, '//*[@id="submit"]').click() - - -def logout_panel(driver): - driver.find_element(By.XPATH, '//*[@id="top-nav"]/ul//a[contains(text(), "Logout")]').click() - - -def create_customer(driver, name=None): - if not name: - name = 'customer' + str(random.randint(1, 100000)) + 'test' - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) - driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() - driver.find_element(By.LINK_TEXT, 'Customers').click() - driver.find_element(By.LINK_TEXT, 'Create Customer').click() - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="contactidtable"]//tr[1]//td/input'))) - scroll_to_element(driver, '//*[@id="contactidtable"]//tr[1]//td/input') - driver.find_element(By.XPATH, '//*[@id="contactidtable"]//tr[1]//td/input').click() - try: - driver.implicitly_wait(2) - scroll_to_element(driver, '//*[@id="productidtable_filter"]/label/input') - fill_element(driver, '//*[@id="productidtable_filter"]/label/input', 'thisshouldnotexist') - driver.find_element(By.CSS_SELECTOR, '#productidtable tr > td.dataTables_empty') - fill_element(driver, '//*[@id="productidtable_filter"]/label/input', 'Basic') - driver.find_element(By.XPATH, '//*[@id="productidtable"]//tr[1]//td/input').click() - driver.implicitly_wait(10) - except Exception as e: - driver.implicitly_wait(10) - del e - scroll_to_element(driver, '//*[@id="billing_profileidtable"]//tr[1]//td/input') - driver.find_element(By.XPATH, '//*[@id="billing_profileidtable"]//tr[1]//td/input').click() - scroll_to_element(driver, '//*[@id="external_id"]') - fill_element(driver, '//*[@id="external_id"]', name) - driver.find_element(By.XPATH, '//*[@id="save"]').click() - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]'))) - return name - - -def delete_customer(driver, name): - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) - driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() - driver.find_element(By.LINK_TEXT, 'Customers').click() - fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist') - driver.find_element(By.CSS_SELECTOR, '#Customer_table tr > td.dataTables_empty') - fill_element(driver, '//*[@id="Customer_table_filter"]//input', name) - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % name))) - click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Terminate")]') - driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click() - - -def create_subscriber(driver, customername, domainname): - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) - driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() - driver.find_element(By.LINK_TEXT, "Customers").click() - fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist') - driver.find_element(By.CSS_SELECTOR, '#Customer_table tr > td.dataTables_empty') - fill_element(driver, '//*[@id="Customer_table_filter"]//input', customername) - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername))) - click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]') - time.sleep(2) - driver.find_element(By.XPATH, '//a[@id="toggle-accordions"]').click() - time.sleep(1) - scroll_to_element(driver, 'Subscribers') - driver.find_element(By.LINK_TEXT, "Create Subscriber").click() - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="domainidtable_paginate"]/a[4]'))) - fill_element(driver, '//*[@id="domainidtable_filter"]//input', 'thisshouldnotexist') - driver.find_element(By.CSS_SELECTOR, '#domainidtable tr > td.dataTables_empty') - fill_element(driver, '//*[@id="domainidtable_filter"]//input', domainname) - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="domainidtable"]//tr[1]//td[text()="%s"]' % domainname))) - check_if_unchecked(driver, '//*[@id="domainidtable"]/tbody/tr[1]/td[4]/input') - driver.find_element(By.XPATH, '//*[@id="webusername"]').send_keys('testuser') - driver.find_element(By.XPATH, '//*[@id="webpassword"]').send_keys('Rand0m#PasswOrd#12345#') - driver.find_element(By.XPATH, '//*[@id="username"]').send_keys('testuser') - driver.find_element(By.XPATH, '//*[@id="password"]').send_keys('Rand0m#PasswOrd#12345#') - scroll_to_element(driver, '//*[@id="administrative"]') - driver.find_element(By.XPATH, '//*[@id="administrative"]').click() - driver.find_element(By.XPATH, '//*[@id="save"]').click() - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]'))) - - -def delete_subscriber(driver, customername): - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) - driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() - driver.find_element(By.LINK_TEXT, 'Customers').click() - fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist') - driver.find_element(By.CSS_SELECTOR, '#Customer_table tr > td.dataTables_empty') - fill_element(driver, '//*[@id="Customer_table_filter"]//input', customername) - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername))) - click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]') - driver.find_element(By.LINK_TEXT, 'Expand Groups').click() - scroll_to_element(driver, 'Subscribers') - click_js(driver, '//*[@id="subscribers_table"]//tr[1]//td//a[contains(text(), "Terminate")]') - driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click() - - -def create_domain(driver, name=None): - if not name: - name = 'domain' + str(random.randint(1, 100000)) + 'test' - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) - driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() - driver.find_element(By.LINK_TEXT, 'Domains').click() - driver.find_element(By.LINK_TEXT, 'Create Domain').click() - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="reselleridtable"]//tr[1]/td[5]/input'))) - driver.find_element(By.XPATH, '//*[@id="reselleridtable"]//tr[1]/td[5]/input').click() - fill_element(driver, '//*[@id="domain"]', name) - driver.find_element(By.XPATH, '//*[@id="save"]').click() - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]'))) - return name - - -def delete_domain(driver, name): - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) - driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() - driver.find_element(By.LINK_TEXT, 'Domains').click() - fill_element(driver, '//*[@id="Domain_table_filter"]//input', 'thisshouldnotexist') - driver.find_element(By.CSS_SELECTOR, '#Domain_table tr > td.dataTables_empty') - fill_element(driver, '//*[@id="Domain_table_filter"]//input', name) - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Domain_table"]//tr[1]//td[text()="%s"]' % name))) - click_js(driver, '//*[@id="Domain_table"]//tr[1]//td//a[contains(text(), "Delete")]') - driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click() diff --git a/t/selenium/functions/Functions.py b/t/selenium/functions/Functions.py deleted file mode 100644 index 6e7eaf8a..00000000 --- a/t/selenium/functions/Functions.py +++ /dev/null @@ -1,63 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from selenium.webdriver.common.by import By -from selenium.webdriver.common.desired_capabilities import DesiredCapabilities - - -def fill_element(driver, element, text, pathtype=By.XPATH): - elem = driver.find_element(pathtype, element) - elem.send_keys(Keys.CONTROL + "a") - elem.send_keys(Keys.DELETE) - elem.send_keys(text) - - -def scroll_to_element(driver, element): - if element[:1] == "/": - webelem = driver.find_element(By.XPATH, element) - else: - webelem = driver.find_element(By.LINK_TEXT, element) - driver.execute_script("arguments[0].scrollIntoView();", webelem) - - -def click_js(driver, element): - if element[:1] == "/": - webelement = driver.find_element(By.XPATH, element) - else: - webelement = driver.find_element(By.LINK_TEXT ,element) - driver.execute_script("arguments[0].click();", webelement) - - -def create_driver(): - profile = webdriver.FirefoxProfile() - profile.accept_untrusted_certs = True - caps = DesiredCapabilities().FIREFOX - caps["pageLoadStrategy"] = "normal" - driver = webdriver.Firefox( - capabilities=caps, firefox_profile=profile, - service_log_path='/dev/null', ) - driver.implicitly_wait(10) - return driver - - -def wait_for_loading_screen(driver): - driver.implicitly_wait(1) - for i in range(1, 5): - WebDriverWait(driver, 10).until(EC.invisibility_of_element_located(( - By.XPATH, '//div[@class="q-loading animate-fade fullscreen column ' - 'flex-center z-maxundefined"]/svg[@class="q-spinner q-spinner-mat ' - 'text-white"]'))) - driver.implicitly_wait(10) - - -def wait_for_invisibility(driver, xpath): - driver.implicitly_wait(2) - WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.XPATH, xpath))) - driver.implicitly_wait(10) - - -def check_if_unchecked(driver, element): - checkmark = driver.find_element(By.XPATH, element) - if not checkmark.is_selected(): - click_js(driver, element) diff --git a/t/selenium/jenkins_docker_run b/t/selenium/jenkins_docker_run deleted file mode 100755 index ad864147..00000000 --- a/t/selenium/jenkins_docker_run +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# This script is used for running the tests with -# proper arguments from Jenkins under user 'selenium' - -set -e - -su - selenium -c "cd /code && ./t/selenium/testrunner $*" || RC=$? - -## Jenkins will detect errors in produced artifacts if any -## as a result the Jenkins job will be "yellow" instead of "red". -[ -n "${RC}" ] && echo "Masking non-zero exit code '${RC}'" -exit 0 # ${RC:-0} diff --git a/t/selenium/nose2cfg/jenkinstest.cfg b/t/selenium/nose2cfg/jenkinstest.cfg deleted file mode 100644 index f0aa1aab..00000000 --- a/t/selenium/nose2cfg/jenkinstest.cfg +++ /dev/null @@ -1,22 +0,0 @@ -#this is the test configuration for running tests on jenkins. -#the only difference between this and localtest.cfg is that this will generate a junit result file - -[unittest] -plugins = nose2.plugins.junitxml - nose2.plugins.mp -exclude-plugins = nose2.plugins.failfast - -[junit-xml] -always-on = True -keep_restricted = False -path = /results/selenium.xml -test_fullname = True - -[multiprocess] #change thread count here. should be the same as in testrunner -always-on = True -processes = 2 - -[output-buffer] -always-on = True -stderr = False -stdout = True \ No newline at end of file diff --git a/t/selenium/nose2cfg/localtest.cfg b/t/selenium/nose2cfg/localtest.cfg deleted file mode 100644 index 75f40614..00000000 --- a/t/selenium/nose2cfg/localtest.cfg +++ /dev/null @@ -1,22 +0,0 @@ -#this is the test configuration for running tests on your local machine. -#the only difference between this and jenkinstest.cfg is that this wont generate a junit result file - -[unittest] -plugins = nose2.plugins.junitxml - nose2.plugins.mp -exclude-plugins = nose2.plugins.failfast - -[junit-xml] -always-on = False -keep_restricted = False -path = selenium.xml -test_fullname = True - -[multiprocess] #change thread count here. should be the same as in testrunner -always-on = True -processes = 1 - -[output-buffer] -always-on = True -stderr = False -stdout = True \ No newline at end of file diff --git a/t/selenium/testrun.py b/t/selenium/testrun.py deleted file mode 100644 index 1fcc8944..00000000 --- a/t/selenium/testrun.py +++ /dev/null @@ -1,780 +0,0 @@ -import unittest -import os -import traceback -from multiprocessing import Value -import nose2 -import time - -from functions.Collections import create_customer -from functions.Collections import create_subscriber -from functions.Collections import create_domain -from functions.Collections import delete_customer -from functions.Collections import delete_subscriber -from functions.Collections import delete_domain -from functions.Collections import login_csc -from functions.Collections import login_panel -from functions.Collections import logout_panel -from functions.Collections import logout_csc -from functions.Functions import click_js -from functions.Functions import create_driver -from functions.Functions import fill_element -from functions.Functions import scroll_to_element -from functions.Functions import wait_for_loading_screen -from functions.Functions import wait_for_invisibility -import selenium.common.exceptions -from selenium import webdriver -from selenium.webdriver.common.alert import Alert -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.common.desired_capabilities import DesiredCapabilities -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from selenium.webdriver.common.by import By -from datetime import datetime - -execs = Value('i', 0) -customers = {} -filename = 0 - - -def preparation(): - global customers - driver = create_driver() - try: - login_panel(driver) - for i in range(0, int(os.environ['THREADS'])): - customers[create_customer(driver)] = create_domain(driver) - del i - for customer in customers.keys(): - create_subscriber(driver, customer, customers[customer]) - if os.environ.get('vmtype') == None: - os.environ['vmtype'] = "CE" - driver.quit() - except Exception: - driver.save_screenshot('/results/preperation.png') - driver.quit() - raise Exception - - -def cleanup(): - global customers - driver = create_driver() - login_panel(driver) - for customer in customers: - delete_customer(driver, customer) - delete_domain(driver, customers[customer]) - driver.quit() - - -class testrun(unittest.TestCase): - - def setUp(self): - global execs - global customers - self.driver = create_driver() - self.longMessage = True - execs.value += 1 - self.key = list(customers.keys())[execs.value % int(os.environ['THREADS'])] - self.domainname = customers[self.key] - - def test_call_blocking(self): - global customers - global filename - filename = "test_call_blocking.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Block Incoming' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Block Incoming")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]')) > 0, "'Block Incoming' page wasnt opened") - print("OK") - print("Try to block all incoming anonymous Calls...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[@tabindex="0"]/div[1]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]/div[1]/div/div[@aria-checked="true"]')) > 0, - "Incoming Anonymous Calls were not disabled") - print("OK") - print("Try to enable option 'Only allow incoming calls from listed numbers'...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[contains(., "Only incoming calls")]/../div[1]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[contains(@class, "q-radio__inner--truthy")]')) > 0, - "Option 'Only incoming calls from listed numbers are allowed' was not enabled") - print("OK") - """ - print("Trying to add a number to the incoming calls list...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div/button[contains(., "Add number")]').click() - click_js(driver, '//*[@id="csc-page-call-blocking-incoming"]//div/input') - fill_element(driver, '//*[@id="csc-page-call-blocking-incoming"]//div/input', "Testnumber") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div/button[2]') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[@data-cy="csc-blocked-number"]/div[contains(., "Testnumber")]')) > 0, - "Number was not added") - print("OK") - print("Trying to delete a number to the incoming calls list...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div/button[@data-cy="csc-more-menu"]').click() - driver.find_element(By.XPATH, '/html/body//div[contains(., "Remove")]').click() - driver.find_element(By.XPATH, '/html/body//div/button[contains(., "OK")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]/div[contains(., "No numbers found")]')) > 0, - "Number was not deleted") - """ - print("Go to 'Block Outgoing' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Block Outgoing")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-outgoing"]')) > 0, "'Block Outgoing' page wasnt opened") - print("OK") - filename = 0 - - def test_call_forwarding(self): - global customers - global filename - filename = "test_call_forwarding.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Call Forwarding' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened") - print("OK") - print("Create a call forwarding 'if available'...", end="") - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]'))) - time.sleep(1) - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]') - time.sleep(1) - click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') - click_js(driver, '//div[@data-cy="csc-add-forwarding-available"]') - print("OK") - print("Try to add a condition 'call from...' to the call forwarding...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click() - driver.find_element(By.XPATH, '//div[@data-cy="csc-condtion-call-from"]').click() - fill_element(driver, '/html/body//div[1]/div/label//div//input', 'TestUser') - fill_element(driver, '/html/body//div[2]/div/label//div//input', '1234') - driver.find_element(By.XPATH, '/html/body//button[contains(., "Add number")]').click() - fill_element(driver, '/html/body/div[3]//div[3]//label//div//input', '5678') - driver.find_element(By.XPATH, '/html/body//button[contains(., "Save")]').click() - wait_for_invisibility(driver, '/html/body/div[3]') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "TestUser")]')) > 0, - "Condition 'call from...' was not added") - print("OK") - print("Try to edit 'forwared to...' number...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Number")]').click() - fill_element(driver, "/html/body//label//div//input", 'TestNumber') - driver.find_element(By.XPATH, '/html/body//div/button[contains(., "Set")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div[contains(., "TestNumber")]')) > 0, - "'forward to...' number was not changed") - print("OK") - print("Try to add a second condition 'office hours are...'...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click() - driver.find_element(By.XPATH, '//div[@data-cy="csc-condtion-office-hours"]').click() - fill_element(driver, '/html/body//div[1]/label//div//input[@aria-label="Start time"]', '1200') - fill_element(driver, '/html/body//div[2]/label//div//input[@aria-label="End time"]', '1800') - driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Save")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Monday, Tuesday, Wednesday, Thursday, Friday")]')) > 0, - "'Office hours are...' condition is not correct") - print("OK") - print("Try to delete second condition...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Monday")]').click() - driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Delete")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]')) > 0, - "Second condition was not deleted") - print("OK") - print("Try to add second condition 'date is...'...", end="") - day = datetime.today().day - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click() - driver.find_element(By.XPATH, '//div[@data-cy="csc-condtion-date"]').click() - driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Save")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - if day < 10: - day = "0" + str(day) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div[@data-cy="q-item-label"]/span[contains(., "' + datetime.today().strftime('%Y/%m/') + str(day) + '")]')) > 0, - "'Office hours are...' condition is not correct") - print("OK") - print("Try to delete second condition...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "' + datetime.today().strftime('%Y/%m/') + str(day) + '")]').click() - driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Delete")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]')) > 0, - "Second condition was not deleted") - print("OK") - print("Try to delete first condition...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "TestUser")]').click() - driver.find_element(By.XPATH, '//button[@data-cy="csc-call-select-delete"]').click() - wait_for_invisibility(driver, '/html/body/div[3]/div/div[4]/svg') - print("OK") - print("Try to add another foward...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div/div[1]/div[2]/button').click() - driver.find_element(By.XPATH, '//div[@data-cy="csc-forwarding-to-voicebox"]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[3]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div[contains(., "Voicebox")]')) > 0, "Voicebox forwarding was not added") - print("OK") - print("Try to change the amount of time before it switches to the next forward...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[1][contains(., "seconds")]').click() - fill_element(driver, '/html/body//div/label//div//input', "30") - driver.find_element(By.XPATH, '/html/body/div[3]/div/div/button[contains(., "Set")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[1][contains(., "30")]')) > 0, - "Voicebox forwarding time was not changed") - print("OK") - print("Try to disable a call forward...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div/div[1]/div[2]/button').click() - driver.find_element(By.XPATH, '/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Disable")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div[@class="q-item__section column q-item__section--main justify-center disabled"]')) > 0, - "Call forward was not disabled") - print("OK") - print("Try to enable a call forward...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div/div[1]/div[2]/button').click() - driver.find_element(By.XPATH, '/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Enable")]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg') - print("OK") - print("Try to delete call forwarding...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div/div[1]/div[2]/button').click() - driver.find_element(By.XPATH, '/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Remove")]').click() - driver.find_element(By.XPATH, '/html/body//div/div[3]/button[2]').click() - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - self.assertTrue( - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div/div').text == "Always", "Call forward was not deleted") - filename = 0 - - def test_fax_settings(self): - global customers - global filename - if os.environ.get('vmtype') == "CE": - print("Running CE, test is skipped...") - filename = 0 - return True - filename = "test_fax_settings.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Fax Settings' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Fax Settings")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-main"]')) > 0, "Fax page wasnt opened") - print("OK") - print("Try to add a new destination...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div//button[contains(., "Add destination")]').click() - fill_element(driver, '//*[@id="csc-page-main"]/main//div//label//input[@aria-label="Destination Email"]', "testdestination@test.com") - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div//label[2]').click() - driver.find_element(By.XPATH, '/html/body//div[contains(., "PDF")]').click() - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div//button[contains(., "Create destination")]').click() - print("OK") - print("Check if destination is correct...", end="") - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-main"]//main//div[contains(., " as PDF")]')) > 0, "Destination was not found") - print("OK") - print("Try to edit Fax destination. Disabling 'Deliver incoming/outgoing Faxes'...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div[@data-cy="csc-list-item"]').click() - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main/div[2]//div[@aria-label="Deliver Incoming Faxes"]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main/div[2]//div[@aria-label="Deliver Outgoing Faxes"]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div[@data-cy="csc-list-item"]/div[1]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main//div/i[contains(., "call_recieved")]') - wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main//div/i[contains(., "call_made")]') - print("OK") - print("Try to activate sendfax...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div[@aria-label="Active"]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[1]')) > 0, "Fax button was not found") - print("OK") - print("Try to send a fax to a test destination...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[1]').click() - driver.find_element(By.XPATH, '/html/body/div[contains(., "Send Fax")]').click() - fill_element(driver, '/html/body//div//label//div/input[@aria-label="Destination Number"]', '999999') - fill_element(driver, '/html/body//div//label//div/input[@aria-label="Page Header"]', 'Test') - fill_element(driver, '/html/body//div//label//div/textarea[@aria-label="Content"]', 'This is a test Text') - driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Send")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]//div[contains(., "Sending fax completed")]')) > 0, "Fax was not sent") - print("OK") - filename = 0 - - def test_login_page(self): - global customers - global filename - filename = "test_login_page.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with no credentials...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") - print("OK") - print("Try to log in with invalid credentials...", end="") - driver.get(os.environ['CATALYST_SERVER']) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "invaliduser") - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "invalidpass") - driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") - print("OK") - print("Try to log in with invalid password...", end="") - driver.get(os.environ['CATALYST_SERVER']) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "invalidpass") - driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") - print("OK") - print("Try to log in with empty password...", end="") - driver.get(os.environ['CATALYST_SERVER']) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) - driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") - print("OK") - print("Try to log in with valid credentials...", end="") - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "Rand0m#PasswOrd#12345#") - driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Try to log out...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[contains(., "testuser")]').click() - driver.find_element(By.XPATH, '//div[@data-cy="user-logout"]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-login"]')) > 0, - "Logout wasnt successful") - print("OK") - print("Trying to change to every available language...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click() - click_js(driver, '/html/body/div[3]/div/div[3]') - wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') - time.sleep(1) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Teilnehmer-Anmeldung")]')) > 0, - "Language wasnt changed to German") - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click() - click_js(driver, '/html/body/div[3]/div/div[4]') - wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') - time.sleep(1) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Iniciar sesión de suscriptor")]')) > 0, - "Language wasnt changed to Spanish") - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click() - click_js(driver, '/html/body/div[3]/div/div[5]') - wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') - time.sleep(1) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Authentification de l’abonné")]')) > 0, - "Language wasnt changed to French") - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click() - click_js(driver, '/html/body/div[3]/div/div[6]') - wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') - time.sleep(1) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Accesso abbonato")]')) > 0, - "Language wasnt changed to Italian") - driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click() - click_js(driver, '/html/body/div[3]/div/div[2]') - wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') - time.sleep(1) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Subscriber Sign In")]')) > 0, - "Language wasnt changed to English") - print("OK") - filename = 0 - - def test_other(self): - global customers - global filename - filename = "test_other.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) - fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "Rand0m#PasswOrd#12345#") - driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Start new call' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]/a[contains(., "Start new call")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-call"]')) > 0, "Start new call page wasnt opened") - print("OK") - print("Go to 'Conversations' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]/a[contains(., "Conversations")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]')) > 0, "Conversations page wasnt opened") - print("OK") - print("Trying to go through every subpage...", end="") - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Calls, Voicemails or Faxes found")]')) > 0, - "Sub page 'All' wasnt opened") - driver.find_element(By.XPATH, '//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[2]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Calls found")]')) > 0, - "Sub page 'Calls' wasnt opened") - driver.find_element(By.XPATH, '//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[3]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Voicemails found")]')) > 0, - "Sub page 'Voicemails' wasnt opened") - driver.find_element(By.XPATH, '//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[4]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Faxes found")]')) > 0, - "Sub page 'Faxes' wasnt opened") - print("OK") - print("Go to 'General'...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "General")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div[contains(., "Music on Hold")]')) > 0, - "General page wasnt opened") - print("OK") - print("Try to enable 'Music on Hold'...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]/div/div[1]/div[2]/svg') - click_js(driver, '//*[@id="csc-page-voicebox"]//div[@aria-label="Music on Hold"]/div[1]') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div[@aria-checked="true"]')) > 0, - "Music on Hold was not enabled") - print("OK") - print("Go to 'Privacy' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Privacy")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-privacy"]')) > 0, "Privacy page wasnt opened") - print("OK") - print("Try to enable privacy settings...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-call-blocking-privacy"]/div/div/div[2]/svg') - click_js(driver, '//div[@data-cy="csc-privacy-hide"]') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//div[@data-cy="csc-privacy-hide"][@aria-checked="true"]')) > 0, - "'Hide your number to the callee' wasnt enabled") - click_js(driver, '//*[@id="csc-page-call-blocking-privacy"]/div/div[2]/div[1]/div') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-privacy"]/div/div[2]/div[1]/div[@aria-checked="true"]')) > 0, - "'Hide number to the callee within own PBX' wasnt enabled") - filename = 0 - - def test_recording(self): - global customers - global filename - now = datetime.now() - filename = "test_recording.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Recordings' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Recordings")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]')) > 0, "Recordings page wasnt opened") - print("OK") - print("Add a timerange filter and check if they got created...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div//button[contains(., "Filter")]').click() - click_js(driver, '//*[@id="csc-page-call-recording"]//div[@data-cy="csc-call-recording-filters"]//label[1]/div/div/div[1]') - driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div[1]').click() - driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label[1]/div/div/div[1]').click() - driver.find_element(By.XPATH, '/html/body/div[3]/div/div/div[2]/div[2]/div/button').click() - checkstring = "Start time: " + now.strftime("%Y-%m-%d") + " 00:00" - print(checkstring) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "' + checkstring + '")]')) > 0, - "Start timerange could not be found") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label[2]/div/div/div[1]').click() - driver.find_element(By.XPATH, '/html/body/div[3]/div/div/div[2]/div[2]/div/button').click() - checkstring = "End time: " + now.strftime("%Y-%m-%d") + " 00:00" - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "' + checkstring + '")]')) > 0, - "End timerange could not be found") - print("OK") - print("Try to remove the End time...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "End time:")]/../i[2]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "End time:")]/../i[2]') - print("OK") - print("Add filter by CallID...", end="") - click_js(driver, '//*[@id="csc-page-call-recording"]//div[@data-cy="csc-call-recording-filters"]//label[1]/div/div/div[1]') - driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div[4]').click() - fill_element(driver, '//*[@id="csc-page-call-recording"]//div//label//input[@aria-label="CallID"]', "TestCallID") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label/div/div/div[2]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "CallID: TestCallID")]')) > 0, - "Call ID could not be found") - print("OK") - print("Try to delete all filters...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "Start time:")]/../i[2]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "Start time:")]/../i[2]') - driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "CallID:")]/../i[2]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "CallID:")]/../i[2]') - filename = 0 - - def test_reminder(self): - global customers - global filename - filename = "test_reminder.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Reminder' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Reminder")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-reminder"]')) > 0, "Reminder page wasnt opened") - print("OK") - print("Try to enable reminders...", end="") - wait_for_invisibility(driver, '//div[@data-cy="csc-reminder-toggle"][@aria-disabled="true"]') - driver.find_element(By.XPATH, '//div[@data-cy="csc-reminder-toggle"]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//div[@data-cy="csc-reminder-toggle"][@aria-checked="true"]')) > 0, - "Reminder has not been enabled") - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Speed Dial")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Reminder")]').click() - print("OK") - print("Try to change reminder recurrance to 'Always'...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]//div[@aria-label="Always"]').click() - WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body//div[@role="alert"]'))) - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-reminder"]//div[@aria-label="Always"][@aria-checked="true"]')) > 0, - "Reminder recurrance has not been changed to 'always'") - print("OK") - print("Try to change time to 12:00...") - driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input').click() - driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input').click() - fill_element(driver, '//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input', '1200') - print(driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]//div[@aria-label="Always"][@aria-checked="true"]').get_attribute("value")) - self.assertTrue( - driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]/div//label//div//input').get_attribute("value") == '12:00', - "Time has not been changed") - filename = 0 - - def test_security(self): - global customers - global filename - filename = "test_security.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Call Forwarding' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened") - print("OK") - print("Create a call forwarding 'if available'...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]') - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') - click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') - click_js(driver, '//div[@data-cy="csc-add-forwarding-available"]') - print("OK") - print("Create a call forwarding 'if not available'...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]') - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') - click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') - click_js(driver, '//div[@data-cy="csc-add-forwarding-not-available"]') - print("OK") - print("Create a call forwarding 'if busy'...", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]') - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') - click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') - click_js(driver, '//div[@data-cy="csc-add-forwarding-busy"]') - print("OK") - print("Add test string to all call forwardings", end="") - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]') - wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div[1]//div/span[contains(., "Number")]').click() - fill_element(driver, "/html/body//label//div//input", "checking asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?> 0, "Illegal call foward was created") - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div[2]//div/span[contains(., "Number")]').click() - fill_element(driver, "/html/body//label//div//input", "checking asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?> 0, "Illegal call foward was created") - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div[3]//div/span[contains(., "Number")]').click() - fill_element(driver, "/html/body//label//div//input", "checking asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?> 0, "Illegal call foward was created") - wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') - print("OK") - filename = 0 - - def test_speed_dial(self): - global customers - global filename - filename = "test_speed_dial.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Call Forwarding' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Speed Dial")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]')) > 0, "Speed dial page wasnt opened") - print("OK") - print("Try to create a new Speed Dial...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-speed-dial"]//div/button').click() - driver.find_element(By.XPATH, '//*[@id="csc-page-speed-dial"]//div/label').click() - driver.find_element(By.XPATH, '//*[contains(., "*5")]').click() - fill_element(driver, '//*[@id="csc-page-speed-dial"]//div/label[2]//div/input[@aria-label="Destination"]', "testination") - click_js(driver, '//*[@id="csc-page-speed-dial"]//button[contains(., "Save")]') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]//div[@data-cy="csc-speeddial-whendial"][contains(., "When I dial *6")]')) > 0, - "Speed dial button is not correct") - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]//div[@data-cy="csc-speeddial-ring"][contains(., "testination")]')) > 0, - "Speed dial destination is not correct") - print("OK") - print("Try to delete the speed dial...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-speed-dial"]//div//button[@data-cy="csc-speeddial-more"]').click() - driver.find_element(By.XPATH, '/html/body//div[@data-cy="csc-speeddial-remove"]').click() - driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div/div[3]/button[2]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]/div[2]/div[contains(., "No speed dials found")]')) > 0, - "Speed dial was not deleted") - filename = 0 - - def test_voicebox(self): - global customers - global filename - filename = "test_voicebox.png" - driver = self.driver - driver.get(os.environ['CATALYST_SERVER']) - print("Try to log in with valid credentials...", end="") - login_csc(driver, "testuser@" + self.domainname, 'Rand0m#PasswOrd#12345#') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") - print("OK") - print("Go to 'Call Forwarding' page...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() - time.sleep(1) - driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Voicebox")]').click() - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]')) > 0, "Conference page wasnt opened") - print("OK") - print("Try to enter invalid PIN...", end="") - WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]'))) - fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]', "asdf") - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0, - "Wrong PIN has not been detected") - print("OK") - print("Try to enter valid PIN...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click() - fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]', "12345") - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//button[contains(., "Save")]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]//div/label[aria-disabled="true"]//input[@data-cy="voicebox-change-pin"]') - self.assertTrue( - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]').get_attribute("value") == "12345", - "Changed PIN is not correct") - print("OK") - print("Try to enter an invalid Email...", end="") - fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test") - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0, - "Wrong Email has not been detected") - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click() - fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test@test") - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0, - "Wrong Email has not been detected") - print("OK") - print("Try to enter a valid Email...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click() - fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test@test.com") - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//button[contains(., "Save")]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]//div/label[aria-disabled="true"]//input[@data-cy="voicebox-change-email"]') - self.assertTrue( - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]').get_attribute("value") == "test@test.com", - "Changed Email is not correct") - print("OK") - print("Try to disable 'Attach voicemail to email' setting...", end="") - driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div[@aria-label="Attach voicemail to email notification"]').click() - wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]/div/div[3]/div[2]/svg') - self.assertTrue( - len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]/div/div[5]/div[1]/div[@aria-disabled="true"]')) > 0, - "Setting was not disabled") - filename = 0 - - def tearDown(self): - global customers - global filename - driver = self.driver - if filename: - print("FAIL") - driver.save_screenshot('/results/' + filename) - filename = 0 - driver.quit() - - -if __name__ == '__main__': - print('----------------------------------------------------------------------') - print('Preparing Domain, Customer and Subscriber for NGCP CSC tests ...') - try: - preparation() - except Exception as e: - print('Preperation failed! See log below for more details') - print('----------------------------------------------------------------------') - traceback.print_exc() - print('----------------------------------------------------------------------') - quit(1) - print('Preperation successful, running tests now ...') - print('----------------------------------------------------------------------') - - nose2.main(exit=False) - try: - cleanup() - except Exception as e: - traceback.print_exc() - quit(1) diff --git a/t/selenium/testrunner b/t/selenium/testrunner deleted file mode 100755 index df054c73..00000000 --- a/t/selenium/testrunner +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash - -if ! [ -f /.dockerenv ] && ! grep -q 'devices:/docker' /proc/1/cgroup ; then - echo "Not running inside docker, exiting to avoid data damage." >&2 - exit 1 -fi - -set -e -set -u - -PASSWORD="selenium" - -if [ -z "${1:-}" ] ; then - echo "Usage: $0 [] [junit] [test_plan]" >&2 - echo - echo "Usage examples: - - $0 1.2.3.4 - $0 1.2.3.4 /code/ tap" - exit 1 -fi - -SERVER="${1}" -OUTPUT_DIRECTORY="${2:-/code/}" -OUTPUT_TYPE=${3:-} -shift; shift; shift # remove first three argv to use ${@} below. - -# vnc -echo "Setting VNC password" -printf '%s\n%s\n\n' "${PASSWORD}" "${PASSWORD}" | vncpasswd >/dev/null -PASSWORD_ENCODED=$(hexdump -v -e '"\\""x" 1/1 "%02X"' < "${HOME}/.vnc/passwd") -xvnc_process=$(pgrep -f 'Xtigervnc :99' || true) -export DISPLAY=":99" -if [ -n "${xvnc_process:-}" ] ; then - echo "Warning: existing VNC server found, not restarting Xtigervnc process (PID: $xvnc_process)." -else - echo "Starting VNCserver on display :99" - vncserver -localhost no -geometry 1280x1024 :99 -fi - -echo "################################################################################" -echo "Firefox version:" -firefox --version - -# ensure we don't leave any process behind causing problems with re-execution -pkill -f 'geckodriver' || true - -echo "################################################################################" -echo "Finished main setup, now running tests ..." -echo "Selenium server log file available at /home/selenium/selenium.log" -echo "Watch at test runs by connecting via VNC (password: '${PASSWORD}'):" -echo "echo -e '$PASSWORD_ENCODED' >/tmp/vncpasswd ; vncviewer geometry=1280x1024x16 passwd=/tmp/vncpasswd localhost:5999" - -RC=0 -export CATALYST_SERVER="https://${SERVER}" -cd t/selenium - -if [ "${OUTPUT_TYPE:-}" = "junit" ] ; then - #Change thread count here and in nose2cfg/jenkinstest.cfg - export THREADS=2 - export JENKINS=1 - python3 testrun.py -v -c nose2cfg/jenkinstest.cfg | \ - tee -a "${OUTPUT_DIRECTORY}/selenium.xml" - RC="${PIPESTATUS[0]}" -else - #Change thread count here and in nose2cfg/localtest.cfg - export THREADS=1 - python3 testrun.py -v -c nose2cfg/localtest.cfg|| RC=$? -fi - -echo "Finished test execution, test execution returned with exit code ${RC}." -if [ -f "${OUTPUT_DIRECTORY}/selenium.xml" ] ; then - echo "Test results available at '${OUTPUT_DIRECTORY}/selenium.xml'" -fi - -echo "################################################################################" - -exit "${RC}" diff --git a/t/selenium/webdriver_prefs.json b/t/selenium/webdriver_prefs.json deleted file mode 100644 index f8d5c575..00000000 --- a/t/selenium/webdriver_prefs.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "frozen": { - "app.update.auto": false, - "app.update.enabled": false, - "browser.displayedE10SNotice": 4, - "browser.download.manager.showWhenStarting": false, - "browser.EULA.override": true, - "browser.EULA.3.accepted": true, - "browser.link.open_external": 2, - "browser.link.open_newwindow": 2, - "browser.offline": false, - "browser.reader.detectedFirstArticle": true, - "browser.safebrowsing.enabled": false, - "browser.safebrowsing.malware.enabled": false, - "browser.search.update": false, - "browser.selfsupport.url" : "", - "browser.sessionstore.resume_from_crash": false, - "browser.shell.checkDefaultBrowser": false, - "browser.tabs.warnOnClose": false, - "browser.tabs.warnOnOpen": false, - "datareporting.healthreport.service.enabled": false, - "datareporting.healthreport.uploadEnabled": false, - "datareporting.healthreport.service.firstRun": false, - "datareporting.healthreport.logging.consoleEnabled": false, - "datareporting.policy.dataSubmissionEnabled": false, - "datareporting.policy.dataSubmissionPolicyAccepted": false, - "devtools.errorconsole.enabled": true, - "dom.disable_open_during_load": false, - "extensions.autoDisableScopes": 10, - "extensions.blocklist.enabled": false, - "extensions.checkCompatibility.nightly": false, - "extensions.update.enabled": false, - "extensions.update.notifyUser": false, - "javascript.enabled": true, - "network.manage-offline-status": false, - "network.http.phishy-userpass-length": 255, - "offline-apps.allow_by_default": true, - "prompts.tab_modal.enabled": false, - "security.fileuri.origin_policy": 3, - "security.fileuri.strict_origin_policy": false, - "signon.rememberSignons": false, - "toolkit.networkmanager.disable": true, - "toolkit.telemetry.prompted": 2, - "toolkit.telemetry.enabled": false, - "toolkit.telemetry.rejected": true, - "xpinstall.signatures.required": false, - "xpinstall.whitelist.required": false - }, - "mutable": { - "browser.dom.window.dump.enabled": true, - "browser.laterrun.enabled": false, - "browser.newtab.url": "about:blank", - "browser.newtabpage.enabled": false, - "browser.startup.page": 0, - "browser.startup.homepage": "about:blank", - "browser.startup.homepage_override.mstone": "ignore", - "browser.usedOnWindows10.introURL": "about:blank", - "dom.max_chrome_script_run_time": 30, - "dom.max_script_run_time": 30, - "dom.report_all_js_exceptions": true, - "javascript.options.showInConsole": true, - "network.captive-portal-service.enabled": false, - "security.csp.enable": false, - "startup.homepage_welcome_url": "about:blank", - "startup.homepage_welcome_url.additional": "about:blank", - "webdriver_accept_untrusted_certs": true, - "webdriver_assume_untrusted_issuer": true - } -}