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 )