mirror of
https://github.com/CloakHQ/CloakBrowser.git
synced 2026-06-23 11:41:46 +02:00
Parse user:pass from proxy URLs into separate Playwright username/password fields. Puppeteer wrapper strips credentials from --proxy-server and auto-calls page.authenticate(). Bump Python 0.1.6, JS 0.1.3.
51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
"""Tests for proxy URL parsing and credential extraction."""
|
|
|
|
from cloakbrowser.browser import _build_proxy_kwargs, _parse_proxy_url
|
|
|
|
|
|
class TestParseProxyUrl:
|
|
def test_no_credentials(self):
|
|
assert _parse_proxy_url("http://proxy:8080") == {"server": "http://proxy:8080"}
|
|
|
|
def test_with_credentials(self):
|
|
result = _parse_proxy_url("http://user:pass@proxy:8080")
|
|
assert result == {"server": "http://proxy:8080", "username": "user", "password": "pass"}
|
|
|
|
def test_url_encoded_password(self):
|
|
result = _parse_proxy_url("http://user:p%40ss%3Aword@proxy:8080")
|
|
assert result["password"] == "p@ss:word"
|
|
assert result["username"] == "user"
|
|
assert result["server"] == "http://proxy:8080"
|
|
|
|
def test_socks5(self):
|
|
result = _parse_proxy_url("socks5://user:pass@proxy:1080")
|
|
assert result["server"] == "socks5://proxy:1080"
|
|
assert result["username"] == "user"
|
|
assert result["password"] == "pass"
|
|
|
|
def test_no_port(self):
|
|
result = _parse_proxy_url("http://user:pass@proxy")
|
|
assert result["server"] == "http://proxy"
|
|
assert result["username"] == "user"
|
|
|
|
def test_username_only(self):
|
|
result = _parse_proxy_url("http://user@proxy:8080")
|
|
assert result["server"] == "http://proxy:8080"
|
|
assert result["username"] == "user"
|
|
assert "password" not in result
|
|
|
|
|
|
class TestBuildProxyKwargs:
|
|
def test_none(self):
|
|
assert _build_proxy_kwargs(None) == {}
|
|
|
|
def test_simple_proxy(self):
|
|
result = _build_proxy_kwargs("http://proxy:8080")
|
|
assert result == {"proxy": {"server": "http://proxy:8080"}}
|
|
|
|
def test_proxy_with_auth(self):
|
|
result = _build_proxy_kwargs("http://user:pass@proxy:8080")
|
|
assert result == {
|
|
"proxy": {"server": "http://proxy:8080", "username": "user", "password": "pass"}
|
|
}
|