summaryrefslogtreecommitdiff
path: root/tests/unit/mainwindow/statusbar
diff options
context:
space:
mode:
authorRyan Roden-Corrent <ryan@rcorre.net>2017-08-06 10:54:19 -0400
committerRyan Roden-Corrent <ryan@rcorre.net>2017-08-06 18:13:49 -0400
commit71b71dbc58092b6068a3f5ee4b1c287193ad348d (patch)
tree28c7ccffac920c433d92740a0f575f9d8357ef09 /tests/unit/mainwindow/statusbar
parent0f85898137e6065e8558b3b01b010255f3ca3404 (diff)
parent49b858e3599a361cf5c994358c6b189dddfb522c (diff)
downloadqutebrowser-71b71dbc58092b6068a3f5ee4b1c287193ad348d.tar.gz
qutebrowser-71b71dbc58092b6068a3f5ee4b1c287193ad348d.zip
Merge remote-tracking branch 'upstream/master' into HEAD
Diffstat (limited to 'tests/unit/mainwindow/statusbar')
-rw-r--r--tests/unit/mainwindow/statusbar/test_backforward.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/unit/mainwindow/statusbar/test_backforward.py b/tests/unit/mainwindow/statusbar/test_backforward.py
new file mode 100644
index 000000000..f2dec3d3f
--- /dev/null
+++ b/tests/unit/mainwindow/statusbar/test_backforward.py
@@ -0,0 +1,76 @@
+# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
+
+# Copyright 2017 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
+#
+# This file is part of qutebrowser.
+#
+# qutebrowser is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# qutebrowser is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
+
+"""Test Backforward widget."""
+
+import pytest
+
+from qutebrowser.mainwindow.statusbar import backforward
+
+
+@pytest.fixture
+def backforward_widget(qtbot):
+ widget = backforward.Backforward()
+ qtbot.add_widget(widget)
+ return widget
+
+
+@pytest.mark.parametrize('can_go_back, can_go_forward, expected_text', [
+ (False, False, ''),
+ (True, False, '[<]'),
+ (False, True, '[>]'),
+ (True, True, '[<>]'),
+])
+def test_backforward_widget(backforward_widget, stubs,
+ fake_web_tab, can_go_back, can_go_forward,
+ expected_text):
+ """Ensure the Backforward widget shows the correct text."""
+ tab = fake_web_tab(can_go_back=can_go_back, can_go_forward=can_go_forward)
+ tabbed_browser = stubs.TabbedBrowserStub()
+ tabbed_browser.current_index = 1
+ tabbed_browser.tabs = [tab]
+ backforward_widget.on_tab_cur_url_changed(tabbed_browser)
+ assert backforward_widget.text() == expected_text
+ assert backforward_widget.isVisible() == bool(expected_text)
+
+ # Check that the widget gets reset if empty.
+ if can_go_back and can_go_forward:
+ tab = fake_web_tab(can_go_back=False, can_go_forward=False)
+ tabbed_browser.tabs = [tab]
+ backforward_widget.on_tab_cur_url_changed(tabbed_browser)
+ assert backforward_widget.text() == ''
+ assert not backforward_widget.isVisible()
+
+
+def test_none_tab(backforward_widget, stubs, fake_web_tab):
+ """Make sure nothing crashes when passing None as tab."""
+ tab = fake_web_tab(can_go_back=True, can_go_forward=True)
+ tabbed_browser = stubs.TabbedBrowserStub()
+ tabbed_browser.current_index = 1
+ tabbed_browser.tabs = [tab]
+ backforward_widget.on_tab_cur_url_changed(tabbed_browser)
+
+ assert backforward_widget.text() == '[<>]'
+ assert backforward_widget.isVisible()
+
+ tabbed_browser.current_index = -1
+ backforward_widget.on_tab_cur_url_changed(tabbed_browser)
+
+ assert backforward_widget.text() == ''
+ assert not backforward_widget.isVisible()