| Index: chrome/browser/extensions/extension_toolbar_model_unittest.cc
|
| diff --git a/chrome/browser/extensions/extension_toolbar_model_unittest.cc b/chrome/browser/extensions/extension_toolbar_model_unittest.cc
|
| index d7765a438388de38e29e955d1e3f54ef63fb6c23..952527ca1b6ced39c5b994537edd0d21adf02dd7 100644
|
| --- a/chrome/browser/extensions/extension_toolbar_model_unittest.cc
|
| +++ b/chrome/browser/extensions/extension_toolbar_model_unittest.cc
|
| @@ -1311,4 +1311,40 @@ TEST_F(ExtensionToolbarModelUnitTest, ModelWaitsForExtensionSystemReady) {
|
| EXPECT_EQ(1u, model_observer.initialized_count());
|
| }
|
|
|
| +// Check that the toolbar model correctly clears and reorders when it detects
|
| +// a preference change.
|
| +TEST_F(ExtensionToolbarModelUnitTest, ToolbarModelPrefChange) {
|
| + Init();
|
| +
|
| + ASSERT_TRUE(AddBrowserActionExtensions());
|
| +
|
| + // We should start in the basic A B C order.
|
| + ASSERT_TRUE(browser_action_a());
|
| + EXPECT_EQ(browser_action_a(), GetExtensionAtIndex(0));
|
| + EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(1));
|
| + EXPECT_EQ(browser_action_c(), GetExtensionAtIndex(2));
|
| + // Record the difference between the inserted and removed counts. The actual
|
| + // value of the counts is not important, but we need to be sure that if we
|
| + // call to remove any, we also add them back.
|
| + size_t inserted_and_removed_difference =
|
| + observer()->inserted_count() - observer()->removed_count();
|
| +
|
| + // Assign a new order, B C A, and write it in the prefs.
|
| + ExtensionIdList new_order;
|
| + new_order.push_back(browser_action_b()->id());
|
| + new_order.push_back(browser_action_c()->id());
|
| + new_order.push_back(browser_action_a()->id());
|
| + ExtensionPrefs::Get(profile())->SetToolbarOrder(new_order);
|
| +
|
| + // Ensure everything has time to run.
|
| + base::RunLoop().RunUntilIdle();
|
| +
|
| + // The new order should be reflected in the model.
|
| + EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(0));
|
| + EXPECT_EQ(browser_action_c(), GetExtensionAtIndex(1));
|
| + EXPECT_EQ(browser_action_a(), GetExtensionAtIndex(2));
|
| + EXPECT_EQ(inserted_and_removed_difference,
|
| + observer()->inserted_count() - observer()->removed_count());
|
| +}
|
| +
|
| } // namespace extensions
|
|
|