summaryrefslogtreecommitdiff
path: root/tests/unit/browser/webkit/test_webkitelem.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/browser/webkit/test_webkitelem.py')
-rw-r--r--tests/unit/browser/webkit/test_webkitelem.py95
1 files changed, 48 insertions, 47 deletions
diff --git a/tests/unit/browser/webkit/test_webkitelem.py b/tests/unit/browser/webkit/test_webkitelem.py
index f7cc3e8c2..4c3a30b11 100644
--- a/tests/unit/browser/webkit/test_webkitelem.py
+++ b/tests/unit/browser/webkit/test_webkitelem.py
@@ -27,13 +27,14 @@ import itertools
import dataclasses
import pytest
-from PyQt5.QtCore import QRect, QPoint, QUrl
QWebElement = pytest.importorskip('PyQt5.QtWebKit').QWebElement
from qutebrowser.browser import browsertab
from qutebrowser.browser.webkit import webkitelem
from qutebrowser.misc import objects
from qutebrowser.utils import usertypes
+from qutebrowser.qt import QtCore
+
if TYPE_CHECKING:
from helpers import stubs
@@ -487,19 +488,19 @@ class TestIsVisible:
@pytest.fixture
def frame(self, stubs):
- return stubs.FakeWebFrame(QRect(0, 0, 100, 100))
+ return stubs.FakeWebFrame(QtCore.QRect(0, 0, 100, 100))
def test_invalid_frame_geometry(self, stubs):
"""Test with an invalid frame geometry."""
- rect = QRect(0, 0, 0, 0)
+ rect = QtCore.QRect(0, 0, 0, 0)
assert not rect.isValid()
frame = stubs.FakeWebFrame(rect)
- elem = get_webelem(QRect(0, 0, 10, 10), frame)
+ elem = get_webelem(QtCore.QRect(0, 0, 10, 10), frame)
assert not elem._is_visible(frame)
def test_invalid_invisible(self, frame):
"""Test elements with an invalid geometry which are invisible."""
- elem = get_webelem(QRect(0, 0, 0, 0), frame)
+ elem = get_webelem(QtCore.QRect(0, 0, 0, 0), frame)
assert not elem.geometry().isValid()
assert elem.geometry().x() == 0
assert not elem._is_visible(frame)
@@ -510,17 +511,17 @@ class TestIsVisible:
This seems to happen sometimes in the real world, with real elements
which *are* visible, but don't have a valid geometry.
"""
- elem = get_webelem(QRect(10, 10, 0, 0), frame)
+ elem = get_webelem(QtCore.QRect(10, 10, 0, 0), frame)
assert not elem.geometry().isValid()
assert elem._is_visible(frame)
@pytest.mark.parametrize('geometry, visible', [
- (QRect(5, 5, 4, 4), False),
- (QRect(10, 10, 1, 1), True),
+ (QtCore.QRect(5, 5, 4, 4), False),
+ (QtCore.QRect(10, 10, 1, 1), True),
])
def test_scrolled(self, geometry, visible, stubs):
- scrolled_frame = stubs.FakeWebFrame(QRect(0, 0, 100, 100),
- scroll=QPoint(10, 10))
+ scrolled_frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 100, 100),
+ scroll=QtCore.QPoint(10, 10))
elem = get_webelem(geometry, scrolled_frame)
assert elem._is_visible(scrolled_frame) == visible
@@ -533,7 +534,7 @@ class TestIsVisible:
({'visibility': 'hidden', 'display': 'inline'}, False),
])
def test_css_attributes(self, frame, style, visible):
- elem = get_webelem(QRect(0, 0, 10, 10), frame, style=style)
+ elem = get_webelem(QtCore.QRect(0, 0, 10, 10), frame, style=style)
assert elem._is_visible(frame) == visible
@@ -579,14 +580,14 @@ class TestIsVisibleIframe:
Returns an Objects object with frame/iframe/elems attributes.
"""
- frame = stubs.FakeWebFrame(QRect(0, 0, 300, 300))
- iframe = stubs.FakeWebFrame(QRect(0, 10, 100, 100), parent=frame)
+ frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 300, 300))
+ iframe = stubs.FakeWebFrame(QtCore.QRect(0, 10, 100, 100), parent=frame)
assert frame.geometry().contains(iframe.geometry())
elems = [
- get_webelem(QRect(0, 0, 10, 10), iframe),
- get_webelem(QRect(20, 90, 10, 10), iframe),
- get_webelem(QRect(20, 150, 10, 10), iframe),
- get_webelem(QRect(30, 180, 10, 10), frame),
+ get_webelem(QtCore.QRect(0, 0, 10, 10), iframe),
+ get_webelem(QtCore.QRect(20, 90, 10, 10), iframe),
+ get_webelem(QtCore.QRect(20, 150, 10, 10), iframe),
+ get_webelem(QtCore.QRect(30, 180, 10, 10), frame),
]
assert elems[0]._is_visible(frame)
@@ -598,7 +599,7 @@ class TestIsVisibleIframe:
def test_iframe_scrolled(self, objects):
"""Scroll iframe down so elem3 gets visible and elem1/elem2 not."""
- objects.iframe.scrollPosition.return_value = QPoint(0, 100)
+ objects.iframe.scrollPosition.return_value = QtCore.QPoint(0, 100)
assert not objects.elems[0]._is_visible(objects.frame)
assert not objects.elems[1]._is_visible(objects.frame)
assert objects.elems[2]._is_visible(objects.frame)
@@ -606,7 +607,7 @@ class TestIsVisibleIframe:
def test_mainframe_scrolled_iframe_visible(self, objects):
"""Scroll mainframe down so iframe is partly visible but elem1 not."""
- objects.frame.scrollPosition.return_value = QPoint(0, 50)
+ objects.frame.scrollPosition.return_value = QtCore.QPoint(0, 50)
geom = objects.frame.geometry().translated(
objects.frame.scrollPosition())
assert not geom.contains(objects.iframe.geometry())
@@ -618,7 +619,7 @@ class TestIsVisibleIframe:
def test_mainframe_scrolled_iframe_invisible(self, objects):
"""Scroll mainframe down so iframe is invisible."""
- objects.frame.scrollPosition.return_value = QPoint(0, 110)
+ objects.frame.scrollPosition.return_value = QtCore.QPoint(0, 110)
geom = objects.frame.geometry().translated(
objects.frame.scrollPosition())
assert not geom.contains(objects.iframe.geometry())
@@ -650,13 +651,13 @@ class TestIsVisibleIframe:
Returns an Objects object with frame/iframe/elems attributes.
"""
- frame = stubs.FakeWebFrame(QRect(0, 0, 300, 300))
- iframe = stubs.FakeWebFrame(QRect(0, 10, 100, 100), parent=frame)
+ frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 300, 300))
+ iframe = stubs.FakeWebFrame(QtCore.QRect(0, 10, 100, 100), parent=frame)
assert frame.geometry().contains(iframe.geometry())
elems = [
- get_webelem(QRect(10, 10, 0, 0), iframe),
- get_webelem(QRect(20, 150, 0, 0), iframe),
+ get_webelem(QtCore.QRect(10, 10, 0, 0), iframe),
+ get_webelem(QtCore.QRect(20, 150, 0, 0), iframe),
]
for e in elems:
assert not e.geometry().isValid()
@@ -688,18 +689,18 @@ class TestRectOnView:
{'length': '1', '0': {'width': 0, 'height': 0, 'x': 0, 'y': 0}},
])
def test_simple(self, stubs, js_rect):
- geometry = QRect(5, 5, 4, 4)
- frame = stubs.FakeWebFrame(QRect(0, 0, 100, 100))
+ geometry = QtCore.QRect(5, 5, 4, 4)
+ frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 100, 100))
elem = get_webelem(geometry, frame, js_rect_return=js_rect)
- assert elem.rect_on_view() == QRect(5, 5, 4, 4)
+ assert elem.rect_on_view() == QtCore.QRect(5, 5, 4, 4)
@pytest.mark.parametrize('js_rect', [None, {}])
def test_scrolled(self, stubs, js_rect):
- geometry = QRect(20, 20, 4, 4)
- frame = stubs.FakeWebFrame(QRect(0, 0, 100, 100),
- scroll=QPoint(10, 10))
+ geometry = QtCore.QRect(20, 20, 4, 4)
+ frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 100, 100),
+ scroll=QtCore.QPoint(10, 10))
elem = get_webelem(geometry, frame, js_rect_return=js_rect)
- assert elem.rect_on_view() == QRect(20 - 10, 20 - 10, 4, 4)
+ assert elem.rect_on_view() == QtCore.QRect(20 - 10, 20 - 10, 4, 4)
@pytest.mark.parametrize('js_rect', [None, {}])
def test_iframe(self, stubs, js_rect):
@@ -718,19 +719,19 @@ class TestRectOnView:
##############################
200, 0 200, 200
"""
- frame = stubs.FakeWebFrame(QRect(0, 0, 200, 200))
- iframe = stubs.FakeWebFrame(QRect(0, 10, 100, 100), parent=frame)
+ frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 200, 200))
+ iframe = stubs.FakeWebFrame(QtCore.QRect(0, 10, 100, 100), parent=frame)
assert frame.geometry().contains(iframe.geometry())
- elem = get_webelem(QRect(20, 90, 10, 10), iframe,
+ elem = get_webelem(QtCore.QRect(20, 90, 10, 10), iframe,
js_rect_return=js_rect)
- assert elem.rect_on_view() == QRect(20, 10 + 90, 10, 10)
+ assert elem.rect_on_view() == QtCore.QRect(20, 10 + 90, 10, 10)
@pytest.mark.parametrize('js_rect', [None, {}])
def test_passed_geometry(self, stubs, js_rect):
"""Make sure geometry isn't called when a geometry is passed."""
- frame = stubs.FakeWebFrame(QRect(0, 0, 200, 200))
+ frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 200, 200))
elem = get_webelem(frame=frame, js_rect_return=js_rect)
- rect = QRect(10, 20, 30, 40)
+ rect = QtCore.QRect(10, 20, 30, 40)
assert elem.rect_on_view(elem_geometry=rect) == rect
assert not elem._elem.geometry.called
@@ -741,11 +742,11 @@ class TestRectOnView:
"""Make sure the coordinates are adjusted when zoomed."""
monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebKit)
config_stub.val.zoom.text_only = zoom_text_only
- geometry = QRect(10, 10, 4, 4)
- frame = stubs.FakeWebFrame(QRect(0, 0, 100, 100), zoom=0.5)
+ geometry = QtCore.QRect(10, 10, 4, 4)
+ frame = stubs.FakeWebFrame(QtCore.QRect(0, 0, 100, 100), zoom=0.5)
elem = get_webelem(geometry, frame, js_rect_return=js_rect,
zoom_text_only=zoom_text_only)
- assert elem.rect_on_view() == QRect(10, 10, 4, 4)
+ assert elem.rect_on_view() == QtCore.QRect(10, 10, 4, 4)
class TestGetChildFrames:
@@ -885,20 +886,20 @@ class TestIsEditable:
@pytest.mark.parametrize('attributes, expected', [
# No attributes
({}, None),
- ({'href': 'foo'}, QUrl('http://www.example.com/foo')),
- ({'src': 'foo'}, QUrl('http://www.example.com/foo')),
- ({'href': 'foo', 'src': 'bar'}, QUrl('http://www.example.com/foo')),
+ ({'href': 'foo'}, QtCore.QUrl('http://www.example.com/foo')),
+ ({'src': 'foo'}, QtCore.QUrl('http://www.example.com/foo')),
+ ({'href': 'foo', 'src': 'bar'}, QtCore.QUrl('http://www.example.com/foo')),
({'href': '::garbage::'}, None),
- ({'href': 'http://www.example.org/'}, QUrl('http://www.example.org/')),
- ({'href': ' foo '}, QUrl('http://www.example.com/foo')),
+ ({'href': 'http://www.example.org/'}, QtCore.QUrl('http://www.example.org/')),
+ ({'href': ' foo '}, QtCore.QUrl('http://www.example.com/foo')),
])
def test_resolve_url(attributes, expected):
elem = get_webelem(attributes=attributes)
- baseurl = QUrl('http://www.example.com/')
+ baseurl = QtCore.QUrl('http://www.example.com/')
assert elem.resolve_url(baseurl) == expected
def test_resolve_url_relative_base():
elem = get_webelem(attributes={'href': 'foo'})
with pytest.raises(ValueError):
- elem.resolve_url(QUrl('base'))
+ elem.resolve_url(QtCore.QUrl('base'))