blob: 788df0aa7d6f5f7707e2a3c101958ff39a7402b0 [file] [log] [blame]
DR695Hccff30b2017-02-17 18:44:24 -05001*** Settings ***
2Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps
3Library ExtendedSelenium2Library
4Library Collections
5Library String
6Library RequestsLibrary
Jerry Floodf67ce0e2017-03-20 16:59:23 -04007Library UUID
DR695Hccff30b2017-02-17 18:44:24 -05008Resource ../global_properties.robot
9Resource ../browser_setup.robot
10
11*** Variables ***
12${VID_ENV} /vid
Jerry Floodedbeafb2017-06-01 17:05:42 -040013${VID_LOGIN_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/login.htm
Jerry Flood5db693b2017-05-24 08:52:39 -040014${VID_HEALTHCHECK_PATH} ${VID_ENV}/api/v2/users
Jerry Floodedbeafb2017-06-01 17:05:42 -040015${VID_HOME_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/welcome.htm
16${VID_SERVICE_MODELS_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/serviceModels.htm#/models/services
DR695Hccff30b2017-02-17 18:44:24 -050017
18*** Keywords ***
19Run VID Health Check
20 [Documentation] Logs in to VID GUI
21 ${resp}= Run VID Get Request ${VID_HEALTHCHECK_PATH}
22 Should Be Equal As Strings ${resp.status_code} 200
23 Should Be String ${resp.json()[0]['loginId']}
24
25Run VID Get Request
26 [Documentation] Runs an VID get request
27 [Arguments] ${data_path}
28 ${auth}= Create List ${GLOBAL_VID_HEALTH_USERNAME} ${GLOBAL_VID_HEALTH_PASSWORD}
29 Log Creating session ${GLOBAL_VID_SERVER}
30 ${session}= Create Session vid ${GLOBAL_VID_SERVER} auth=${auth}
31 ${uuid}= Generate UUID
32 ${headers}= Create Dictionary username=${GLOBAL_VID_HEALTH_USERNAME} password=${GLOBAL_VID_HEALTH_PASSWORD} Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
33 ${resp}= Get Request vid ${data_path} headers=${headers}
34 Log Received response from vid ${resp.text}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040035 [Return] ${resp}
36
DR695Hccff30b2017-02-17 18:44:24 -050037Login To VID GUI
38 [Documentation] Logs in to VID GUI
39 # Setup Browser Now being managed by test case
40 ##Setup Browser
41 Go To ${VID_LOGIN_URL}
42 Maximize Browser Window
43 Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
44 Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
45 Log Logging in to ${GLOBAL_VID_SERVER}${VID_ENV}
46 Handle Proxy Warning
Jerry Floodedbeafb2017-06-01 17:05:42 -040047 Title Should Be Login
48 Input Text xpath=//input[@id='loginId'] ${GLOBAL_VID_USERNAME}
49 Input Password xpath=//input[@id='password'] ${GLOBAL_VID_PASSWORD}
DR695Hccff30b2017-02-17 18:44:24 -050050 Click Button xpath=//input[@id='loginBtn']
Jerry Floodedbeafb2017-06-01 17:05:42 -040051 Wait Until Page Contains Welcome to VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
DR695Hccff30b2017-02-17 18:44:24 -050052 Log Logged in to ${GLOBAL_VID_SERVER}${VID_ENV}
53
54Go To VID HOME
55 [Documentation] Naviage to VID Home
56 Go To ${VID_HOME_URL}
Jerry Floodedbeafb2017-06-01 17:05:42 -040057 Wait Until Page Contains Welcome to VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
58
59Go To VID Browse Service Models
60 [Documentation] Naviage to VID Browse Service Models
61 Go To ${VID_SERVICE_MODELS_URL}
62 Wait Until Page Contains Browse SDC Service Models ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040063
DR695Hccff30b2017-02-17 18:44:24 -050064Click On Button When Enabled
Jerry Floodf67ce0e2017-03-20 16:59:23 -040065 [Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
DR695Hccff30b2017-02-17 18:44:24 -050066 Wait Until Page Contains Element xpath=${xpath} ${timeout}
67 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
68 Click Button xpath=${xpath}
69
DR695Hccff30b2017-02-17 18:44:24 -050070Click On Element When Visible
Jerry Floodf67ce0e2017-03-20 16:59:23 -040071 [Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
DR695Hccff30b2017-02-17 18:44:24 -050072 Wait Until Page Contains Element xpath=${xpath} ${timeout}
73 Wait Until Element Is Visible xpath=${xpath} ${timeout}
74 Click Element xpath=${xpath}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040075
DR695Hccff30b2017-02-17 18:44:24 -050076Select From List When Enabled
Jerry Floodf67ce0e2017-03-20 16:59:23 -040077 [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
DR695Hccff30b2017-02-17 18:44:24 -050078 Wait Until Page Contains Element xpath=${xpath} ${timeout}
79 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040080 Select From List xpath=${xpath} ${value}
81
82Input Text When Enabled
83 [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
DR695Hccff30b2017-02-17 18:44:24 -050084 Wait Until Page Contains Element xpath=${xpath} ${timeout}
85 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
86 Input Text xpath=${xpath} ${value}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040087
DR695Hccff30b2017-02-17 18:44:24 -050088Parse Request Id
Jerry Floodf67ce0e2017-03-20 16:59:23 -040089 [Arguments] ${mso_response_text}
DR695Hccff30b2017-02-17 18:44:24 -050090 ${request_list}= Split String ${mso_response_text} 202)\n 1
Jerry Floodf67ce0e2017-03-20 16:59:23 -040091 ${clean_string}= Replace String ${request_list[1]} \n ${empty}
92 ${json}= To Json ${clean_string}
DR695Hccff30b2017-02-17 18:44:24 -050093 ${request_id}= Catenate ${json['requestReferences']['requestId']}
94 [Return] ${request_id}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040095
DR695Hccff30b2017-02-17 18:44:24 -050096Parse Instance Id
Jerry Floodf67ce0e2017-03-20 16:59:23 -040097 [Arguments] ${mso_response_text}
DR695Hccff30b2017-02-17 18:44:24 -050098 ${request_list}= Split String ${mso_response_text} 202)\n 1
Jerry Floodf67ce0e2017-03-20 16:59:23 -040099 ${json}= To Json ${request_list[1]}
DR695Hccff30b2017-02-17 18:44:24 -0500100 ${request_id}= Catenate ${json['requestReferences']['instanceId']}
101 [Return] ${request_id}