summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_menu_manager_unittest.cc
diff options
context:
space:
mode:
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);