summaryrefslogtreecommitdiff
path: root/tests/unit/mainwindow/test_tabwidget.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/mainwindow/test_tabwidget.py')
-rw-r--r--tests/unit/mainwindow/test_tabwidget.py35
1 files changed, 34 insertions, 1 deletions
diff --git a/tests/unit/mainwindow/test_tabwidget.py b/tests/unit/mainwindow/test_tabwidget.py
index db300d7a6..d6289dac6 100644
--- a/tests/unit/mainwindow/test_tabwidget.py
+++ b/tests/unit/mainwindow/test_tabwidget.py
@@ -23,8 +23,9 @@
import functools
import pytest
-from qutebrowser.qt.gui import QIcon, QPixmap
+from unittest.mock import Mock
+from qutebrowser.qt.gui import QIcon, QPixmap
from qutebrowser.mainwindow import tabwidget
from qutebrowser.utils import usertypes
@@ -71,6 +72,38 @@ class TestTabWidget:
assert first_size == widget.tabBar().tabSizeHint(i)
assert first_size_min == widget.tabBar().minimumTabSizeHint(i)
+ @pytest.fixture
+ def paint_spy(self, monkeypatch):
+ spy = Mock()
+ monkeypatch.setattr(tabwidget, "QStylePainter", spy)
+ return spy
+
+ def test_tab_text_edlided_for_narrow_tabs(self, paint_spy, widget, fake_web_tab):
+ """Make sure text gets elided for narrow tabs."""
+ widget.setMaximumWidth(100)
+ widget.addTab(fake_web_tab(), "one two three four")
+
+ fake_paint_event = Mock()
+ fake_paint_event.region.return_value.intersects.return_value = True
+ widget.tabBar().paintEvent(fake_paint_event)
+
+ style_opt = paint_spy.return_value.drawControl.call_args_list[0][0][1]
+ assert len(style_opt.text) < len(widget.tabBar().tabText(0))
+ assert style_opt.text.endswith("…")
+ assert len(style_opt.text) > len("…")
+
+ def test_tab_text_not_edlided_for_wide_tabs(self, paint_spy, widget, fake_web_tab):
+ """Make sure text doesn't get elided for wide tabs."""
+ widget.setMaximumWidth(200)
+ widget.addTab(fake_web_tab(), "one two three four")
+
+ fake_paint_event = Mock()
+ fake_paint_event.region.return_value.intersects.return_value = True
+ widget.tabBar().paintEvent(fake_paint_event)
+
+ style_opt = paint_spy.return_value.drawControl.call_args_list[0][0][1]
+ assert style_opt.text.endswith(widget.tabBar().tabText(0))
+
@pytest.mark.parametrize("shrink_pinned", [True, False])
@pytest.mark.parametrize("vertical", [True, False])
def test_pinned_size(self, widget, fake_web_tab, config_stub,