diff options
author | Ryan Roden-Corrent <ryan@rcorre.net> | 2017-08-06 10:54:19 -0400 |
---|---|---|
committer | Ryan Roden-Corrent <ryan@rcorre.net> | 2017-08-06 18:13:49 -0400 |
commit | 71b71dbc58092b6068a3f5ee4b1c287193ad348d (patch) | |
tree | 28c7ccffac920c433d92740a0f575f9d8357ef09 /tests/unit/mainwindow/statusbar | |
parent | 0f85898137e6065e8558b3b01b010255f3ca3404 (diff) | |
parent | 49b858e3599a361cf5c994358c6b189dddfb522c (diff) | |
download | qutebrowser-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.py | 76 |
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() |