blob: b2728f06fdf17d7b5ce7de260e99a427aef1641c [file] [log] [blame]
*** Settings ***
Documentation This is RobotFrame work script
Library ExtendedSelenium2Library
Library OperatingSystem
Library eteutils/RequestsClientCert.py
Library RequestsLibrary
Library eteutils/UUID.py
Library DateTime
Library Collections
Library eteutils/OSUtils.py
Library eteutils/StringTemplater.py
Library String
Library XvfbRobot
Resource json_templater.robot
*** Variables ***
${PORTAL_URL} http://portal.api.simpledemo.onap.org:8989
${PORTAL_ENV} /ONAPPORTAL
${PORTAL_LOGIN_URL} ${PORTAL_URL}${PORTAL_ENV}/login.htm
${PORTAL_HOME_PAGE} ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
${PORTAL_MICRO_ENDPOINT} ${PORTAL_URL}${PORTAL_ENV}/commonWidgets
${PORTAL_HOME_URL} ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
${App_First_Name} demoapp
${App_Last_Name} demo
${App_Email_Address} demoapp@onap.com
${App_LoginID} demoapp
${App_Loginpwd} demo123456!
${App_LoginPwdCheck} demo123456!
${Sta_First_Name} demosta
${Sta_Last_Name} demo
${Sta_Email_Address} demosta@onap.com
${Sta_LoginID} demosta
${Sta_Loginpwd} demo123456!
${Sta_LoginPwdCheck} demo123456!
${Test_First_Name} portal
${Test_Last_Name} demo
${Test_Email_Address} portal@onap.com
${Test_LoginID} portal
${Test_Loginpwd} demo123456!
${Test_LoginPwdCheck} demo123456!
${Existing_User} portal
${PORTAL_HEALTH_CHECK_PATH} /ONAPPORTAL/portalApi/healthCheck
${PORTAL_ASSETS_DIRECTORY} ${CURDIR}
${GLOBAL_APPLICATION_ID} robot-functional
${GLOBAL_PORTAL_ADMIN_USER} demo
${GLOBAL_PORTAL_ADMIN_PWD} demo123456!
${AppAccountName} testApp
${AppUserName} testApp
${AppPassword} testApp123!
${GLOBAL_MSO_STATUS_PATH} /ecomp/mso/infra/orchestrationRequests/v2/
${GLOBAL_SELENIUM_BROWSER} chrome
${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} Create Dictionary
${GLOBAL_SELENIUM_DELAY} 0
${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} 5
${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} 15
${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} orchestration
${GLOBAL_OPENSTACK_CINDER_SERVICE_TYPE} volume
${GLOBAL_OPENSTACK_NOVA_SERVICE_TYPE} compute
${GLOBAL_OPENSTACK_NEUTRON_SERVICE_TYPE} network
${GLOBAL_OPENSTACK_GLANCE_SERVICE_TYPE} image
${GLOBAL_OPENSTACK_KEYSTONE_SERVICE_TYPE} identity
${GLOBAL_BUILD_NUMBER} 0
${GLOBAL_VM_PRIVATE_KEY} ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt
${jira} jira
${RESOURCE_PATH} ONAPPORTAL/auxapi/ticketevent
${portal_Template} ${CURDIR}/portal.template
${Result} FALSE
${td_id} 0
${download_link_id} 0
*** Test Cases ***
Portal Health Check
Run Portal Health Check
Login into Portal URL
Portal admin Login To Portal GUI
# Portal R1 Release
# [Documentation] ONAP Portal R1 functionality test
# Notification on ONAP Portal
# Portal Application Account Management validation
Portal R1 Release for AAF
[Documentation] ONAP Portal R1 functionality for AAF test
Portal AAF new fields
Create Microse service onboarding
Portal admin Microservice Onboarding
##Delete Microse service
##Portal admin Microservice Delete
Create Widget for all users
Portal Admin Create Widget for All users
Delete Widget for all users
Portal Admin Delete Widget for All users
Create Widget for Application Roles
Portal Admin Create Widget for Application Roles
#Delete Widget for Application Roles
#Portal Admin Delete Widget for Application Roles
#EP Admin widget download
#Admin widget download
#EP Admin widget layout reset
#Reset widget layout option
Validate Functional Top Menu Get Access
Functional Top Menu Get Access
Validate Functional Top Menu Contact Us
Functional Top Menu Contact Us
Edit Functional Menu
Portal admin Edit Functional menu
Broadbond Notification functionality
${AdminBroadCastMsg}= Portal Admin Broadcast Notifications
set global variable ${AdminBroadCastMsg}
Category Notification functionality
${AdminCategoryMsg}= Portal Admin Category Notifications
set global variable ${AdminCategoryMsg}
Create a Test user for Application Admin -Test
Portal admin Add Application admin User New user -Test
Create a Test User for Apllication Admin
Portal admin Add Application admin User New user
Add Application Admin for Existing User Test user
Portal admin Add Application Admin Exiting User -APPDEMO
Create a Test user for Standared User
Portal admin Add Standard User New user
Add Application Admin for Exisitng User
Portal admin Add Application Admin Exiting User
Delete Application Admin for Exisitng User
Portal admin Delete Application Admin Existing User
#Add Standard User Role for Existing user
#Portal admin Add Standard User Existing user
#Edit Standard User Role for Existing user
#Portal admin Edit Standard User Existing user
#Delete Standard User Role for Existing user
#Portal admin Delete Standard User Existing user
#Add Account new account from App Account Management
#Portal admin Add New Account
#Delete Account new account from App Account Management
#Portal admin Delete Account
Logout from Portal GUI as Portal Admin
Portal admin Logout from Portal GUI
## Application Admin user Test cases
Login To Portal GUI as APP Admin
Application admin Login To Portal GUI
##Navigate Functional Link as APP Admin
##Application Admin Navigation Functional Menu
#Add Standard User Role for Existing user as APP Admin
#Application admin Add Standard User Existing user
#Edit Standard User Role for Existing user as APP Admin
#Application admin Edit Standard User Existing user
#Delete Standard User Role for Existing user as APP Admin
#Application admin Delete Standard User Existing user
#Navigate Application Link as APP Admin
#Application Admin Navigation Application Link Tab
Logout from Portal GUI as APP Admin
Application admin Logout from Portal GUI
##Standard User Test cases
Login To Portal GUI as Standared User
Standared user Login To Portal GUI
#Navigate Application Link as Standared User
#Standared user Navigation Application Link Tab
#Navigate Functional Link as Standared User
#Standared user Navigation Functional Menu
#Broadcast Notifications Standared user
#Standared user Broadcast Notifications ${AdminBroadCastMsg}
#Category Notifications Standared user
#Standared user Category Notifications ${AdminCategoryMsg}
Logout from Portal GUI as Standared User
Standared User Logout from Portal GUI
Teardown
[Documentation] Close All Open browsers
Close All Browsers
*** Keywords ***
Setup Browser
[Documentation] Sets up browser based upon the value of ${GLOBAL_SELENIUM_BROWSER}
# Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'firefox' Setup Browser Firefox
Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'chrome' Setup Browser Chrome
Log Running with ${GLOBAL_SELENIUM_BROWSER}
Setup Browser Chrome
${os}= Get Normalized Os
Log Normalized OS=${os}
${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys
Call Method ${chrome options} add_argument no-sandbox
${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver
Set To Dictionary ${dc} elementScrollBehavior 1
Create Webdriver Chrome chrome_options=${chrome_options} desired_capabilities=${dc}
Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc}
Handle Proxy Warning
[Documentation] Handle Intermediate Warnings from Proxies
${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_TITLE}
Return From Keyword if '${status}' != 'PASS'
${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}
Return From Keyword if '${status}' != 'PASS'
Return From Keyword if "${GLOBAL_PROXY_WARNING_TITLE}" == ''
Return From Keyword if "${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}" == ''
${test} ${value}= Run keyword and ignore error Title Should Be ${GLOBAL_PROXY_WARNING_TITLE}
Run keyword If '${test}' == 'PASS' Click Element xpath=${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}
Run Portal Health Check
[Documentation] Runs Portal Health check
${resp}= Run Portal Get Request ${PORTAL_HEALTH_CHECK_PATH}
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['statusCode']} 200
Run Portal Get Request
[Documentation] Runs Portal Get request
[Arguments] ${data_path}
${session}= Create Session portal ${PORTAL_URL}
${uuid}= Generate UUID
${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
${resp}= Get Request portal ${data_path} headers=${headers}
Log Received response from portal ${resp.text}
[Return] ${resp}
Portal admin Login To Portal GUI
[Documentation] Logs into Portal GUI
## Setup Browser Now being managed by test case
# Setup Browser
Start Virtual Display 1920 1080
Open Browser ${PORTAL_LOGIN_URL} chrome
# Go To ${PORTAL_LOGIN_URL}
Maximize Browser Window
Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
Log Logging in to ${PORTAL_URL}${PORTAL_ENV}
# Handle Proxy Warning
Title Should Be Login
Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_PORTAL_ADMIN_USER}
Input Password xpath=//input[@ng-model='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
Click Link xpath=//a[@id='loginBtn']
Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
#Execute Javascript document.getElementById('w-ecomp-footer').style.display = 'none'
Log Logged in to ${PORTAL_URL}${PORTAL_ENV}
Portal admin Go To Portal HOME
[Documentation] Naviage to Portal Home
Go To ${PORTAL_HOME_URL}
Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Portal admin User Notifications
[Documentation] Naviage to User notification tab
Click Link xpath=//a[@id='parent-item-User-Notifications']
Wait Until Element Is Visible xpath=//h1[@class='heading-page'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Button xpath=//button[@id='button-openAddNewApp']
Click Button xpath=(//button[@id='undefined'])[1]
#Click Button xpath=//input[@id='datepicker-start']
Portal admin Add Application Admin Exiting User
[Documentation] Naviage to Admins tab
Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Link xpath=//a[@title='Admins']
Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Page Should Contain Admins
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
Click Button xpath=//button[@id='button-search-users']
Click Element xpath=//span[@id='result-uuid-0']
Click Button xpath=//button[@id='search-users-button-next']
Click Button xpath=//input[@value='Select application']
Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App' )])[1]
Click Element xpath=(//li[contains(.,'xDemo App' )])[2]
# Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Default' )])[1]
# Click Element xpath=(//li[contains(.,'Default' )])[2]
#Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App')])[1] xDemo App
Click Button xpath=//button[@id='div-updateAdminAppsRoles']
Click Element xpath=//button[@id='admin-div-ok-button']
Click Element xpath=//button[@id='div-confirm-ok-button']
Get Selenium Implicit Wait
Click Link xpath=//a[@aria-label='Admins']
Click Element xpath=//input[@id='dropdown1']
# Click Element xpath=//li[contains(.,'Default' )]
Click Element xpath=//li[contains(.,'xDemo App' )]
Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
Table Column Should Contain xpath=//*[@table-data='admins.adminsTableData'] 1 ${Existing_User}
#Element Text Should Be xpath=(//span[contains(.,'portal')])[1] ${Existing_User}
#Element Text Should Be xpath=(//span[contains(.,'demo')])[1] ${Existing_User}
Portal admin Delete Application Admin Existing User
[Documentation] Naviage to Admins tab
Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Link xpath=//a[@title='Admins']
Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Page Should Contain Admins
Click Button xpath=//button[@ng-click='toggleSidebar()']
Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
Click Element xpath=(//span[contains(.,'portal')] )[1]
#Click Element xpath=(//span[contains(.,'demo')] )[1]
Click Element xpath=//*[@id='select-app-xDemo-App']/following::i[@id='i-delete-application']
# Click Element xpath=//*[@id='select-app-Default']/following::i[@id='i-delete-application']
Click Element xpath=//button[@id='div-confirm-ok-button']
Click Button xpath=//button[@id='div-updateAdminAppsRoles']
Click Element xpath=//button[@id='admin-div-ok-button']
#Is Element Visible xpath=(//span[contains(.,'Portal')] )[2]
#Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
Element Should Not Contain xpath=//*[@table-data='admins.adminsTableData'] portal
#Element Should Not Contain xpath=//*[@table-data='admins.adminsTableData'] demo
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Portal admin Add Application admin User New user
[Documentation] Naviage to Users tab
Click Link xpath=//a[@title='Users']
Page Should Contain Users
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@id='users-button-add']
Click Button xpath=//button[@id='Create-New-User-button']
Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${App_First_Name}
Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${App_Last_Name}
Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${App_Email_Address}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${App_LoginID}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${App_Loginpwd}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${App_LoginPwdCheck}
Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
${Result}= Get Matching XPath Count xpath=//*[contains(text(),'User with same loginId already exists')]
#log ${Result}
#${type_result}= Evaluate type(${Result})
#log ${type_result}
Run Keyword if '${Result}'== 0 AdminUser does not exist already
... ELSE Goto Home Image
Set Selenium Implicit Wait 3000
Goto Home Image
Click Image xpath=//img[@alt='Onap Logo']
AdminUser does not exist already
Click Button xpath=//button[@id='next-button']
#Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-xDemo-App']
Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
Set Selenium Implicit Wait 3000
Click Button xpath=//button[@id='new-user-save-button']
Set Selenium Implicit Wait 3000
Go To ${PORTAL_HOME_PAGE}
Click Link xpath=//a[@title='Users']
Click Element xpath=//input[@id='dropdown1']
Click Element xpath=//li[contains(.,'xDemo App')]
Table Column Should Contain xpath=//*[@table-data='users.accountUsers'] 1 ${App_First_Name}
#Input Text xpath=//input[@id='input-table-search'] ${App_First_Name}
#Element Text Should Be xpath=(//span[contains(.,'demoapp')] )[1] ${App_First_Name}
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Portal admin Add Standard User New user
[Documentation] Naviage to Users tab
Click Link xpath=//a[@title='Users']
Page Should Contain Users
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@id='users-button-add']
Click Button xpath=//button[@id='Create-New-User-button']
Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${Sta_First_Name}
Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Sta_Last_Name}
Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Sta_Email_Address}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${Sta_LoginID}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Sta_Loginpwd}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${Sta_LoginPwdCheck}
Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
${Result}= Get Matching XPath Count xpath=//*[contains(text(),'User with same loginId already exists')]
#log ${Result}
#${type_result}= Evaluate type(${Result})
#log ${type_result}
Run Keyword if '${Result}'== 0 StaUser does not exist already
... ELSE Goto Home Image
Set Selenium Implicit Wait 3000
StaUser does not exist already
Click Button xpath=//button[@id='next-button']
#Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-xDemo-App']
Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
Set Selenium Implicit Wait 3000
Click Button xpath=//button[@id='new-user-save-button']
Set Selenium Implicit Wait 3000
Go To ${PORTAL_HOME_PAGE}
Click Link xpath=//a[@title='Users']
Click Element xpath=//input[@id='dropdown1']
Click Element xpath=//li[contains(.,'xDemo App')]
Table Column Should Contain xpath=//*[@table-data='users.accountUsers'] 1 ${Sta_First_Name}
#Input Text xpath=//input[@id='input-table-search'] ${Sta_First_Name}
#Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${Sta_First_Name}
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Portal admin Add Application admin User New user -Test
[Documentation] Naviage to Users tab
Click Link xpath=//a[@title='Users']
Page Should Contain Users
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@id='users-button-add']
Click Button xpath=//button[@id='Create-New-User-button']
Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${Test_First_Name}
Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Test_Last_Name}
Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Test_Email_Address}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${Test_LoginID}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Test_Loginpwd}
Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${Test_LoginPwdCheck}
Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
Click Button xpath=//button[@id='search-users-button-cancel']
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
#Click Button xpath=//button[@id='next-button']
#Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-xDemo-App']
#Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
#Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
#Set Selenium Implicit Wait 3000
#Click Button xpath=//button[@id='new-user-save-button']
#Set Selenium Implicit Wait 3000
#Go To ${PORTAL_HOME_PAGE}
#Click Link xpath=//a[@title='Users']
#Click Element xpath=//input[@id='dropdown1']
#Click Element xpath=//li[contains(.,'xDemo App')]
#Table Column Should Contain xpath=//*[@table-data='users.accountUsers'] 1 ${Test_First_Name}
#Input Text xpath=//input[@id='input-table-search'] ${Test_First_Name}
#Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${Test_First_Name}
Portal admin Add Application Admin Exiting User -APPDEMO
[Documentation] Naviage to Admins tab
Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Link xpath=//a[@title='Admins']
Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Page Should Contain Admins
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
Input Text xpath=//input[@id='input-user-search'] ${App_First_Name}
Click Button xpath=//button[@id='button-search-users']
Click Element xpath=//span[@id='result-uuid-0']
Click Button xpath=//button[@id='search-users-button-next']
Click Button xpath=//input[@value='Select application']
Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App' )])[1]
Click Element xpath=(//li[contains(.,'xDemo App' )])[2]
#Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App')])[1] xDemo App
Click Button xpath=//button[@id='div-updateAdminAppsRoles']
Click Element xpath=//button[@id='admin-div-ok-button']
Click Element xpath=//button[@id='div-confirm-ok-button']
Get Selenium Implicit Wait
Click Link xpath=//a[@aria-label='Admins']
Click Element xpath=//input[@id='dropdown1']
Click Element xpath=//li[contains(.,'xDemo App' )]
Input Text xpath=//input[@id='input-table-search'] ${App_First_Name}
#Element Text Should Be xpath=(//span[contains(.,'appdemo')])[1] ${App_First_Name}
Table Column Should Contain xpath=//*[@table-data='admins.adminsTableData'] 1 ${App_First_Name}
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Portal admin Add Standard User Existing user
[Documentation] Naviage to Users tab
Click Link xpath=//a[@title='Users']
Page Should Contain Users
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
Click Button xpath=//button[@id='button-search-users']
Click Element xpath=//span[@id='result-uuid-0']
Click Button xpath=//button[@id='next-button']
# Click Element xpath=//*[@id='div-app-name-dropdown-Default']
# Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
Click Element xpath=//div[@id='div-app-name-dropdown-xDemo-App']
Click Element xpath=//div[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
Set Selenium Implicit Wait 3000
Click Button xpath=//button[@id='new-user-save-button']
Set Selenium Implicit Wait 3000
#Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
#Select From List xpath=//input[@value='Select application'] xDemo App
#Click Link xpath=//a[@title='Users']
#Page Should Contain Users
#Focus xpath=//input[@name='dropdown1']
Go To ${PORTAL_HOME_PAGE}
Click Link xpath=//a[@title='Users']
Click Element xpath=//input[@id='dropdown1']
# Click Element xpath=//li[contains(.,'Default')]
Click Element xpath=//li[contains(.,'XDemo App')]
Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
Set Selenium Implicit Wait 3000
Portal admin Edit Standard User Existing user
[Documentation] Naviage to Users tab
Click Link xpath=//a[@title='Users']
Click Element xpath=//input[@id='dropdown1']
# Click Element xpath=//li[contains(.,'Default')]
# Set Selenium Implicit Wait 3000
Click Element xpath=//li[contains(.,'xDemo App')]
# Set Selenium Implicit Wait 3000
Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
# Click Element xpath=//*[@id='div-app-name-dropdown-Default']
# Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
# Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Portal-Notification-Admin-checkbox']
Click Element xpath=//*[@id='app-select-Standard User1']
Click Element xpath=//*[@id='app-select-Standard User1']/following::input[@id='Standard-User-checkbox']
Set Selenium Implicit Wait 3000
Click Button xpath=//button[@id='new-user-save-button']
Set Selenium Implicit Wait 3000
Page Should Contain Users
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
Click Button xpath=//button[@id='button-search-users']
Click Element xpath=//span[@id='result-uuid-0']
Click Button xpath=//button[@id='next-button']
Click Element xpath=//div[@id='app-select-Select roles1']
Click Element xpath=//div[@id='app-select-Select roles1']/following::input[@id='System-Administrator-checkbox']
Set Selenium Implicit Wait 3000
# Click Element xpath=//*[@id='app-select-Standard User1']
# Click Element xpath=//*[@id='app-select-Standard User1']/following::input[@id='System-Administrator-checkbox']
# Click Element xpath=//*[@id='div-app-name-dropdown-SDC']
# Click Element xpath=//*[@id='div-app-name-SDC']/following::input[@id='Standard-User-checkbox']
# Click Element xpath=//*[@id='div-app-name-SDC']/following::input[@id='Portal-Notification-Admin-checkbox']
Set Selenium Implicit Wait 3000
Click Button xpath=//button[@id='new-user-save-button']
Set Selenium Implicit Wait 3000
Page Should Contain Users
#Click Button xpath=//input[@id='dropdown1']
#Click Element xpath=//li[contains(.,'xDemo App')]
Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
# Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Portal Notification Admin
Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator
Set Selenium Implicit Wait 3000
Portal admin Delete Standard User Existing user
[Documentation] Naviage to Users tab
Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
# Scroll Element Into View xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
# Click Element xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
Scroll Element Into View xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
# Scroll Element Into View xpath=//*[@id='div-app-name-SDC']/following::*[@id='app-item-delete'][1]
# Click Element xpath=//*[@id='div-app-name-SDC']/following::*[@id='app-item-delete'][1]
Click Element xpath=//button[@id='div-confirm-ok-button']
Click Button xpath=//button[@id='new-user-save-button']
#Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
#Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] Portal
#Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] demo
Set Selenium Implicit Wait 3000
Functional Top Menu Get Access
[Documentation] Naviage to Support tab
Go To ${PORTAL_HOME_URL}
Click Link xpath=//a[contains(.,'Support')]
Mouse Over xpath=//*[contains(text(),'Get Access')]
Click Link xpath=//a[contains(.,'Get Access')]
Element Text Should Be xpath=//h1[contains(.,'Get Access')] Get Access
Set Selenium Implicit Wait 3000
Functional Top Menu Contact Us
[Documentation] Naviage to Support tab
Click Link xpath=//a[contains(.,'Support')]
Mouse Over xpath=//*[contains(text(),'Contact Us')]
Click Link xpath=//a[contains(.,'Contact Us')]
Element Text Should Be xpath=//h1[contains(.,'Contact Us')] Contact Us
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Portal admin Edit Functional menu
[Documentation] Naviage to Edit Functional menu tab
Click Link xpath=//a[@title='Edit Functional Menu']
Click Link xpath=.//*[@id='Manage']/div/a
Click Link xpath=.//*[@id='Design']/div/a
Click Link xpath=.//*[@id='Product_Design']/div/a
Open Context Menu xpath=//*[@id='Product_Design']/div/span
Click Link xpath=//a[@href='#add']
Input Text xpath=//input[@id='input-title'] ONAP Test
#Input Text xpath=//input[@id='input-url'] http://google.com
Click Element xpath=//input[@id='select-app']
Scroll Element Into View xpath=//li[contains(.,'xDemo App')]
Click Element xpath=//li[contains(.,'xDemo App')]
Input Text xpath=//input[@id='input-url'] http://google.com
Click Button xpath=//button[@id='button-save-continue']
#Click Button xpath=//div[@title='Select Roles']
Click Element xpath=//*[@id='app-select-Select Roles']
Click Element xpath=//input[@id='Standard-User-checkbox']
Click Element xpath=//button[@id='button-save-add']
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Click Link xpath=//a[contains(.,'Manage')]
Mouse Over xpath=//*[contains(text(),'Design')]
Set Selenium Implicit Wait 3000
Element Text Should Be xpath=//a[contains(.,'ONAP Test')] ONAP Test
Set Selenium Implicit Wait 3000
Click Image xpath=//img[@alt='Onap Logo']
Click Link xpath=//a[@title='Edit Functional Menu']
Click Link xpath=.//*[@id='Manage']/div/a
Click Link xpath=.//*[@id='Design']/div/a
Click Link xpath=.//*[@id='Product_Design']/div/a
Open Context Menu xpath=//*[@id='ONAP_Test']
Click Link xpath=//a[@href='#delete']
Set Selenium Implicit Wait 3000
Click Element xpath=//button[@id='div-confirm-ok-button']
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Click Link xpath=//a[contains(.,'Manage')]
Mouse Over xpath=//*[contains(text(),'Design')]
Set Selenium Implicit Wait 3000
Element Should Not Contain xpath=(.//*[contains(.,'Design')]/following::ul[1])[1] ONAP Test
Set Selenium Implicit Wait 3000
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Portal admin Microservice Onboarding
[Documentation] Naviage to Edit Functional menu tab
Click Link xpath=//a[@title='Microservice Onboarding']
Click Button xpath=//button[@id='microservice-onboarding-button-add']
Input Text xpath=//input[@name='name'] Test Microservice
Input Text xpath=//*[@name='desc'] Test
Click Element xpath=//input[@id='microservice-details-input-app']
Scroll Element Into View xpath=//li[contains(.,'xDemo App')]
Click Element xpath=//li[contains(.,'xDemo App')]
Click Element xpath=//*[@name='desc']
Input Text xpath=//input[@name='url'] ${PORTAL_MICRO_ENDPOINT}
Click Element xpath=//input[@id='microservice-details-input-security-type']
Scroll Element Into View xpath=//li[contains(.,'Basic Authentication')]
Click Element xpath=//li[contains(.,'Basic Authentication')]
Input Text xpath=//input[@name='username'] ${GLOBAL_PORTAL_ADMIN_USER}
Input Text xpath=//input[@name='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
Click Button xpath=//button[@id='microservice-details-save-button']
Table Column Should Contain xpath=//*[@table-data='serviceList'] 1 Test Microservice
#Element Text Should Be xpath=//*[@table-data='serviceList'] Test Microservice
Set Selenium Implicit Wait 3000
Portal admin Microservice Delete
[Documentation] Naviage to Edit Functional menu tab
Click Link xpath=//a[@title='Microservice Onboarding']
Click Button xpath=//button[@id='microservice-onboarding-button-add']
Input Text xpath=//input[@name='name'] TestMS
Input Text xpath=//*[@name='desc'] TestMS
Click Element xpath=//input[@id='microservice-details-input-app']
Scroll Element Into View xpath=//li[contains(.,'xDemo App')]
Click Element xpath=//li[contains(.,'xDemo App')]
Click Element xpath=//*[@name='desc']
Input Text xpath=//input[@name='url'] ${PORTAL_MICRO_ENDPOINT}
Click Element xpath=//input[@id='microservice-details-input-security-type']
Scroll Element Into View xpath=//li[contains(.,'Basic Authentication')]
Click Element xpath=//li[contains(.,'Basic Authentication')]
Input Text xpath=//input[@name='username'] ${GLOBAL_PORTAL_ADMIN_USER}
Input Text xpath=//input[@name='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
Click Button xpath=//button[@id='microservice-details-save-button']
Execute Javascript window.scrollTo(0,document.body.scrollHeight);
Click Element xpath=(.//*[contains(text(),'TestMS')]/following::*[@ng-click='microserviceOnboarding.deleteService(rowData)'])[1]
Click Button xpath=//button[@id="div-confirm-ok-button"]
Set Selenium Implicit Wait 3000
Portal Admin Create Widget for All users
[Documentation] Navigate to Create Widget menu tab
${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}//news_widget.zip
Wait until page contains Element xpath=//a[@title='Widget Onboarding'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Link xpath=//a[@title='Widget Onboarding']
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@id='widget-onboarding-button-add']
Input Text xpath=//*[@name='name'] ONAP-xDemo
Input Text xpath=//*[@name='desc'] ONAP xDemo
Click Element xpath=//*[@id='widgets-details-input-endpoint-url']
Scroll Element Into View xpath=//li[contains(.,'News Microservice')]
Click Element xpath=//li[contains(.,'News Microservice')]
Click Element xpath=//*[contains(text(),'Allow all user access')]/preceding::input[@ng-model='widgetOnboardingDetails.widget.allUser'][1]
Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment}
Click Button xpath=//button[@id='widgets-details-save-button']
Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Page Should Contain ONAP-xDemo
Set Selenium Implicit Wait 3000
GO TO ${PORTAL_HOME_PAGE}
Portal Admin Delete Widget for All users
[Documentation] Naviage to delete Widget menu tab
#Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
#Page Should Contain ONAP-xDemo
#Click Image xpath=//img[@alt='Onap Logo']
Click Link xpath=//a[@title='Widget Onboarding']
Click Element xpath=//input[@id='dropdown1']
Click Element xpath=//li[contains(.,'xDemo App')]
#Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/followi
#Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Element xpath=(.//*[contains(text(),'ONAP-xDemo')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1]
Click Element xpath=//button[@id='div-confirm-ok-button']
Set Selenium Implicit Wait 3000
Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-xDemo
#Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData']
#Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-xDemo
#Set Selenium Implicit Wait 3000
Portal Admin Create Widget for Application Roles
[Documentation] Naviage to Create Widget menu tab
${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}//news_widget.zip
Click Link xpath=//a[@title='Widget Onboarding']
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@id='widget-onboarding-button-add']
Input Text xpath=//*[@name='name'] ONAP-xDemo
Input Text xpath=//*[@name='desc'] ONAP xDemo
Click Element xpath=//*[@id='widgets-details-input-endpoint-url']
Scroll Element Into View xpath=//li[contains(.,'News Microservice')]
Click Element xpath=//li[contains(.,'News Microservice')]
Click element xpath=//*[@id="app-select-Select Applications"]
click element xpath=//*[@id="xDemo-App-checkbox"]
Click element xpath=//*[@name='desc']
click element xpath=//*[@id="app-select-Select Roles0"]
click element xpath=//*[@id="Standard-User-checkbox"]
Click element xpath=//*[@name='desc']
Scroll Element Into View xpath=//input[@id='widget-onboarding-details-upload-file']
Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment}
Click Button xpath=//button[@id='widgets-details-save-button']
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
#Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Link xpath=//a[@title='Widget Onboarding']
Click Element xpath=//input[@id='dropdown1']
Click Element xpath=//li[contains(.,'xDemo App')]
Page Should Contain ONAP-xDemo
Set Selenium Implicit Wait 3000
GO TO ${PORTAL_HOME_PAGE}
Portal Admin Delete Widget for Application Roles
#Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
#Page Should Contain ONAP-xDemo
#Click Image xpath=//img[@alt='Onap Logo']
Click Link xpath=//a[@title='Widget Onboarding']
Click Element xpath=//input[@id='dropdown1']
Click Element xpath=//li[contains(.,'xDemo App')]
#Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/followi
#Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click Button xpath=//button[@ng-click='toggleSidebar()']
Scroll Element Into View xpath=//*[contains(text(),'ONAP-xDemo')]/following::td[3]/div
Click Element xpath=//*[contains(text(),'ONAP-xDemo')]/following::td[3]/div
Click Element xpath=//button[@id='div-confirm-ok-button']
Set Selenium Implicit Wait 3000
Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-xDemo
#Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData']
#Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-xDemo
Set Selenium Implicit Wait 3000
Portal Admin Edit Widget
[Documentation] Naviage to Home tab
#Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1])[1]
Click Element xpath=(//h3[contains(text(),'News')]/following::span[1])[1]
Set Browser Implicit Wait 8000
#Wait Until Element Is Visible xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1] 60
Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1]
Click Link xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1]
Input Text xpath=//input[@name='title'] ONAP_VID
Input Text xpath=//input[@name='url'] http://about.att.com/news/international.html
Input Text xpath=//input[@id='widget-input-add-order'] 5
Click Link xpath=//a[contains(.,'Add New')]
Click Element xpath=//div[@id='close-button']
Element Should Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID
Click Element xpath=.//div[contains(text(),'ONAP_VID')]/following::*[contains(text(),'5')][1]/following::div[@ng-click='remove($index);'][1]
Click Element xpath=//div[@id='confirmation-button-next']
Element Should Not Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID
Click Link xpath=//a[@id='close-button']
Set Selenium Implicit Wait 3000
Portal Admin Broadcast Notifications
[Documentation] Portal Test Admin Broadcast Notifications
${CurrentDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y
${NextDay}= Get Current Date increment=48:00:00 result_format=%m/%d/%Y
${CurrentDate}= Get Current Date increment=24:00:00 result_format=%m%d%y%H%M
${AdminBroadCastMsg}= catenate ONAP VID Broadcast Automation${CurrentDate}
Go To ${PORTAL_HOME_URL}
Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Click Link xpath=//*[@id="parent-item-User-Notifications"]
Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
Click button xpath=//*[@id="button-openAddNewApp"]
Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay}
Input Text xpath=//input[@id='datepicker-end'] ${NextDay}
Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Broadcast Automation
Input Text xpath=//*[@id="user-notif-input-message"] ${AdminBroadCastMsg}
click element xpath=//*[@id="button-notification-save"]
Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
click element xpath=//*[@id="megamenu-notification-button"]
click element xpath=//*[@id="notification-history-link"]
# Notification bug, Uncomment the code when PORTAL-232 is fixed
# Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
# Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminBroadCastMsg}
Set Selenium Implicit Wait 3000
log ${AdminBroadCastMsg}
[Return] ${AdminBroadCastMsg}
Portal Admin Category Notifications
[Documentation] Portal Admin Broadcast Notifications
${CurrentDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y
${NextDay}= Get Current Date increment=48:00:00 result_format=%m/%d/%Y
# ${CurrentDay}= Get Current Date result_format=%m/%d/%Y
${CurrentDate}= Get Current Date increment=24:00:00 result_format=%m%d%y%H%M
${AdminCategoryMsg}= catenate ONAP VID Category Automation${CurrentDate}
Click Link xpath=//a[@id='parent-item-Home']
Click Link xpath=//*[@id="parent-item-User-Notifications"]
Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
Click button xpath=//*[@id="button-openAddNewApp"]
#Select Radio Button NO radio-button-no
Click Element //*[contains(text(),'Broadcast to All Categories')]/following::*[contains(text(),'No')][1]
#Select Radio Button //label[@class='radio'] radio-button-approles
Click Element xpath=//*[contains(text(),'Categories')]/following::*[contains(text(),'Application Roles')][1]
Click Element xpath=//*[contains(text(),'xDemo App')]/preceding::input[@ng-model='member.isSelected'][1]
Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay}
Input Text xpath=//input[@id='datepicker-end'] ${NextDay}
Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Category Automation
Input Text xpath=//*[@id='user-notif-input-message'] ${AdminCategoryMsg}
click element xpath=//*[@id="button-notification-save"]
Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
click element xpath=//*[@id="megamenu-notification-button"]
click element xpath=//*[@id="notification-history-link"]
# Notification bug, Uncomment the code when PORTAL-232 is fixed
# Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
# Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminCategoryMsg}
Set Selenium Implicit Wait 3000
log ${AdminCategoryMsg}
[Return] ${AdminCategoryMsg}
Portal admin Logout from Portal GUI
[Documentation] Logout from Portal GUI
Click Element xpath=//div[@id='header-user-icon']
Click Button xpath=//button[contains(.,'Log out')]
Title Should Be Login
Application admin Login To Portal GUI
[Documentation] Logs into Portal GUI
# Setup Browser Now being managed by test case
##Setup Browser
# Go To ${PORTAL_LOGIN_URL}
# Maximize Browser Window
# Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
# Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
# Log Logging in to ${PORTAL_URL}${PORTAL_ENV}
# Handle Proxy Warning
Title Should Be Login
Input Text xpath=//input[@ng-model='loginId'] ${App_LoginID}
Input Password xpath=//input[@ng-model='password'] ${App_Loginpwd}
Click Link xpath=//a[@id='loginBtn']
Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Log Logged in to ${PORTAL_URL}${PORTAL_ENV}
Application Admin Navigation Application Link Tab
[Documentation] Logs into Portal GUI as application admin
Click Link xpath=//a[@id='parent-item-Home']
Click Element xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
Page Should Contain ONAP Portal
Scroll Element Into View xpath=//i[@class='ion-close-round']
Click Element xpath=//i[@class='ion-close-round']
Set Selenium Implicit Wait 3000
#Click Element xpath=(.//span[@id='tab-Home'])[1]
Application Admin Navigation Functional Menu
[Documentation] Logs into Portal GUI as application admin
Click Link xpath=//a[contains(.,'Manage')]
Mouse Over xpath=//*[contains(text(),'Technology Insertion')]
Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')]
Page Should Contain ONAP Portal
Click Element xpath=//i[@class='ion-close-round']
Click Element xpath=(.//span[@id='tab-Home'])[1]
Application admin Add Standard User Existing user
[Documentation] Naviage to Users tab
Click Link xpath=//a[@title='Users']
Page Should Contain Users
Click Button xpath=//button[@ng-click='toggleSidebar()']
Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
Click Button xpath=//button[@id='button-search-users']
Click Element xpath=//span[@id='result-uuid-0']
Click Button xpath=//button[@id='next-button']
Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
# Click Element xpath=//*[@id='div-app-name-dropdown-Default']
# Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
# Set Selenium Implicit Wait 3000
Click Button xpath=//button[@id='new-user-save-button']
Set Selenium Implicit Wait 3000
#Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
#Select From List xpath=//input[@value='Select application'] xDemo App
#Click Link xpath=//a[@title='Users']
#Page Should Contain Users
Go To ${PORTAL_HOME_PAGE}
Set Selenium Implicit Wait 3000
Click Link xpath=//a[@title='Users']
Click Element xpath=//input[@id='dropdown1']
#Click Element xpath=//li[contains(.,'Default')]
Click Element xpath=//li[contains(.,'xDemo App')]
Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
# Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Account Administrator
Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
Application admin Edit Standard User Existing user
[Documentation] Naviage to Users tab
Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
# Click Element xpath=//*[@id='div-app-name-dropdown-Default']
# Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
# Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Portal-Notification-Admin-checkbox']
Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='System-Administrator-checkbox']
Set Selenium Implicit Wait 3000
Click Button xpath=//button[@id='new-user-save-button']
Set Selenium Implicit Wait 3000
Page Should Contain Users
#Click Button xpath=//input[@id='dropdown1']
#Click Element xpath=//li[contains(.,'xDemo App')]
Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
# Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Account Administrator
Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator
Application admin Delete Standard User Existing user
[Documentation] Naviage to Users tab
Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
# Scroll Element Into View xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
# Click Element xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
Scroll Element Into View xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
Click Element xpath=//button[@id='div-confirm-ok-button']
Click Button xpath=//button[@id='new-user-save-button']
# Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
# Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] Portal
#Click Image xpath=//img[@alt='Onap Logo']
Set Selenium Implicit Wait 3000
Application admin Logout from Portal GUI
[Documentation] Logout from Portal GUI
Click Element xpath=//div[@id='header-user-icon']
#Set Selenium Implicit Wait 3000
Click Button xpath=//button[contains(text(),'Log out')]
#Set Selenium Implicit Wait 3000
Title Should Be Login
Standared user Login To Portal GUI
[Documentation] Logs into Portal GUI
# Setup Browser Now being managed by test case
##Setup Browser
# Go To ${PORTAL_LOGIN_URL}
# Maximize Browser Window
# Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
# Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
# Log Logging in to ${PORTAL_URL}${PORTAL_ENV}
# Handle Proxy Warning
Title Should Be Login
Input Text xpath=//input[@ng-model='loginId'] ${Sta_LoginID}
Input Password xpath=//input[@ng-model='password'] ${Sta_Loginpwd}
Click Link xpath=//a[@id='loginBtn']
Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Log Logged in to ${PORTAL_URL}${PORTAL_ENV}
Standared user Navigation Application Link Tab
[Documentation] Logs into Portal GUI as application admin
#Portal admin Go To Portal HOME
Click Element xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
Page Should Contain ONAP Portal
Click Element xpath=(.//span[@id='tab-Home'])[1]
Set Selenium Implicit Wait 3000
Standared user Navigation Functional Menu
[Documentation] Logs into Portal GUI as application admin
Click Link xpath=//a[contains(.,'Manage')]
Mouse Over xpath=//*[contains(text(),'Technology Insertion')]
Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')]
Page Should Contain Welcome to VID
Click Element xpath=(.//span[@id='tab-Home'])[1]
Set Selenium Implicit Wait 3000
Standared user Broadcast Notifications
[Documentation] Logs into Portal GUI as application admin
[Arguments] ${AdminBroadCastMsg}
Click element xpath=//*[@id='megamenu-notification-button']
Click element xpath=//*[@id='notification-history-link']
Wait until Element is visible xpath=//*[@id='app-title'] timeout=10
Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminBroadCastMsg}
log ${AdminBroadCastMsg}
Standared user Category Notifications
[Documentation] Logs into Portal GUI as application admin
[Arguments] ${AdminCategoryMsg}
#click element xpath=//*[@id='megamenu-notification-button']
#click element xpath=//*[@id="notification-history-link"]
Wait until Element is visible xpath=//*[@id='app-title'] timeout=10
Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminCategoryMsg}
log ${AdminCategoryMsg}
Standared user Logout from Portal GUI
[Documentation] Logout from Portal GUI
Click Element xpath=//div[@id='header-user-icon']
Click Button xpath=//button[contains(.,'Log out')]
#Confirm Action
Title Should Be Login
Portal admin Add New Account
Click Link //*[@id="parent-item-App-Account-Management"]
Click Button xpath=//button[@ng-click='toggleSidebar()']
Set Selenium Implicit Wait 3000
Click Button //*[@id="account-onboarding-button-add"]
Set Selenium Implicit Wait 3000
Input Text //*[@id="account-details-input-name"] ${AppAccountName}
Input Text //*[@id="account-details-input-username"] ${AppUserName}
Input Text //*[@id="account-details-input-password"] ${AppPassword}
Input Text //*[@id="account-details-input-repassword"] ${AppPassword}
# Click Button xpath=//*[@ng-click='accountAddDetails.saveChanges()']
# #Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
#account-details-next-button
Click Button xpath=//button[@ng-click='accountAddDetails.saveChanges()']
Portal admin Delete Account
Click Link //*[@id="parent-item-App-Account-Management"]
Click Button xpath=//button[@ng-click='toggleSidebar()']
Set Selenium Implicit Wait 3000
Click Button //*[@id="account-onboarding-button-add"]
Set Selenium Implicit Wait 3000
Tear Down
[Documentation] Close all browsers
Close All Browsers
Enhanced Notification on ONAP Portal
[Documentation] Runs portal Post request
[Arguments] ${data_path} ${data}
# Log Creating session ${GLOBAL_PORTAL_SERVER_URL}
${session}= Create Session portal ${PORTAL_URL}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic amlyYTpfcGFzcw== username=jira password=_pass
${resp}= Post Request portal ${data_path} data=${data} headers=${headers}
# Log Received response from portal ${resp.text}
[Return] ${resp}
Notification on ONAP Portal
[Documentation] Create Config portal
${configportal}= Create Dictionary jira_id=${jira}
${output} = Fill JSON Template File ${portal_Template} ${configportal}
${post_resp} = Enhanced Notification on ONAP Portal ${RESOURCE_PATH} ${output}
Should Be Equal As Strings ${post_resp.status_code} 200
Portal Application Account Management
[Documentation] Naviage to Application Account Management tab
Click Link xpath=//a[@title='App Account Management']
Click Button xpath=//button[@id='account-onboarding-button-add']
Input Text xpath=//input[@name='name'] JIRA
Input Text xpath=//input[@name='username'] jira
Input Text xpath=//input[@name='password'] _pass
Input Text xpath=//input[@name='repassword'] _pass
Click Element xpath=//div[@ng-click='accountAddDetails.saveChanges()']
Element Text Should Be xpath=//*[@table-data='serviceList'] JIRA
Portal Application Account Management validation
[Documentation] Naviage to user notification tab
Click Link xpath=//a[@id='parent-item-User-Notifications']
click element xpath=//*[@id="megamenu-notification-button"]
Click element xpath=//*[@id="notification-history-link"]
Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
Table Column Should Contain xpath=//*[@id="notification-history-table"] 1 JIRA
Portal AAF new fields
[Documentation] Naviage to user Application details tab
Click Link xpath=//a[@title='Application Onboarding']
Click Element xpath=//td[contains(.,'xDemo App')]
Page Should Contain Name Space
Page Should Contain Centralized
Click Element xpath=//button[@id='button-notification-cancel']
Admin widget download
Go To ${PORTAL_HOME_URL}
Wait until page contains Element xpath=//a[@title='Widget Onboarding'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
click Link xpath=//a[@title='Widget Onboarding']
Wait until page contains Element xpath=//table[@class='ng-scope']
${td_id}= get element attribute xpath=//*[contains(text(),'Events')]@id
log ${td_id}
${test}= Get Substring ${td_id} -1
log ${test}
${download_link_id}= Catenate 'widget-onboarding-div-download-widget-${test}'
click Element xpath=//*[@id=${download_link_id}]
Reset widget layout option
Go To ${PORTAL_HOME_URL}
Wait Until Page Contains Element xpath=//div[@id='widget-boarder'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Execute Javascript document.getElementById('widgets').scrollTo(0,1400)
Wait Until Page Contains Element xpath=//*[@id='widget-gridster-Events-icon'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Execute Javascript document.getElementById('widgets').scrollTo(0,1800)
Drag And Drop By Offset xpath=//*[@id='widget-gridster-Events-icon'] 500 500
Execute Javascript document.getElementById('widgets').scrollTo(0,document.getElementById('widgets').scrollHeight);
Execute Javascript document.getElementById('dashboardDefaultPreference').click()
Execute Javascript document.getElementById('div-confirm-ok-button').click()