diff options
Diffstat (limited to 'tests/portal/testsuites/test1.robot')
-rw-r--r-- | tests/portal/testsuites/test1.robot | 1185 |
1 files changed, 1185 insertions, 0 deletions
diff --git a/tests/portal/testsuites/test1.robot b/tests/portal/testsuites/test1.robot new file mode 100644 index 00000000..d0fef06a --- /dev/null +++ b/tests/portal/testsuites/test1.robot @@ -0,0 +1,1185 @@ +*** 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_XDEMPAPP_REST_URL} http://portal-sdk:8080/ONAPPORTALSDK/api/v2 +${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} 45 +${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 Change REST URL Of X-DemoApp +# [Documentation] Portal Change REST URL Of X-DemoApp +# Portal Change REST URL + +#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 + +##EP Create Portal Admin +# #Add Portal Admin + +##EP Portal Admin delete +# #Delete Portal Admin + +#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='app-select-Select roles1'] + Click Element xpath=//div[@id='app-select-Select roles1']/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] + Set Selenium Implicit Wait 9000 + 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'] + Set Selenium Implicit Wait 3000 + +Portal Change REST URL + [Documentation] Naviage to user Application details tab + Click Link xpath=//a[@title='Application Onboarding'] + Click Element xpath=//td[contains(.,'xDemo App')] + Input Text xpath=//input[@name='restUrl'] ${PORTAL_XDEMPAPP_REST_URL} + Click Element xpath=//button[@id='button-save-app'] + Set Selenium Implicit Wait 6000 + Go To ${PORTAL_HOME_PAGE} + Wait Until Element Is Visible xpath=//a[@title='Application Onboarding'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + +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() + +Add Portal Admin + Click Link xpath=//a[@id='parent-item-Portal-Admins'] + Scroll Element Into View xpath=//button[@id='portal-admin-button-add'] + Click Button xpath=//button[@id='portal-admin-button-add'] + Input Text xpath=//input[@id='input-user-search'] ${Existing_User} + Click Button xpath=//button[@id='button-search-users'] + Wait Until Page Contains Element xpath=//span[@id='result-uuid-0'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} + Click Element xpath=//span[@id='result-uuid-0'] + Click Button xpath=//button[@id='pa-search-users-button-save'] + Click Button xpath=//button[@id='admin-div-ok-button'] + + +Delete Portal Admin + Wait Until Page Does Not Contain Element xpath=//*[@class='b2b-modal-header'] + Click Link xpath=//a[@id='parent-item-Portal-Admins'] + Click Element xpath=//td[contains(.,'portal')]/following::span[@id='1-button-portal-admin-remove'] + Click Button xpath=//*[@id='div-confirm-ok-button'] |