| Index: chrome/browser/extensions/menu_manager_unittest.cc
|
| diff --git a/chrome/browser/extensions/menu_manager_unittest.cc b/chrome/browser/extensions/menu_manager_unittest.cc
|
| index 02748867fab16e96efabe0f1ea7de8724054f70f..2cc739f9b8cec8b4510d705b44f433ece17cfcf4 100644
|
| --- a/chrome/browser/extensions/menu_manager_unittest.cc
|
| +++ b/chrome/browser/extensions/menu_manager_unittest.cc
|
| @@ -62,7 +62,8 @@ class MenuManagerTest : public testing::Test {
|
| MenuItem* CreateTestItem(Extension* extension, bool incognito = false) {
|
| MenuItem::Type type = MenuItem::NORMAL;
|
| MenuItem::ContextList contexts(MenuItem::ALL);
|
| - MenuItem::Id id(incognito, extension->id());
|
| + const MenuItem::ExtensionKey key(extension->id());
|
| + MenuItem::Id id(incognito, key);
|
| id.uid = next_id_++;
|
| return new MenuItem(id, "test", false, true, type, contexts);
|
| }
|
| @@ -72,7 +73,8 @@ class MenuManagerTest : public testing::Test {
|
| const std::string& string_id) {
|
| MenuItem::Type type = MenuItem::NORMAL;
|
| MenuItem::ContextList contexts(MenuItem::ALL);
|
| - MenuItem::Id id(false, extension->id());
|
| + const MenuItem::ExtensionKey key(extension->id());
|
| + MenuItem::Id id(false, key);
|
| id.string_uid = string_id;
|
| return new MenuItem(id, "test", false, true, type, contexts);
|
| }
|
| @@ -109,7 +111,7 @@ TEST_F(MenuManagerTest, AddGetRemoveItems) {
|
| ASSERT_TRUE(item1 != NULL);
|
| ASSERT_TRUE(manager_.AddContextItem(extension, item1));
|
| ASSERT_EQ(item1, manager_.GetItemById(item1->id()));
|
| - const MenuItem::List* items = manager_.MenuItems(item1->extension_id());
|
| + const MenuItem::List* items = manager_.MenuItems(item1->id().extension_key);
|
| ASSERT_EQ(1u, items->size());
|
| ASSERT_EQ(item1, items->at(0));
|
|
|
| @@ -117,7 +119,7 @@ TEST_F(MenuManagerTest, AddGetRemoveItems) {
|
| MenuItem* item2 = CreateTestItemWithID(extension, "id2");
|
| ASSERT_TRUE(manager_.AddContextItem(extension, item2));
|
| ASSERT_EQ(item2, manager_.GetItemById(item2->id()));
|
| - items = manager_.MenuItems(item2->extension_id());
|
| + items = manager_.MenuItems(item2->id().extension_key);
|
| ASSERT_EQ(2u, items->size());
|
| ASSERT_EQ(item1, items->at(0));
|
| ASSERT_EQ(item2, items->at(1));
|
| @@ -125,16 +127,17 @@ TEST_F(MenuManagerTest, AddGetRemoveItems) {
|
| // Try adding item 3, then removing it.
|
| MenuItem* item3 = CreateTestItem(extension);
|
| MenuItem::Id id3 = item3->id();
|
| - std::string extension_id = item3->extension_id();
|
| + const MenuItem::ExtensionKey extension_key3(item3->id().extension_key);
|
| ASSERT_TRUE(manager_.AddContextItem(extension, item3));
|
| ASSERT_EQ(item3, manager_.GetItemById(id3));
|
| - ASSERT_EQ(3u, manager_.MenuItems(extension_id)->size());
|
| + ASSERT_EQ(3u, manager_.MenuItems(extension_key3)->size());
|
| ASSERT_TRUE(manager_.RemoveContextMenuItem(id3));
|
| ASSERT_EQ(NULL, manager_.GetItemById(id3));
|
| - ASSERT_EQ(2u, manager_.MenuItems(extension_id)->size());
|
| + ASSERT_EQ(2u, manager_.MenuItems(extension_key3)->size());
|
|
|
| // Make sure removing a non-existent item returns false.
|
| - MenuItem::Id id(false, extension->id());
|
| + const MenuItem::ExtensionKey key(extension->id());
|
| + MenuItem::Id id(false, key);
|
| id.uid = id3.uid + 50;
|
| ASSERT_FALSE(manager_.RemoveContextMenuItem(id));
|
|
|
| @@ -181,8 +184,8 @@ TEST_F(MenuManagerTest, ChildFunctions) {
|
| ASSERT_EQ(0, item1->child_count());
|
| ASSERT_EQ(item2_child, manager_.GetItemById(id2_child));
|
|
|
| - ASSERT_EQ(1u, manager_.MenuItems(item1->extension_id())->size());
|
| - ASSERT_EQ(item1, manager_.MenuItems(item1->extension_id())->at(0));
|
| + ASSERT_EQ(1u, manager_.MenuItems(item1->id().extension_key)->size());
|
| + ASSERT_EQ(item1, manager_.MenuItems(item1->id().extension_key)->at(0));
|
|
|
| // Add item2_grandchild as a child of item2_child, then remove it.
|
| MenuItem::Id id2_grandchild = item2_grandchild->id();
|
| @@ -193,13 +196,13 @@ TEST_F(MenuManagerTest, ChildFunctions) {
|
|
|
| // We should only get 1 thing back when asking for item2's extension id, since
|
| // it has a child item.
|
| - ASSERT_EQ(1u, manager_.MenuItems(item2->extension_id())->size());
|
| - ASSERT_EQ(item2, manager_.MenuItems(item2->extension_id())->at(0));
|
| + ASSERT_EQ(1u, manager_.MenuItems(item2->id().extension_key)->size());
|
| + ASSERT_EQ(item2, manager_.MenuItems(item2->id().extension_key)->at(0));
|
|
|
| // Remove child2_item.
|
| ASSERT_TRUE(manager_.RemoveContextMenuItem(id2_child));
|
| - ASSERT_EQ(1u, manager_.MenuItems(item2->extension_id())->size());
|
| - ASSERT_EQ(item2, manager_.MenuItems(item2->extension_id())->at(0));
|
| + ASSERT_EQ(1u, manager_.MenuItems(item2->id().extension_key)->size());
|
| + ASSERT_EQ(item2, manager_.MenuItems(item2->id().extension_key)->at(0));
|
| ASSERT_EQ(0, item2->child_count());
|
| }
|
|
|
| @@ -284,6 +287,7 @@ TEST_F(MenuManagerTest, DeleteParent) {
|
| MenuItem::Id item4_id = item4->id();
|
| MenuItem::Id item5_id = item5->id();
|
| MenuItem::Id item6_id = item6->id();
|
| + const MenuItem::ExtensionKey key(extension->id());
|
|
|
| // Add the items in the hierarchy
|
| // item1 -> item2 -> item3 -> item4 -> item5 -> item6.
|
| @@ -299,7 +303,7 @@ TEST_F(MenuManagerTest, DeleteParent) {
|
| ASSERT_EQ(item4, manager_.GetItemById(item4_id));
|
| ASSERT_EQ(item5, manager_.GetItemById(item5_id));
|
| ASSERT_EQ(item6, manager_.GetItemById(item6_id));
|
| - ASSERT_EQ(1u, manager_.MenuItems(extension->id())->size());
|
| + ASSERT_EQ(1u, manager_.MenuItems(key)->size());
|
| ASSERT_EQ(6u, manager_.items_by_id_.size());
|
|
|
| // Remove item6 (a leaf node).
|
| @@ -310,7 +314,7 @@ TEST_F(MenuManagerTest, DeleteParent) {
|
| ASSERT_EQ(item4, manager_.GetItemById(item4_id));
|
| ASSERT_EQ(item5, manager_.GetItemById(item5_id));
|
| ASSERT_EQ(NULL, manager_.GetItemById(item6_id));
|
| - ASSERT_EQ(1u, manager_.MenuItems(extension->id())->size());
|
| + ASSERT_EQ(1u, manager_.MenuItems(key)->size());
|
| ASSERT_EQ(5u, manager_.items_by_id_.size());
|
|
|
| // Remove item4 and make sure item5 is gone as well.
|
| @@ -320,12 +324,12 @@ TEST_F(MenuManagerTest, DeleteParent) {
|
| ASSERT_EQ(item3, manager_.GetItemById(item3_id));
|
| ASSERT_EQ(NULL, manager_.GetItemById(item4_id));
|
| ASSERT_EQ(NULL, manager_.GetItemById(item5_id));
|
| - ASSERT_EQ(1u, manager_.MenuItems(extension->id())->size());
|
| + ASSERT_EQ(1u, manager_.MenuItems(key)->size());
|
| ASSERT_EQ(3u, manager_.items_by_id_.size());
|
|
|
| // Now remove item1 and make sure item2 and item3 are gone as well.
|
| ASSERT_TRUE(manager_.RemoveContextMenuItem(item1_id));
|
| - ASSERT_EQ(NULL, manager_.MenuItems(extension->id()));
|
| + ASSERT_EQ(NULL, manager_.MenuItems(key));
|
| ASSERT_EQ(0u, manager_.items_by_id_.size());
|
| ASSERT_EQ(NULL, manager_.GetItemById(item1_id));
|
| ASSERT_EQ(NULL, manager_.GetItemById(item2_id));
|
| @@ -343,7 +347,7 @@ TEST_F(MenuManagerTest, ChangeParent) {
|
| ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
|
| ASSERT_TRUE(manager_.AddContextItem(extension1, item2));
|
|
|
| - const MenuItem::List* items = manager_.MenuItems(item1->extension_id());
|
| + const MenuItem::List* items = manager_.MenuItems(item1->id().extension_key);
|
| ASSERT_EQ(2u, items->size());
|
| ASSERT_EQ(item1, items->at(0));
|
| ASSERT_EQ(item2, items->at(1));
|
| @@ -370,7 +374,7 @@ TEST_F(MenuManagerTest, ChangeParent) {
|
|
|
| // Since item2 was a top-level item but is no longer, we should only have 1
|
| // top-level item.
|
| - items = manager_.MenuItems(item1->extension_id());
|
| + items = manager_.MenuItems(item1->id().extension_key);
|
| ASSERT_EQ(1u, items->size());
|
| ASSERT_EQ(item1, items->at(0));
|
|
|
| @@ -386,13 +390,13 @@ TEST_F(MenuManagerTest, ChangeParent) {
|
| ASSERT_EQ(2, item1->child_count());
|
| ASSERT_EQ(item2, item1->children()[0]);
|
| ASSERT_EQ(item3, item1->children()[1]);
|
| - items = manager_.MenuItems(item1->extension_id());
|
| + items = manager_.MenuItems(item1->id().extension_key);
|
| ASSERT_EQ(1u, items->size());
|
| ASSERT_EQ(item1, items->at(0));
|
|
|
| // Move item2 to be a top-level item.
|
| ASSERT_TRUE(manager_.ChangeParent(item2->id(), NULL));
|
| - items = manager_.MenuItems(item1->extension_id());
|
| + items = manager_.MenuItems(item1->id().extension_key);
|
| ASSERT_EQ(2u, items->size());
|
| ASSERT_EQ(item1, items->at(0));
|
| ASSERT_EQ(item2, items->at(1));
|
| @@ -425,7 +429,8 @@ TEST_F(MenuManagerTest, ExtensionUnloadRemovesMenuItems) {
|
| MenuItem::Id id1 = item1->id();
|
| ASSERT_EQ(extension1->id(), item1->extension_id());
|
| ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
|
| - ASSERT_EQ(1u, manager_.MenuItems(extension1->id())->size());
|
| + ASSERT_EQ(
|
| + 1u, manager_.MenuItems(MenuItem::ExtensionKey(extension1->id()))->size());
|
|
|
| // Create a menu item with a different extension id and add it to the manager.
|
| Extension* extension2 = AddExtension("2222");
|
| @@ -441,8 +446,9 @@ TEST_F(MenuManagerTest, ExtensionUnloadRemovesMenuItems) {
|
| content::Source<Profile>(&profile_),
|
| content::Details<UnloadedExtensionInfo>(
|
| &details));
|
| - ASSERT_EQ(NULL, manager_.MenuItems(extension1->id()));
|
| - ASSERT_EQ(1u, manager_.MenuItems(extension2->id())->size());
|
| + ASSERT_EQ(NULL, manager_.MenuItems(MenuItem::ExtensionKey(extension1->id())));
|
| + ASSERT_EQ(
|
| + 1u, manager_.MenuItems(MenuItem::ExtensionKey(extension2->id()))->size());
|
| ASSERT_TRUE(manager_.GetItemById(id1) == NULL);
|
| ASSERT_TRUE(manager_.GetItemById(item2->id()) != NULL);
|
| }
|
| @@ -500,7 +506,7 @@ BrowserContextKeyedService* BuildMockExtensionSystem(
|
| // Tests the RemoveAll functionality.
|
| TEST_F(MenuManagerTest, RemoveAll) {
|
| // Try removing all items for an extension id that doesn't have any items.
|
| - manager_.RemoveAllContextItems("CCCC");
|
| + manager_.RemoveAllContextItems(MenuItem::ExtensionKey("CCCC"));
|
|
|
| // Add 2 top-level and one child item for extension 1.
|
| Extension* extension1 = AddExtension("1111");
|
| @@ -516,17 +522,19 @@ TEST_F(MenuManagerTest, RemoveAll) {
|
| MenuItem* item4 = CreateTestItem(extension2);
|
| ASSERT_TRUE(manager_.AddContextItem(extension2, item4));
|
|
|
| - EXPECT_EQ(2u, manager_.MenuItems(extension1->id())->size());
|
| - EXPECT_EQ(1u, manager_.MenuItems(extension2->id())->size());
|
| + const MenuItem::ExtensionKey key1(extension1->id());
|
| + const MenuItem::ExtensionKey key2(extension2->id());
|
| + EXPECT_EQ(2u, manager_.MenuItems(key1)->size());
|
| + EXPECT_EQ(1u, manager_.MenuItems(key2)->size());
|
|
|
| // Remove extension2's item.
|
| - manager_.RemoveAllContextItems(extension2->id());
|
| - EXPECT_EQ(2u, manager_.MenuItems(extension1->id())->size());
|
| - EXPECT_EQ(NULL, manager_.MenuItems(extension2->id()));
|
| + manager_.RemoveAllContextItems(key2);
|
| + EXPECT_EQ(2u, manager_.MenuItems(key1)->size());
|
| + EXPECT_EQ(NULL, manager_.MenuItems(key2));
|
|
|
| // Remove extension1's items.
|
| - manager_.RemoveAllContextItems(extension1->id());
|
| - EXPECT_EQ(NULL, manager_.MenuItems(extension1->id()));
|
| + manager_.RemoveAllContextItems(key1);
|
| + EXPECT_EQ(NULL, manager_.MenuItems(key1));
|
| }
|
|
|
| // Tests that removing all items one-by-one doesn't leave an entry around.
|
| @@ -748,13 +756,15 @@ TEST_F(MenuManagerTest, RemoveAllIncognito) {
|
| MenuItem* item7 = CreateTestItem(extension2);
|
| ASSERT_TRUE(manager_.AddContextItem(extension2, item7));
|
|
|
| - EXPECT_EQ(4u, manager_.MenuItems(extension1->id())->size());
|
| - EXPECT_EQ(1u, manager_.MenuItems(extension2->id())->size());
|
| + const MenuItem::ExtensionKey key1(extension1->id());
|
| + const MenuItem::ExtensionKey key2(extension2->id());
|
| + EXPECT_EQ(4u, manager_.MenuItems(key1)->size());
|
| + EXPECT_EQ(1u, manager_.MenuItems(key2)->size());
|
|
|
| // Remove all context menu items with incognito true.
|
| manager_.RemoveAllIncognitoContextItems();
|
| - EXPECT_EQ(2u, manager_.MenuItems(extension1->id())->size());
|
| - EXPECT_EQ(1u, manager_.MenuItems(extension2->id())->size());
|
| + EXPECT_EQ(2u, manager_.MenuItems(key1)->size());
|
| + EXPECT_EQ(1u, manager_.MenuItems(key2)->size());
|
| }
|
|
|
| } // namespace extensions
|
|
|