diff --git a/tests/test.py b/tests/test.py index 9633fdfff..a114788f2 100644 --- a/tests/test.py +++ b/tests/test.py @@ -684,6 +684,67 @@ def test_06_quit(self): class TestBatch6(PdfArrangerTest): + """Test hide margins and merge pages""" + def test_01_import_pdf(self): + self._start(["tests/test.pdf"]) + + def test_02_merge_pages(self): + if not have_pikepdf3(): + return + self._popupmenu(0, ["Select", "Select All"]) + self._popupmenu(0, "Merge Pages…") + dialog = self._app().child(roleName="dialog") + dialog.child(name="OK").click() + self._wait_cond(lambda: dialog.dead) + + def test_03_hide_margins(self): + if not have_pikepdf3(): + return + self._popupmenu(0, ["Select", "Select All"]) + self._assert_selected("1") + self._app().keyCombo("H") + dialog = self._app().child(roleName="dialog") + x_left = dialog.position[0] + 25 # 25 = padding in DrawingAreaWidget + y_center = dialog.position[1] + dialog.size[1] / 2 + hidepanel = dialog.child(name="Hide Margins") + left_hide = self._find_by_role("spin button", hidepanel)[3] + from dogtail import rawinput + for button, expected in [["Apply", "14.9"], ["Revert", "0.0"], ["Apply", "14.9"]]: + rawinput.drag((x_left, y_center), (x_left + 220, y_center)) + rawinput.drag((x_left + 250, y_center), (x_left + 75, y_center)) + dialog.child(name=button).click() + self.assertEqual(left_hide.text, expected) + dialog.child(name="OK").click() + self._wait_cond(lambda: dialog.dead) + + def test_04_export(self): + self._popupmenu(0, ["Select", "Select All"]) + self._mainmenu(["Export", "Export Selection to a Single File…"]) + self._save_as_chooser("hide.pdf") + self._assert_file_size("hide.pdf", 1713 if have_pikepdf3() else 1456) + + if have_pikepdf3(): + self._assert_page_content("hide.pdf", ( + b' /BBox [', b' 182.384106\n', b' 0\n', b' 514.728477\n', b' 792\n', + b'1 0 0 rg 530 180 m 70 180 l 300 580 l h 530 180 m B')) + + def test_05_merge_pages(self): + if not have_pikepdf3(): + return + self._popupmenu(0, ["Select", "Select All"]) + self._popupmenu(0, "Merge Pages…") + dialog = self._app().child(roleName="dialog") + dialog.child(name="OK").click() + self._wait_cond(lambda: dialog.dead) + + def test_06_quit(self): + if have_pikepdf3(): + self._quit_without_saving() + else: + self._quit() + + +class TestBatch7(PdfArrangerTest): """Test Open action""" # Kill X11 after that batch