summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_menu_manager_unittest.cc
diff options
context:
space:
mode:
authorasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-28 23:39:32 +0000
committerasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-28 23:39:32 +0000
commitf50da8599dba7fa98910d59535232926ff667fe2 (patch)
tree67ff48a5ecf87faf06baf89ce345cb7343f0a49f /chrome/browser/extensions/extension_menu_manager_unittest.cc
parentfab2b8f341094f1c24eefc61f8671c7ddc23ad38 (diff)
downloadchromium_src-f50da8599dba7fa98910d59535232926ff667fe2.zip
chromium_src-f50da8599dba7fa98910d59535232926ff667fe2.tar.gz
chromium_src-f50da8599dba7fa98910d59535232926ff667fe2.tar.bz2
Fix broken icons in new context menu items after removing previous items
BUG=59603 TEST=Have an extension add several context menu items. Verify that the context menu properly shows the extension's icon. Now call chrome.contextMenus.remove repeatedly to remove all the items. Then add one or more new ones. The icon should still show up properly, and not revert to the default puzzle piece icon. Review URL: http://codereview.chromium.org/4170008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64337 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_menu_manager_unittest.cc')
-rw-r--r--chrome/browser/extensions/extension_menu_manager_unittest.cc19
1 files changed, 18 insertions, 1 deletions
diff --git a/chrome/browser/extensions/extension_menu_manager_unittest.cc b/chrome/browser/extensions/extension_menu_manager_unittest.cc
index 489b5c6..56c95c4 100644
--- a/chrome/browser/extensions/extension_menu_manager_unittest.cc
+++ b/chrome/browser/extensions/extension_menu_manager_unittest.cc
@@ -211,7 +211,7 @@ TEST_F(ExtensionMenuManagerTest, DeleteParent) {
// Now remove item1 and make sure item2 and item3 are gone as well.
ASSERT_TRUE(manager_.RemoveContextMenuItem(item1_id));
- ASSERT_EQ(0u, manager_.MenuItems(extension->id())->size());
+ ASSERT_EQ(NULL, manager_.MenuItems(extension->id()));
ASSERT_EQ(0u, manager_.items_by_id_.size());
ASSERT_EQ(NULL, manager_.GetItemById(item1_id));
ASSERT_EQ(NULL, manager_.GetItemById(item2_id));
@@ -389,6 +389,23 @@ TEST_F(ExtensionMenuManagerTest, RemoveAll) {
EXPECT_EQ(NULL, manager_.MenuItems(extension1->id()));
}
+// Tests that removing all items one-by-one doesn't leave an entry around.
+TEST_F(ExtensionMenuManagerTest, RemoveOneByOne) {
+ // Add 2 test items.
+ Extension* extension1 = AddExtension("1111");
+ ExtensionMenuItem* item1 = CreateTestItem(extension1);
+ ExtensionMenuItem* item2 = CreateTestItem(extension1);
+ ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
+ ASSERT_TRUE(manager_.AddContextItem(extension1, item2));
+
+ ASSERT_FALSE(manager_.context_items_.empty());
+
+ manager_.RemoveContextMenuItem(item1->id());
+ manager_.RemoveContextMenuItem(item2->id());
+
+ ASSERT_TRUE(manager_.context_items_.empty());
+}
+
TEST_F(ExtensionMenuManagerTest, ExecuteCommand) {
MessageLoopForUI message_loop;
BrowserThread ui_thread(BrowserThread::UI, &message_loop);