diff options
author | Florian Bruhin <me@the-compiler.org> | 2020-07-31 15:50:29 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2020-07-31 15:50:29 +0200 |
commit | c048a48b788af535d05ebb90288d76f2d3e308bf (patch) | |
tree | e47341a3a88c93fc5454985e26fb93e664fb450b | |
parent | 592735767f6062335c5853346f2ed5b82bf2040f (diff) | |
download | qutebrowser-c048a48b788af535d05ebb90288d76f2d3e308bf.tar.gz qutebrowser-c048a48b788af535d05ebb90288d76f2d3e308bf.zip |
Add a test for ignoring _toggle_sel_translate
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 2 | ||||
-rw-r--r-- | tests/unit/browser/test_caret.py | 15 |
2 files changed, 17 insertions, 0 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index ebce1e0fe..fe4d37745 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -535,6 +535,8 @@ class WebEngineCaret(browsertab.AbstractCaret): # This may happen if the user switches to another mode after # `:toggle-selection` is executed and before this callback function # is asynchronously called. + log.misc.debug("Ignoring caret selection callback in {}".format( + self._mode_manager.mode)) return if state_str is None: message.error("Error toggling caret selection") diff --git a/tests/unit/browser/test_caret.py b/tests/unit/browser/test_caret.py index 7d1325612..75d9fee09 100644 --- a/tests/unit/browser/test_caret.py +++ b/tests/unit/browser/test_caret.py @@ -99,6 +99,21 @@ def test_toggle(caret, selection, qtbot): assert selection.toggle() == browsertab.SelectionState.none +def test_selection_callback_wrong_mode(qtbot, caplog, + webengine_tab, mode_manager): + """Test what calling the selection callback outside of caret mode. + + It should be ignored, as something could have left caret mode while the + async callback was happening, so we don't want to mess with the status bar. + """ + assert mode_manager.mode == usertypes.KeyMode.normal + with qtbot.assertNotEmitted(webengine_tab.caret.selection_toggled): + webengine_tab.caret._toggle_sel_translate('normal') + + msg = 'Ignoring caret selection callback in KeyMode.normal' + assert caplog.messages == [msg] + + class TestDocument: def test_selecting_entire_document(self, caret, selection): |