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.htm
14 ${VID_HEALTHCHECK_PATH} ${VID_ENV}/api/v2/users
15 ${VID_HOME_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/welcome.htm
16 ${VID_SERVICE_MODELS_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/serviceModels.htm#/models/services
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']}
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}
38 [Documentation] Logs in to VID GUI
39 # Setup Browser Now being managed by test case
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}
48 Input Text xpath=//input[@id='loginId'] ${GLOBAL_VID_USERNAME}
49 Input Password xpath=//input[@id='password'] ${GLOBAL_VID_PASSWORD}
50 Click Button xpath=//input[@id='loginBtn']
51 Wait Until Page Contains Welcome to VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
52 Log Logged in to ${GLOBAL_VID_SERVER}${VID_ENV}
55 [Documentation] Naviage to VID Home
57 Wait Until Page Contains Welcome to VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
59 Go 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}
64 Click On Button When Enabled
65 [Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
66 Wait Until Page Contains Element xpath=${xpath} ${timeout}
67 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
68 Click Button xpath=${xpath}
70 Click On Element When Visible
71 [Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
72 Wait Until Page Contains Element xpath=${xpath} ${timeout}
73 Wait Until Element Is Visible xpath=${xpath} ${timeout}
74 Click Element xpath=${xpath}
76 Select From List 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 Select From List xpath=${xpath} ${value}
82 Input Text When Enabled
83 [Arguments] ${xpath} ${value} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
84 Wait Until Page Contains Element xpath=${xpath} ${timeout}
85 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
86 Input Text xpath=${xpath} ${value}
89 [Arguments] ${mso_response_text}
90 ${request_list}= Split String ${mso_response_text} 202)\n 1
91 ${clean_string}= Replace String ${request_list[1]} \n ${empty}
92 ${json}= To Json ${clean_string}
93 ${request_id}= Catenate ${json['requestReferences']['requestId']}
94 [Return] ${request_id}
97 [Arguments] ${mso_response_text}
98 ${request_list}= Split String ${mso_response_text} 202)\n 1
99 ${json}= To Json ${request_list[1]}
100 ${request_id}= Catenate ${json['requestReferences']['instanceId']}
101 [Return] ${request_id}