Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

# 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_harness import MarionetteTestCase
customization_pref = "browser.uiCustomization.state"
class TestSidebarButtonRemoval(MarionetteTestCase):
def setUp(self):
super().setUp()
self.marionette.set_context("chrome")
def tearDown(self):
try:
# Make sure subsequent tests get a clean profile
self.marionette.restart(in_app=False, clean=True)
finally:
super().tearDown()
def get_sidebar_cui_area(self):
area = self.marionette.execute_script(
"""
const window = BrowserWindowTracker.getTopWindow();
return window.CustomizableUI.getPlacementOfWidget("sidebar-button")?.area;
"""
)
return area
def test_sidebar_enable_at_restart(self):
self.marionette.enforce_gecko_prefs({"sidebar.revamp": False})
self.assertEqual(
self.get_sidebar_cui_area(),
None,
"The sidebar-button is not placed in a toolbar",
)
# enable revamp at the next startup
self.marionette.enforce_gecko_prefs({"sidebar.revamp": True})
self.assertEqual(
self.get_sidebar_cui_area(),
"nav-bar",
"The sidebar-button gets placed in the nav-bar by default when starting up with revamp=true",
)
def test_sidebar_enable_at_runtime_remove_button(self):
self.marionette.enforce_gecko_prefs({"sidebar.revamp": False})
self.assertEqual(
self.get_sidebar_cui_area(),
None,
"The sidebar-button is not placed in a toolbar",
)
self.marionette.set_pref("sidebar.revamp", True)
self.assertEqual(
self.get_sidebar_cui_area(),
"nav-bar",
"The sidebar-button is in the nav-bar",
)
# Remove the button
self.marionette.execute_script(
"""
const window = BrowserWindowTracker.getTopWindow();
return window.CustomizableUI.removeWidgetFromArea("sidebar-button");
"""
)
self.assertEqual(
self.get_sidebar_cui_area(),
None,
"The sidebar-button is not placed in a toolbar",
)
self.assertEqual(
self.marionette.get_pref(
"browser.toolbarbuttons.introduced.sidebar-button"
),
True,
"The 'introduced' pref is set",
)
self.marionette.restart(in_app=True, clean=False)
self.marionette.set_context("chrome")
self.assertEqual(
self.get_sidebar_cui_area(),
None,
"The sidebar-button is not restored to the nav-bar",
)