2 Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps
3 Library ExtendedSelenium2Library
6 Library RequestsLibrary
8 Resource ../global_properties.robot
9 Resource ../browser_setup.robot
13 ${VID_LOGIN_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/login_external.htm
14 ${VID_HEALTHCHECK_PATH} ${VID_ENV}/api/v2/users
15 ${VID_HOME_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/vidhome.htm
19 [Documentation] Logs in to VID GUI
20 ${resp}= Run VID Get Request ${VID_HEALTHCHECK_PATH}
21 Should Be Equal As Strings ${resp.status_code} 200
22 Should Be String ${resp.json()[0]['loginId']}
25 [Documentation] Runs an VID get request
26 [Arguments] ${data_path}
27 ${auth}= Create List ${GLOBAL_VID_HEALTH_USERNAME} ${GLOBAL_VID_HEALTH_PASSWORD}
28 Log Creating session ${GLOBAL_VID_SERVER}
29 ${session}= Create Session vid ${GLOBAL_VID_SERVER} auth=${auth}
30 ${uuid}= Generate UUID
31 ${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}
32 ${resp}= Get Request vid ${data_path} headers=${headers}
33 Log Received response from vid ${resp.text}
37 [Documentation] Logs in to VID GUI
38 # Setup Browser Now being managed by test case
40 Go To ${VID_LOGIN_URL}
41 Maximize Browser Window
42 Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
43 Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
44 Log Logging in to ${GLOBAL_VID_SERVER}${VID_ENV}
46 Title Should Be VID Login
47 Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_VID_USERNAME}
48 Input Password xpath=//input[@ng-model='password'] ${GLOBAL_VID_PASSWORD}
49 Click Button xpath=//input[@id='loginBtn']
50 Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
51 Log Logged in to ${GLOBAL_VID_SERVER}${VID_ENV}
54 [Documentation] Naviage to VID Home
56 Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
58 Click On Button When Enabled
59 [Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
60 Wait Until Page Contains Element xpath=${xpath} ${timeout}
61 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
62 Click Button xpath=${xpath}
64 Click On Element When Visible
65 [Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
66 Wait Until Page Contains Element xpath=${xpath} ${timeout}
67 Wait Until Element Is Visible xpath=${xpath} ${timeout}
68 Click Element xpath=${xpath}
70 Select From List When Enabled
71 [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
72 Wait Until Page Contains Element xpath=${xpath} ${timeout}
73 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
74 Select From List xpath=${xpath} ${value}
76 Input Text When Enabled
77 [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
78 Wait Until Page Contains Element xpath=${xpath} ${timeout}
79 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
80 Input Text xpath=${xpath} ${value}
83 [Arguments] ${mso_response_text}
84 ${request_list}= Split String ${mso_response_text} 202)\n 1
85 ${clean_string}= Replace String ${request_list[1]} \n ${empty}
86 ${json}= To Json ${clean_string}
87 ${request_id}= Catenate ${json['requestReferences']['requestId']}
88 [Return] ${request_id}
91 [Arguments] ${mso_response_text}
92 ${request_list}= Split String ${mso_response_text} 202)\n 1
93 ${json}= To Json ${request_list[1]}
94 ${request_id}= Catenate ${json['requestReferences']['instanceId']}
95 [Return] ${request_id}