*** 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 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! ${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 *** 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 #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 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} 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} 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 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='Portal-Notification-Admin-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] 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 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 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'] Table Column Should Contain xpath=//*[@table-data='serviceList'] 1 TestMS 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 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(.,'Test Microservice')] Click Element xpath=//li[contains(.,'Test 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(.,'Test Microservice')] Click Element xpath=//li[contains(.,'Test 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 Roles"] 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} 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"] 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"] 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'] Set Selenium Implicit Wait 3000 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 #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(.,'xDemo App')] Input Text xpath=//input[@id='input-table-search'] ${Existing_User} 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='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] 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 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']