diff --git a/tests/integration/features/test_zoom.py b/tests/integration/features/test_zoom.py index 92c7f2b6e..8f96f2ba3 100644 --- a/tests/integration/features/test_zoom.py +++ b/tests/integration/features/test_zoom.py @@ -19,3 +19,10 @@ import pytest_bdd as bdd bdd.scenarios('zoom.feature') + + +@bdd.then(bdd.parsers.parse("the zoom should be {zoom}%")) +def check_zoom(quteproc, zoom): + data = quteproc.get_session() + value = data['windows'][0]['tabs'][0]['history'][0]['zoom'] * 100 + assert abs(value - float(zoom)) < 0.0001 diff --git a/tests/integration/features/zoom.feature b/tests/integration/features/zoom.feature index 6080eb59a..bf9c80086 100644 --- a/tests/integration/features/zoom.feature +++ b/tests/integration/features/zoom.feature @@ -2,41 +2,31 @@ Feature: Zooming in and out Background: Given I open data/hello.txt + And I set ui -> zoom-levels to 50%,90%,110% And I run :tab-only Scenario: Zooming in When I run :zoom-in Then the message "Zoom level: 110%" should be shown. - And the session should look like: - windows: - - tabs: - - history: - - zoom: 1.1 + And the zoom should be 110% Scenario: Zooming out When I run :zoom-out Then the message "Zoom level: 90%" should be shown. - And the session should look like: - windows: - - tabs: - - history: - - zoom: 0.9 + And the zoom should be 90% Scenario: Setting zoom When I run :zoom 50 Then the message "Zoom level: 50%" should be shown. - And the session should look like: - windows: - - tabs: - - history: - - zoom: 0.5 + And the zoom should be 50% Scenario: Resetting zoom - When I run :zoom 50 + When I set ui -> default-zoom to 42% + And I run :zoom 50 And I run :zoom - Then the message "Zoom level: 100%" should be shown. - And the session should look like: - windows: - - tabs: - - history: - - zoom: 1.0 + Then the message "Zoom level: 42%" should be shown. + And the zoom should be 42% + + Scenario: Setting zoom to invalid value + When I run :zoom -1 + Then the error "Can't zoom -1%!" should be shown.