-
Notifications
You must be signed in to change notification settings - Fork 783
Expand file tree
/
Copy pathcookies.robot
More file actions
139 lines (119 loc) · 5.58 KB
/
cookies.robot
File metadata and controls
139 lines (119 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
*** Settings ***
Documentation Tests cookies
Suite Setup Go To Page "cookies.html"
Suite Teardown Delete All Cookies
Test Setup Add Cookies
Resource ../resource.robot
Library DateTime
*** Test Cases ***
Get Cookies
${cookies}= Get Cookies
Should Match Regexp ${cookies}
... ^(test=seleniumlibrary; another=value)|(another=value; test=seleniumlibrary)$
Get Cookies As Dict
${cookies}= Get Cookies as_dict=True
${expected_cookies}= Create Dictionary test=seleniumlibrary another=value far_future=timemachine
Dictionaries Should Be Equal ${expected_cookies} ${cookies}
App Sees Cookie Set By Selenium
Add Cookie setbyselenium true
Click Link Check cookie
Element Text Should Be output Cookie found with value 'true'!
Add Cookie When Secure Is Default
[Documentation] Setting secure to True is tested in unit tests
... because chrome raises WebDriverException when http is used with
... secure. Currently our test server supports only http
Add Cookie Cookie1 value1
${cookie} = Get Cookie Cookie1
Should Be Equal ${cookie.secure} ${False}
Add Cookie When Secure Is False
Add Cookie Cookie1 value1 secure=False
${cookie} = Get Cookie Cookie1
Should Be Equal ${cookie.secure} ${False}
Add Cookie When Expiry Is Epoch
# To convert epoch to formatted string
# from time import strftime, localtime
# strftime('%Y-%m-%d %H:%M:%S', localtime(1793247900))
# To update time each September (as Chrome limits cookies to one year expiry date) use
# import datetime
# print (datetime.datetime.strptime("2027-10-29 12:25:00", "%Y-%m-%d %I:%M:%S").timestamp())
Add Cookie Cookie1 value1 expiry=1793247900
${cookie} = Get Cookie Cookie1
${expiry} = Convert Date ${1793247900} exclude_millis=True
Should Be Equal As Strings ${cookie.expiry} ${expiry}
Add Cookie When Expiry Is Human Readable Data&Time
Add Cookie Cookie12 value12 expiry=2026-10-29 12:25:00
${cookie} = Get Cookie Cookie12
Should Be Equal As Strings ${cookie.expiry} 2026-10-29 12:25:00
Delete Cookie
[Tags] Known Issue Safari
Delete Cookie test
${cookies} = Get Cookies as_dict=True
${expected_cookies} Create Dictionary far_future=timemachine another=value
Dictionaries Should Be Equal ${cookies} ${expected_cookies}
Non-existent Cookie
Run Keyword And Expect Error
... Cookie with name 'missing' not found.
... Get Cookie missing
Get Cookies When There Are None
[Tags] Known Issue Safari
Delete All Cookies
${cookies} = Get Cookies
Should Be Equal ${cookies} ${EMPTY}
Get Cookies As Dict When There Are None
[Tags] Known Issue Safari
Delete All Cookies
${cookies} = Get Cookies as_dict=True
${expected_cookies}= Create Dictionary
Dictionaries Should Be Equal ${expected_cookies} ${cookies}
Test Get Cookie Object Expiry
${cookie} = Get Cookie another
Should Be Equal As Integers ${cookie.expiry.year} ${tomorrow_thistime_datetime.year}
Should Be Equal As Integers ${cookie.expiry.month} ${tomorrow_thistime_datetime.month}
Should Be Equal As Integers ${cookie.expiry.day} ${tomorrow_thistime_datetime.day}
Should Be Equal As Integers ${cookie.expiry.hour} ${tomorrow_thistime_datetime.hour}
Should Be Equal As Integers ${cookie.expiry.minute} ${tomorrow_thistime_datetime.minute}
Should Be Equal As Integers ${cookie.expiry.second} ${tomorrow_thistime_datetime.second}
Should Be Equal As Integers ${cookie.expiry.microsecond} 0
Test Get Cookie Object Domain
${cookie} = Get Cookie another
Should Be Equal ${cookie.domain} localhost
Test Get Cookie Object HttpOnly
${cookie} = Get Cookie another
Should Be Equal ${cookie.httpOnly} ${False}
Test Get Cookie Object Name
${cookie} = Get Cookie another
Should Be Equal ${cookie.name} another
Test Get Cookie Object Path
${cookie} = Get Cookie another
Should Be Equal ${cookie.path} /
Test Get Cookie Object Secure
${cookie} = Get Cookie another
Should Be Equal ${cookie.secure} ${False}
Test Get Cookie Object Value
${cookie} = Get Cookie another
Should Be Equal ${cookie.value} value
Test Get Cookie Keyword Logging
[Tags] NoGrid Known Issue Firefox
[Documentation]
... LOG 1:5 GLOB: ${cookie} = name=far_future
... value=timemachine
... path=/
... domain=localhost
... secure=False
... httpOnly=False
... expiry=2026-09-01 *:25:00
... extra={'sameSite': 'Lax'}
${cookie} = Get Cookie far_future
*** Keywords ***
Add Cookies
# To update time each September (as Chrome limits cookies to one year expiry date) use
# import datetime
# print (datetime.datetime.strptime("2027-09-01 12:25:00", "%Y-%m-%d %I:%M:%S").timestamp())
Delete All Cookies
Add Cookie test seleniumlibrary
${now} = Get Current Date
${tomorrow_thistime} = Add Time To Date ${now} 1 day
${tomorrow_thistime_datetime} = Convert Date ${tomorrow_thistime} datetime
Set Suite Variable ${tomorrow_thistime_datetime}
Add Cookie another value expiry=${tomorrow_thistime}
Add Cookie far_future timemachine expiry=1788236700 # 2026-09-01 12:25:00