summaryrefslogtreecommitdiff
path: root/tests/unit/utils/test_urlutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/utils/test_urlutils.py')
-rw-r--r--tests/unit/utils/test_urlutils.py47
1 files changed, 34 insertions, 13 deletions
diff --git a/tests/unit/utils/test_urlutils.py b/tests/unit/utils/test_urlutils.py
index e5773e25e..a94ecef6a 100644
--- a/tests/unit/utils/test_urlutils.py
+++ b/tests/unit/utils/test_urlutils.py
@@ -24,15 +24,15 @@ import logging
import dataclasses
import urllib.parse
-from PyQt5.QtCore import QUrl
-from PyQt5.QtNetwork import QNetworkProxy
+from qutebrowser.qt.core import QUrl
+from qutebrowser.qt.network import QNetworkProxy
import pytest
import hypothesis
import hypothesis.strategies
from qutebrowser.api import cmdutils
from qutebrowser.browser.network import pac
-from qutebrowser.utils import utils, urlutils, usertypes
+from qutebrowser.utils import utils, urlutils, usertypes, qtutils
class FakeDNS:
@@ -321,7 +321,7 @@ def test_get_search_url_for_path_search(config_stub, url, host, path, open_base_
config_stub.val.url.open_base_url = open_base_url
url = urlutils._get_search_url(url)
assert url.host() == host
- assert url.path(options=QUrl.PrettyDecoded) == '/' + path
+ assert url.path(options=QUrl.ComponentFormattingOption.PrettyDecoded) == '/' + path
@pytest.mark.parametrize('url, host', [
@@ -638,6 +638,7 @@ class TestInvalidUrlError:
(False, 'http://example.org', 'https://example.org'), # different scheme
(False, 'http://example.org:80', 'http://example.org:8080'), # different port
])
+@pytest.mark.qt5_only # https://bugreports.qt.io/browse/QTBUG-80308
def test_same_domain(are_same, url1, url2):
"""Test same_domain."""
assert urlutils.same_domain(QUrl(url1), QUrl(url2)) == are_same
@@ -674,6 +675,18 @@ def test_data_url():
assert url == QUrl('data:text/plain;base64,Zm9v')
+qurl_idna2003 = pytest.mark.skipif(
+ qtutils.version_check("6.3.0", compiled=False),
+ reason="Different result with Qt >= 6.3.0: "
+ "https://bugreports.qt.io/browse/QTBUG-85371"
+)
+qurl_uts46 = pytest.mark.xfail(
+ not qtutils.version_check("6.3.0", compiled=False),
+ reason="Different result with Qt < 6.3.0: "
+ "https://bugreports.qt.io/browse/QTBUG-85371"
+)
+
+
@pytest.mark.parametrize('url, expected', [
# No IDN
(QUrl('http://www.example.com'), 'http://www.example.com'),
@@ -687,8 +700,16 @@ def test_data_url():
(QUrl('http://www.example.xn--p1ai'),
'(www.example.xn--p1ai) http://www.example.рф'),
# https://bugreports.qt.io/browse/QTBUG-60364
- (QUrl('http://www.xn--80ak6aa92e.com'),
- 'http://www.xn--80ak6aa92e.com'),
+ pytest.param(
+ QUrl('http://www.xn--80ak6aa92e.com'),
+ 'http://www.xn--80ak6aa92e.com',
+ marks=qurl_idna2003,
+ ),
+ pytest.param(
+ QUrl('http://www.xn--80ak6aa92e.com'),
+ '(www.xn--80ak6aa92e.com) http://www.аррӏе.com',
+ marks=qurl_uts46,
+ ),
])
def test_safe_display_string(url, expected):
assert urlutils.safe_display_string(url) == expected
@@ -703,20 +724,20 @@ class TestProxyFromUrl:
@pytest.mark.parametrize('url, expected', [
('socks://example.com/',
- QNetworkProxy(QNetworkProxy.Socks5Proxy, 'example.com')),
+ QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com')),
('socks5://example.com',
- QNetworkProxy(QNetworkProxy.Socks5Proxy, 'example.com')),
+ QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com')),
('socks5://example.com:2342',
- QNetworkProxy(QNetworkProxy.Socks5Proxy, 'example.com', 2342)),
+ QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com', 2342)),
('socks5://foo@example.com',
- QNetworkProxy(QNetworkProxy.Socks5Proxy, 'example.com', 0, 'foo')),
+ QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com', 0, 'foo')),
('socks5://foo:bar@example.com',
- QNetworkProxy(QNetworkProxy.Socks5Proxy, 'example.com', 0, 'foo',
+ QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com', 0, 'foo',
'bar')),
('socks5://foo:bar@example.com:2323',
- QNetworkProxy(QNetworkProxy.Socks5Proxy, 'example.com', 2323,
+ QNetworkProxy(QNetworkProxy.ProxyType.Socks5Proxy, 'example.com', 2323,
'foo', 'bar')),
- ('direct://', QNetworkProxy(QNetworkProxy.NoProxy)),
+ ('direct://', QNetworkProxy(QNetworkProxy.ProxyType.NoProxy)),
])
def test_proxy_from_url_valid(self, url, expected):
assert urlutils.proxy_from_url(QUrl(url)) == expected