tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_restore_sidebar_automatic.py (3302B)


      1 # This Source Code Form is subject to the terms of the Mozilla Public
      2 # License, v. 0.0. If a copy of the MPL was not distributed with this
      3 # file, You can obtain one at http://mozilla.org/MPL/0.0/.
      4 
      5 import os
      6 import sys
      7 
      8 # add this directory to the path
      9 sys.path.append(os.path.dirname(__file__))
     10 
     11 from session_store_test_case import SessionStoreTestCase
     12 
     13 
     14 def inline(title):
     15    return f"data:text/html;charset=utf-8,<html><head><title>{title}</title></head><body></body></html>"
     16 
     17 
     18 class TestSessionRestore(SessionStoreTestCase):
     19    """
     20    Test that the sidebar and its attributes are restored on reopening of window.
     21    """
     22 
     23    def setUp(self):
     24        super().setUp(
     25            startup_page=3,
     26            include_private=False,
     27            restore_on_demand=False,
     28            test_windows=set([
     29                (
     30                    inline("lorem ipsom"),
     31                    inline("dolor"),
     32                ),
     33            ]),
     34        )
     35 
     36    def test_restore(self):
     37        self.assertEqual(
     38            len(self.marionette.chrome_window_handles),
     39            1,
     40            msg="Should have 1 window open.",
     41        )
     42        self.marionette.execute_script(
     43            """
     44            let window = BrowserWindowTracker.getTopWindow()
     45            window.SidebarController.show("viewHistorySidebar");
     46            let sidebarBox = window.document.getElementById("sidebar-box")
     47            sidebarBox.style.width = "100px";
     48            """
     49        )
     50 
     51        self.assertEqual(
     52            self.marionette.execute_script(
     53                """
     54                let window = BrowserWindowTracker.getTopWindow()
     55                return !window.document.getElementById("sidebar-box").hidden;
     56                """
     57            ),
     58            True,
     59            "Sidebar is open before window is closed.",
     60        )
     61 
     62        self.marionette.restart()
     63        self.marionette.set_context("chrome")
     64 
     65        self.assertEqual(
     66            len(self.marionette.chrome_window_handles),
     67            1,
     68            msg="Windows from last session have been restored.",
     69        )
     70 
     71        self.assertEqual(
     72            self.marionette.execute_script(
     73                """
     74                let window = BrowserWindowTracker.getTopWindow()
     75                return !window.document.getElementById("sidebar-box").hidden;
     76                """
     77            ),
     78            True,
     79            "Sidebar has been restored.",
     80        )
     81 
     82        self.assertEqual(
     83            self.marionette.execute_script(
     84                """
     85                let window = BrowserWindowTracker.getTopWindow()
     86                return window.document.getElementById("sidebar-box").style.width;
     87                """
     88            ),
     89            "100px",
     90            "Sidebar width been restored.",
     91        )
     92 
     93        self.assertEqual(
     94            self.marionette.execute_script(
     95                """
     96                const lazy = {};
     97                ChromeUtils.defineESModuleGetters(lazy, {
     98                    SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs",
     99                });
    100                let state = SessionStore.getCurrentState();
    101                return state.windows[0].sidebar.command;
    102                """
    103            ),
    104            "viewHistorySidebar",
    105            "Correct sidebar category has been restored.",
    106        )