blob: 95b0de970e92b83cf3b1ca860fd89ddbcd6f4e2f [file] [log] [blame]
*** Settings ***
Documentation The main interface for interacting with Portal. It handles low level stuff like managing the http request library and Portal required fields
Library RequestsLibrary
Library ONAPLibrary.Utilities
Library SeleniumLibrary
Library Collections
Library String
Resource global_properties.robot
Resource browser_setup.robot
*** Variables ***
${PORTAL_HEALTH_CHECK_PATH} /ONAPPORTAL/portalApi/healthCheck
${PORTAL_ENDPOINT} ${GLOBAL_PORTAL_SERVER_PROTOCOL}://${GLOBAL_INJECTED_PORTAL_IP_ADDR}:${GLOBAL_PORTAL_SERVER_PORT}
#${PORTAL_GUI_ENDPOINT} ${GLOBAL_PORTAL_SERVER_PROTOCOL}://portal.api.simpledemo.onap.org:${GLOBAL_PORTAL_SERVER_PORT}
#${PORTAL_GUI_ENDPOINT} ${GLOBAL_PORTAL_SERVER_PROTOCOL}://portal-app.onap:${GLOBAL_PORTAL_SERVER_PORT}
${PORTAL_GUI_ENDPOINT} https://portal.api.simpledemo.onap.org:30225
${PORTAL_ENV} /ONAPPORTAL
${PORTAL_LOGIN_URL} ${PORTAL_GUI_ENDPOINT}${PORTAL_ENV}/login.htm
${PORTAL_HOME_URL} ${PORTAL_GUI_ENDPOINT}${PORTAL_ENV}/applicationsHome
*** Keywords ***
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_ENDPOINT}
${uuid}= Generate UUID4
${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}
Run Portal Login Tests
[Documentation] Runs Portal Login Tests
Close All Browsers
Login To Portal GUI demo demo123456!
Close All Browsers
Login To Portal GUI cs0008 demo123456!
Close All Browsers
Login To Portal GUI jm0007 demo123456!
Close All Browsers
Login To Portal GUI gv0001 demo123456!
Close All Browsers
Login To Portal GUI op0001 demo123456!
Close All Browsers
Run Portal Application Access Tests
[Documentation] Runs Portal Application Access Tests
Log Testing SDC,VID,Policy console=yes
${status} ${resp} Run Keyword And Ignore Error Run Portal Application Login Test cs0008 demo123456! gridster-SDC-icon-link tabframe-SDC Welcome to SDC
Log SDC ${status} console=yes
Close All Browsers
${status} ${resp} Run Keyword And Ignore Error Run Portal Application Login Test demo demo123456! gridster-Virtual-Infrastructure-Deployment-icon-link tabframe-Virtual-Infrastructure-Deployment Welcome to VID
Log VID ${status} console=yes
Close All Browsers
${status} ${resp} Run Keyword And Ignore Error Run Portal Application Login Test demo demo123456! gridster-A&AI-UI-icon-link tabframe-A&AI-UI A&AI
Log A&AI UI ${status} console=yes
Close All Browsers
${status} ${resp} Run Keyword And Ignore Error Run Portal Application Login Test demo demo123456! gridster-Policy-icon-link tabframe-Policy Policy Editor
Log Policy ${status} console=yes
Close All Browsers
${status} ${resp} Run Keyword And Ignore Error Run Portal Application Login Test demo demo123456! gridster-SO-Monitoring-icon-link tabframe-SO-Monitoring SO
Log SO-Monitoring ${status} console=yes
Close All Browsers
Login To Portal GUI And Go Home
[Documentation] Logs in to Portal GUI
[Arguments] ${loginId} ${password}
Login To Portal GUI ${loginId} ${password}
Go To Portal HOME
Login To Portal GUI
[Documentation] Logs in to Portal GUI
[Arguments] ${loginId} ${password}
# Setup Browser Now being managed by test case
### revert to local Setup Browser for Login test
Setup Browser
Go To ${PORTAL_LOGIN_URL}
Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
Log Logging in to ${PORTAL_ENDPOINT}${PORTAL_ENV}
Handle Proxy Warning
Title Should Be Login
Log Source
Input Text xpath=//input[@ng-model='loginId'] ${loginId}
Input Password xpath=//input[@ng-model='password'] ${password}
Click Element xpath=//a[@id='loginBtn']
Sleep 5s
#Go To ${PORTAL_HOME_URL}
#Wait Until Page Contains Applications ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Wait Until Page Contains Applications 30
Log Logged in to ${PORTAL_ENDPOINT}${PORTAL_ENV}
Log ${loginId} SUCCESS
Logout From Portal GUI
[Documentation] Logs out of Portal GUI
Go To ${PORTAL_LOGIN_URL}
Click Element xpath=//div[@id='header-user-icon']
Run Keyword And Ignore Error Click Button xpath=//button[contains(.,'Log out')]
Log Logged out of ${PORTAL_ENDPOINT}${PORTAL_ENV}
Run Portal Application Login Test
[Documentation] Login to Portal Application
[Arguments] ${loginId} ${password} ${click_element} ${tabframe} ${match_string}
# Setup Browser Now being managed by test case
### revert to local Setup Browser for Login test
Setup Browser
Set Window Size 2000 1000
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_ENDPOINT}${PORTAL_ENV}
Handle Proxy Warning
Title Should Be Login
Input Text xpath=//input[@ng-model='loginId'] ${loginId}
Input Password xpath=//input[@ng-model='password'] ${password}
Click Element xpath=//a[@id='loginBtn']
Sleep 5s
#Go To ${PORTAL_HOME_URL}
Wait Until Page Contains Applications ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Log Logged in to ${PORTAL_ENDPOINT}${PORTAL_ENV}
Log ${loginId} SUCCESS
Sleep 5
Click Element id=${click_element}
Sleep 5
Select Frame id=${tabframe}
Sleep 5
Wait Until Page Contains ${match_string} 60
Go To Portal HOME
[Documentation] Naviage to Portal Home
Go To ${PORTAL_HOME_URL}
Wait Until Page Contains Applications ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Click On Button When Enabled
[Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
Wait Until Page Contains Element xpath=${xpath} ${timeout}
Wait Until Element Is Enabled xpath=${xpath} ${timeout}
Click Button xpath=${xpath}
Click On Element When Visible
[Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
Wait Until Page Contains Element xpath=${xpath} ${timeout}
Wait Until Element Is Visible xpath=${xpath} ${timeout}
Click Element xpath=${xpath}
Select From List When Enabled
[Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
Wait Until Page Contains Element xpath=${xpath} ${timeout}
Wait Until Element Is Enabled xpath=${xpath} ${timeout}
Select From List By Label xpath=${xpath} ${value}
Input Text When Enabled
[Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
Wait Until Page Contains Element xpath=${xpath} ${timeout}
Wait Until Element Is Enabled xpath=${xpath} ${timeout}
Input Text xpath=${xpath} ${value}