11import pytest
2+ import pytest_asyncio
23
34from webdriver .bidi .modules .network import CookieHeader , Header , NetworkStringValue
45from webdriver .bidi .modules .script import ContextTarget
910pytestmark = pytest .mark .asyncio
1011
1112
13+ @pytest_asyncio .fixture (autouse = True )
14+ async def delete_cookies (bidi_session ):
15+ await bidi_session .storage .delete_cookies ()
16+
17+
1218@pytest .mark .parametrize (
13- "document_cookies, modified_cookies" ,
19+ "document_cookies, modified_cookies, expected_event_cookies " ,
1420 [
15- [{"a" : "1" }, {}],
16- [{}, {"b" : "2" }],
17- [{"a" : "1" , "b" : "2" }, {"c" : "3" , "d" : "4" }],
18- [{"a" : "1" }, {"a" : "not-1" }],
21+ [{"a" : "from-store" }, {}, []],
22+ [{"a" : "from-store" }, {"b" : "from-command" }, []],
23+ [{}, {"b" : "from-command" }, []],
24+ [
25+ {"a" : "from-store" },
26+ {"a" : "from-command" },
27+ [{"name" : "a" , "value" : {"type" : "string" , "value" : "from-store" }}],
28+ ],
29+ [
30+ {"a" : "from-store-a" , "b" : "from-store-b" },
31+ {"b" : "from-command-b" , "c" : "from-command-c" },
32+ [{"name" : "b" , "value" : {"type" : "string" , "value" : "from-store-b" }}],
33+ ],
34+ ],
35+ ids = [
36+ "store_cookie_removed" ,
37+ "store_cookies_replaced" ,
38+ "new_cookie_in_command" ,
39+ "modified_cookie_in_command" ,
40+ "common_cookie" ,
1941 ],
2042)
2143async def test_modify_cookies (
@@ -26,13 +48,14 @@ async def test_modify_cookies(
2648 top_context ,
2749 document_cookies ,
2850 modified_cookies ,
29- url
51+ expected_event_cookies ,
52+ url ,
3053):
3154 # Navigate away from about:blank to make sure document.cookies can be used.
3255 await bidi_session .browsing_context .navigate (
3356 context = top_context ["context" ],
3457 url = url ("/webdriver/tests/bidi/network/support/empty.html" ),
35- wait = "complete"
58+ wait = "complete" ,
3659 )
3760
3861 expression = ""
@@ -57,12 +80,12 @@ async def test_modify_cookies(
5780 response_event = await on_response_completed
5881
5982 event_cookies = response_event ["request" ]["cookies" ]
60- assert len (event_cookies ) == len (cookies )
61- for cookie in cookies :
83+ assert len (event_cookies ) == len (expected_event_cookies )
84+ for expected in expected_event_cookies :
6285 event_cookie = next (
63- filter (lambda c : c ["name" ] == cookie ["name" ], event_cookies ), None
86+ filter (lambda c : c ["name" ] == expected ["name" ], event_cookies ), None
6487 )
65- recursive_compare (cookie , event_cookie )
88+ recursive_compare (expected , event_cookie )
6689
6790 await bidi_session .storage .delete_cookies ()
6891
@@ -84,21 +107,23 @@ async def test_override_header_cookie(
84107 response_event = await on_response_completed
85108
86109 event_cookies = response_event ["request" ]["cookies" ]
87- recursive_compare ([ cookie ], event_cookies )
110+ assert event_cookies == []
88111
89112 await bidi_session .storage .delete_cookies ()
90113
91114
115+ @pytest .mark .parametrize (
116+ "header_cookie" ,
117+ ["a=from-header" , "b=from-header" ],
118+ ids = ["different_cookie" , "same_cookie" ],
119+ )
92120async def test_override_modified_header_cookies (
93- setup_blocked_request ,
94- subscribe_events ,
95- wait_for_event ,
96- bidi_session ,
121+ setup_blocked_request , subscribe_events , wait_for_event , bidi_session , header_cookie
97122):
98123 request = await setup_blocked_request ("beforeRequestSent" )
99124 await subscribe_events (events = [RESPONSE_COMPLETED_EVENT ])
100125
101- header = Header (name = "Cookie" , value = NetworkStringValue ("a=1" ))
126+ header = Header (name = "Cookie" , value = NetworkStringValue (header_cookie ))
102127 cookie = CookieHeader (name = "b" , value = NetworkStringValue ("2" ))
103128 on_response_completed = wait_for_event (RESPONSE_COMPLETED_EVENT )
104129 await bidi_session .network .continue_request (
@@ -107,6 +132,6 @@ async def test_override_modified_header_cookies(
107132 response_event = await on_response_completed
108133
109134 event_cookies = response_event ["request" ]["cookies" ]
110- recursive_compare ([ cookie ], event_cookies )
135+ assert event_cookies == []
111136
112137 await bidi_session .storage .delete_cookies ()
0 commit comments