blob: cb625d4789b6672bf8087527d0501a47a2782614 [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
13${VID_LOGIN_URL} ${GLOBAL_VID_SERVER}${VID_ENV}/login_external.htm
Jerry Flood5db693b2017-05-24 08:52:39 -040014${VID_HEALTHCHECK_PATH} ${VID_ENV}/api/v2/users
DR695Hccff30b2017-02-17 18:44:24 -050015${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}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040034 [Return] ${resp}
35
DR695Hccff30b2017-02-17 18:44:24 -050036Login 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']
Jerry Floodf67ce0e2017-03-20 16:59:23 -040050 Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
DR695Hccff30b2017-02-17 18:44:24 -050051 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}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040056 Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
57
DR695Hccff30b2017-02-17 18:44:24 -050058Click On Button When Enabled
Jerry Floodf67ce0e2017-03-20 16:59:23 -040059 [Arguments] ${xpath} ${timeout}=${GLOBAL_VID_UI_TIMEOUT_MEDIUM}
DR695Hccff30b2017-02-17 18:44:24 -050060 Wait Until Page Contains Element xpath=${xpath} ${timeout}
61 Wait Until Element Is Enabled xpath=${xpath} ${timeout}
62 Click Button xpath=${xpath}
63
DR695Hccff30b2017-02-17 18:44:24 -050064Click On Element When Visible
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 Visible xpath=${xpath} ${timeout}
68 Click Element xpath=${xpath}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040069
DR695Hccff30b2017-02-17 18:44:24 -050070Select From List When Enabled
Jerry Floodf67ce0e2017-03-20 16:59:23 -040071 [Arguments] ${xpath} ${value} ${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 Enabled xpath=${xpath} ${timeout}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040074 Select From List xpath=${xpath} ${value}
75
76Input Text When Enabled
77 [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}
80 Input Text xpath=${xpath} ${value}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040081
DR695Hccff30b2017-02-17 18:44:24 -050082Parse Request Id
Jerry Floodf67ce0e2017-03-20 16:59:23 -040083 [Arguments] ${mso_response_text}
DR695Hccff30b2017-02-17 18:44:24 -050084 ${request_list}= Split String ${mso_response_text} 202)\n 1
Jerry Floodf67ce0e2017-03-20 16:59:23 -040085 ${clean_string}= Replace String ${request_list[1]} \n ${empty}
86 ${json}= To Json ${clean_string}
DR695Hccff30b2017-02-17 18:44:24 -050087 ${request_id}= Catenate ${json['requestReferences']['requestId']}
88 [Return] ${request_id}
Jerry Floodf67ce0e2017-03-20 16:59:23 -040089
DR695Hccff30b2017-02-17 18:44:24 -050090Parse Instance Id
Jerry Floodf67ce0e2017-03-20 16:59:23 -040091 [Arguments] ${mso_response_text}
DR695Hccff30b2017-02-17 18:44:24 -050092 ${request_list}= Split String ${mso_response_text} 202)\n 1
Jerry Floodf67ce0e2017-03-20 16:59:23 -040093 ${json}= To Json ${request_list[1]}
DR695Hccff30b2017-02-17 18:44:24 -050094 ${request_id}= Catenate ${json['requestReferences']['instanceId']}
95 [Return] ${request_id}