Fix URL/renderer crash tests with Qt 5.9
The behavior in Qt changed there (in a good way), so we need to adjust the tests accordingly. Fixes #2514
This commit is contained in:
parent
f67cf17055
commit
c4fb2bc609
@ -685,6 +685,7 @@ class TabbedBrowser(tabwidget.TabWidget):
|
||||
'error.html', title="Error loading {}".format(url_string),
|
||||
url=url_string, error=msg, icon='')
|
||||
QTimer.singleShot(0, lambda: tab.set_html(error_page))
|
||||
log.webview.error(msg)
|
||||
else:
|
||||
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-58698
|
||||
message.error(msg)
|
||||
|
@ -674,16 +674,29 @@ Feature: Various utility commands.
|
||||
## Renderer crashes
|
||||
|
||||
# Skipped on Windows as "... has stopped working" hangs.
|
||||
@qtwebkit_skip @no_invalid_lines @posix
|
||||
@qtwebkit_skip @no_invalid_lines @posix @qt<5.9
|
||||
Scenario: Renderer crash
|
||||
When I run :open -t chrome://crash
|
||||
Then the error "Renderer process crashed" should be shown
|
||||
|
||||
@qtwebkit_skip @no_invalid_lines
|
||||
@qtwebkit_skip @no_invalid_lines @qt<5.9
|
||||
Scenario: Renderer kill
|
||||
When I run :open -t chrome://kill
|
||||
Then the error "Renderer process was killed" should be shown
|
||||
|
||||
# Skipped on Windows as "... has stopped working" hangs.
|
||||
@qtwebkit_skip @no_invalid_lines @posix @qt>=5.9
|
||||
Scenario: Renderer crash (5.9)
|
||||
When I run :open -t chrome://crash
|
||||
Then "Renderer process crashed" should be logged
|
||||
And "* 'Error loading chrome://crash/'" should be logged
|
||||
|
||||
@qtwebkit_skip @no_invalid_lines @qt>=5.9
|
||||
Scenario: Renderer kill (5.9)
|
||||
When I run :open -t chrome://kill
|
||||
Then "Renderer process was killed" should be logged
|
||||
And "* 'Error loading chrome://kill/'" should be logged
|
||||
|
||||
# https://github.com/qutebrowser/qutebrowser/issues/2290
|
||||
@qtwebkit_skip @no_invalid_lines
|
||||
Scenario: Navigating to URL after renderer process is gone
|
||||
@ -694,5 +707,3 @@ Feature: Various utility commands.
|
||||
And I wait for "Renderer process was killed" in the log
|
||||
And I open data/numbers/3.txt
|
||||
Then no crash should happen
|
||||
And the following tabs should be open:
|
||||
- data/numbers/3.txt (active)
|
||||
|
@ -26,6 +26,14 @@ import os.path
|
||||
|
||||
import pytest
|
||||
|
||||
from qutebrowser.utils import qtutils
|
||||
|
||||
|
||||
qt58 = pytest.mark.skipif(
|
||||
qtutils.version_check('5.9'), reason="Needs Qt 5.8 or earlier")
|
||||
qt59 = pytest.mark.skipif(
|
||||
not qtutils.version_check('5.9'), reason="Needs Qt 5.9 or newer")
|
||||
|
||||
|
||||
class PartialCompareOutcome:
|
||||
|
||||
|
@ -24,12 +24,7 @@ import pytest
|
||||
pytest.importorskip('PyQt5.QtWebEngineWidgets')
|
||||
|
||||
from qutebrowser.browser.webengine import webenginedownloads
|
||||
from qutebrowser.utils import qtutils
|
||||
|
||||
qt58 = pytest.mark.skipif(
|
||||
qtutils.version_check('5.9'), reason="Needs Qt 5.8 or earlier")
|
||||
qt59 = pytest.mark.skipif(
|
||||
not qtutils.version_check('5.9'), reason="Needs Qt 5.9 or newer")
|
||||
from helpers import utils
|
||||
|
||||
|
||||
@pytest.mark.parametrize('path, expected', [
|
||||
@ -37,10 +32,10 @@ qt59 = pytest.mark.skipif(
|
||||
('foo(1)', 'foo'),
|
||||
('foo(a)', 'foo(a)'),
|
||||
('foo1', 'foo1'),
|
||||
qt58(('foo%20bar', 'foo bar')),
|
||||
qt58(('foo%2Fbar', 'bar')),
|
||||
qt59(('foo%20bar', 'foo%20bar')),
|
||||
qt59(('foo%2Fbar', 'foo%2Fbar')),
|
||||
utils.qt58(('foo%20bar', 'foo bar')),
|
||||
utils.qt58(('foo%2Fbar', 'bar')),
|
||||
utils.qt59(('foo%20bar', 'foo%20bar')),
|
||||
utils.qt59(('foo%2Fbar', 'foo%2Fbar')),
|
||||
])
|
||||
def test_get_suggested_filename(path, expected):
|
||||
assert webenginedownloads._get_suggested_filename(path) == expected
|
||||
|
@ -22,10 +22,11 @@
|
||||
|
||||
import pytest
|
||||
|
||||
from PyQt5.QtCore import QUrl
|
||||
|
||||
from qutebrowser.utils import usertypes, urlutils
|
||||
from qutebrowser.mainwindow.statusbar import url
|
||||
|
||||
from PyQt5.QtCore import QUrl
|
||||
from helpers import utils
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@ -60,8 +61,10 @@ def url_widget(qtbot, monkeypatch, config_stub):
|
||||
('http://username:secret%20password@test.com', 'http://username@test.com'),
|
||||
('http://example.com%5b/', '(invalid URL!) http://example.com%5b/'),
|
||||
# https://bugreports.qt.io/browse/QTBUG-60364
|
||||
('http://www.xn--80ak6aa92e.com',
|
||||
'(unparseable URL!) http://www.аррӏе.com'),
|
||||
utils.qt58(('http://www.xn--80ak6aa92e.com',
|
||||
'(unparseable URL!) http://www.аррӏе.com')),
|
||||
utils.qt59(('http://www.xn--80ak6aa92e.com',
|
||||
'http://www.xn--80ak6aa92e.com')),
|
||||
# IDN URL
|
||||
('http://www.ä.com', '(www.xn--4ca.com) http://www.ä.com'),
|
||||
(None, ''),
|
||||
|
@ -30,6 +30,7 @@ import pytest
|
||||
from qutebrowser.commands import cmdexc
|
||||
from qutebrowser.browser.network import pac
|
||||
from qutebrowser.utils import utils, urlutils, qtutils, usertypes
|
||||
from helpers import utils
|
||||
|
||||
|
||||
class FakeDNS:
|
||||
@ -755,8 +756,10 @@ 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'),
|
||||
'(unparseable URL!) http://www.аррӏе.com'),
|
||||
utils.qt58((QUrl('http://www.xn--80ak6aa92e.com'),
|
||||
'(unparseable URL!) http://www.аррӏе.com')),
|
||||
utils.qt59((QUrl('http://www.xn--80ak6aa92e.com'),
|
||||
'http://www.xn--80ak6aa92e.com')),
|
||||
])
|
||||
def test_safe_display_string(url, expected):
|
||||
assert urlutils.safe_display_string(url) == expected
|
||||
|
Loading…
Reference in New Issue
Block a user