blob: 78b81484c82c5b2e348ac52643cae103cdfd5793 [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
7Library UUID
8Resource ../global_properties.robot
9Resource ../browser_setup.robot
10
11*** Variables ***
12${VID_ENV} /vid
13${VID_LOGIN_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/login_external.htm
14${VID_HEALTHCHECK_PATH} ${VID_ENV}/api/users
15${VID_HOME_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/vidhome.htm
16
17*** Keywords ***
18Run VID Health Check
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']}
23
24Run VID Get Request
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}
34 [Return] ${resp}
35
36Login To VID GUI
37 [Documentation] Logs in to VID GUI
38 # Setup Browser Now being managed by test case
39 ##Setup Browser
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}
45 Handle Proxy Warning
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}
52
53Go To VID HOME
54 [Documentation] Naviage to VID Home
55 Go To ${VID_HOME_URL}
56 Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
57
58Click On Button When Enabled
59 [Arguments] ${xpath} ${timeout}=60s
60 Wait Until Page Contains Element xpath=${xpath} ${timeout}
61 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
62 Click Button xpath=${xpath}
63
64Click On Button When Visible
65 [Arguments] ${xpath} ${timeout}=60s
66 Wait Until Page Contains Element xpath=${xpath} ${timeout}
67 Wait Until Element Is Visible xpath=${xpath} ${timeout}
68 Click Button xpath=${xpath}
69
70Click On Element When Visible
71 [Arguments] ${xpath} ${timeout}=60s
72 Wait Until Page Contains Element xpath=${xpath} ${timeout}
73 Wait Until Element Is Visible xpath=${xpath} ${timeout}
74 Click Element xpath=${xpath}
75
76Select From List When Enabled
77 [Arguments] ${xpath} ${value} ${timeout}=60s
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}
81
82Input Text When Enabled
83 [Arguments] ${xpath} ${value} ${timeout}=60s
84 Wait Until Page Contains Element xpath=${xpath} ${timeout}
85 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
86 Input Text xpath=${xpath} ${value}
87
88Parse Request Id
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}
95
96Parse Instance 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}