File: test_last_used_sidebar_panel.py

package info (click to toggle)
firefox 141.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,550,588 kB
  • sloc: cpp: 7,426,506; javascript: 6,367,238; ansic: 3,707,351; python: 1,369,002; xml: 623,983; asm: 426,918; java: 184,324; sh: 64,488; makefile: 19,203; objc: 13,059; perl: 12,955; yacc: 4,583; cs: 3,846; pascal: 3,352; lex: 1,720; ruby: 1,071; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (91 lines) | stat: -rw-r--r-- 3,129 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.


from marionette_driver import Wait
from marionette_harness import MarionetteTestCase


class TestLastUsedSidebarPanel(MarionetteTestCase):
    def setUp(self):
        super().setUp()
        self.marionette.set_context("chrome")
        # Add the sidebar button widget at the start of the horizontal tabstrip
        self.marionette.execute_script(
            "CustomizableUI.addWidgetToArea('sidebar-button', CustomizableUI.AREA_NAVBAR, 0)"
        )

    def tearDown(self):
        try:
            # Make sure subsequent tests get a clean profile
            self.marionette.restart(in_app=False, clean=True)
        finally:
            super().tearDown()

    def click_toolbar_button(self):
        # Click the button to show the launcher
        self.marionette.execute_script(
            """
            const window = BrowserWindowTracker.getTopWindow();
            return window.document.getElementById("sidebar-button").click()
            """
        )

    def is_sidebar_panel_visible(self):
        hidden = self.marionette.execute_script(
            """
            const window = BrowserWindowTracker.getTopWindow();
            return window.document.getElementById("sidebar-box").hidden;
            """
        )
        return not hidden

    def get_current_sidebar_id(self):
        return self.marionette.execute_script(
            """
            const window = BrowserWindowTracker.getTopWindow();
            return window.document.getElementById("sidebar-box").getAttribute("sidebarcommand");
            """
        )

    def test_panel_reopened_legacy(self):
        self.assertFalse(
            self.is_sidebar_panel_visible(), "The sidebar panel is not initially shown"
        )
        self.assertEqual(
            self.get_current_sidebar_id(), None, "The sidebar panel has no current ID"
        )

        # Open the history sidebar
        self.marionette.execute_script(
            """
            const window = BrowserWindowTracker.getTopWindow();
            return window.SidebarController.toggle("viewHistorySidebar");
            """
        )

        Wait(self.marionette).until(
            lambda _: self.get_current_sidebar_id() == "viewHistorySidebar",
            message="The history sidebar is visible",
        )

        # Click the toolbar button to close the panel
        self.click_toolbar_button()

        self.assertFalse(
            self.is_sidebar_panel_visible(), "The sidebar panel is now closed"
        )

        self.marionette.restart(clean=False, in_app=True)
        self.marionette.set_context("chrome")

        self.assertFalse(
            self.is_sidebar_panel_visible(), "The sidebar panel is initially closed"
        )
        self.click_toolbar_button()

        Wait(self.marionette).until(
            lambda _: self.get_current_sidebar_id() == "viewHistorySidebar",
            message="The history sidebar is visible",
        )