*** 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 RequestsClientCert
-Library RequestsLibrary
-Library UUID
+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 global_properties.robot
+Resource browser_setup.robot
*** Variables ***
-${PORTAL_HEALTH_CHECK_PATH} /ECOMPPORTAL/portalApi/healthCheck
+${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}
+ ${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 UUID
+ ${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}