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
|
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 0.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/0.0/.
from marionette_harness import MarionetteTestCase
class TestNoToolbarChanges(MarionetteTestCase):
"""
Test that toolbar widgets remain in the same order over several restarts of the browser
"""
have_seen_import_button = False
def setUp(self):
super().setUp()
self.marionette.set_context("chrome")
def get_area_widgets(self, area):
return self.marionette.execute_script(
f"return CustomizableUI.getWidgetIdsInArea(CustomizableUI.{area}).map(id => id.includes('spring') ? 'spring' : id)"
)
def get_area_default_placements(self, area):
return self.marionette.execute_script(
f"return CustomizableUI.getDefaultPlacementsForArea(CustomizableUI.{area})"
)
def check_toolbar_placements(self):
self.assertEqual(
self.get_area_widgets("AREA_TABSTRIP"),
self.get_area_default_placements("AREA_TABSTRIP"),
msg="AREA_TABSTRIP placements are as expected",
)
navbarPlacements = self.get_area_default_placements("AREA_NAVBAR")
navbarPlacements.append("unified-extensions-button")
self.assertEqual(
self.get_area_widgets("AREA_NAVBAR"),
navbarPlacements,
msg="AREA_NAVBAR placements are as expected",
)
actualBookmarkPlacements = self.get_area_widgets("AREA_BOOKMARKS")
bookmarkPlacements = self.get_area_default_placements("AREA_BOOKMARKS")
# The import button is added lazily on startup, so we can't predict
# whether it'll be here. Turning it off via prefs=[] annotations on the
# test also doesn't work
# (https://bugzilla.mozilla.org/show_bug.cgi?id=1959688).
# So we simply accept placements either with or without the button - but
# if we ever see the button we should keep seeing it.
self.have_seen_import_button = (
self.have_seen_import_button or "import-button" in actualBookmarkPlacements
)
if self.have_seen_import_button:
self.assertEqual(
actualBookmarkPlacements,
["import-button"] + bookmarkPlacements,
msg="AREA_BOOKMARKS placements are as expected",
)
else:
self.assertEqual(
actualBookmarkPlacements,
bookmarkPlacements,
msg="AREA_BOOKMARKS placements are as expected",
)
self.assertEqual(
self.get_area_widgets("AREA_ADDONS"),
self.get_area_default_placements("AREA_ADDONS"),
msg="AREA_ADDONS placements are as expected",
)
self.assertEqual(
self.get_area_widgets("AREA_FIXED_OVERFLOW_PANEL"),
self.get_area_default_placements("AREA_FIXED_OVERFLOW_PANEL"),
msg="AREA_FIXED_OVERFLOW_PANEL placements are as expected",
)
def test_no_toolbar_changes(self):
self.check_toolbar_placements()
self.marionette.restart()
self.check_toolbar_placements()
self.marionette.restart()
self.check_toolbar_placements()
self.marionette.restart()
self.check_toolbar_placements()
self.marionette.restart()
self.check_toolbar_placements()
self.marionette.restart()
self.check_toolbar_placements()
|