2026-01-09 12:37:21 +00:00
|
|
|
"""Tests for cookie management."""
|
|
|
|
|
|
|
|
|
|
from src.network.cookies import CookieJar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestCookieJar:
|
|
|
|
|
def test_cookie_jar_creation(self):
|
|
|
|
|
jar = CookieJar()
|
|
|
|
|
assert jar._cookies == {}
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
def test_set_cookies(self):
|
|
|
|
|
jar = CookieJar()
|
|
|
|
|
jar.set_cookies("https://example.com", "session=abc123")
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
cookies = jar.get_cookie_header("https://example.com")
|
|
|
|
|
assert "session=abc123" in cookies
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
def test_get_cookie_header_empty(self):
|
|
|
|
|
jar = CookieJar()
|
|
|
|
|
cookies = jar.get_cookie_header("https://example.com")
|
|
|
|
|
assert cookies == ""
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
def test_multiple_cookies_same_origin(self):
|
|
|
|
|
jar = CookieJar()
|
|
|
|
|
jar.set_cookies("https://example.com", "session=abc123")
|
|
|
|
|
jar.set_cookies("https://example.com", "user=john")
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
cookies = jar.get_cookie_header("https://example.com")
|
|
|
|
|
assert "session=abc123" in cookies or "user=john" in cookies
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
def test_cookies_isolated_by_origin(self):
|
|
|
|
|
jar = CookieJar()
|
|
|
|
|
jar.set_cookies("https://example.com", "session=abc123")
|
|
|
|
|
jar.set_cookies("https://other.com", "session=xyz789")
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
cookies1 = jar.get_cookie_header("https://example.com")
|
|
|
|
|
cookies2 = jar.get_cookie_header("https://other.com")
|
2026-01-12 09:22:34 +00:00
|
|
|
|
2026-01-09 12:37:21 +00:00
|
|
|
assert "abc123" in cookies1
|
|
|
|
|
assert "xyz789" in cookies2
|