| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 // Base class for tests. | 39 // Base class for tests. |
| 40 class MenuManagerTest : public testing::Test { | 40 class MenuManagerTest : public testing::Test { |
| 41 public: | 41 public: |
| 42 MenuManagerTest() : ui_thread_(BrowserThread::UI, &message_loop_), | 42 MenuManagerTest() : ui_thread_(BrowserThread::UI, &message_loop_), |
| 43 file_thread_(BrowserThread::FILE, &message_loop_), | 43 file_thread_(BrowserThread::FILE, &message_loop_), |
| 44 manager_(&profile_), | 44 manager_(&profile_), |
| 45 next_id_(1) { | 45 next_id_(1) { |
| 46 } | 46 } |
| 47 | 47 |
| 48 // Returns a test item. | 48 // Returns a test item. |
| 49 MenuItem* CreateTestItem(Extension* extension) { | 49 MenuItem* CreateTestItem(Extension* extension, bool incognito = false) { |
| 50 MenuItem::Type type = MenuItem::NORMAL; | 50 MenuItem::Type type = MenuItem::NORMAL; |
| 51 MenuItem::ContextList contexts(MenuItem::ALL); | 51 MenuItem::ContextList contexts(MenuItem::ALL); |
| 52 MenuItem::Id id(false, extension->id()); | 52 MenuItem::Id id(incognito, extension->id()); |
| 53 id.uid = next_id_++; | 53 id.uid = next_id_++; |
| 54 return new MenuItem(id, "test", false, true, type, contexts); | 54 return new MenuItem(id, "test", false, true, type, contexts); |
| 55 } | 55 } |
| 56 | 56 |
| 57 // Returns a test item with the given string ID. | 57 // Returns a test item with the given string ID. |
| 58 MenuItem* CreateTestItemWithID(Extension* extension, | 58 MenuItem* CreateTestItemWithID(Extension* extension, |
| 59 const std::string& string_id) { | 59 const std::string& string_id) { |
| 60 MenuItem::Type type = MenuItem::NORMAL; | 60 MenuItem::Type type = MenuItem::NORMAL; |
| 61 MenuItem::ContextList contexts(MenuItem::ALL); | 61 MenuItem::ContextList contexts(MenuItem::ALL); |
| 62 MenuItem::Id id(false, extension->id()); | 62 MenuItem::Id id(false, extension->id()); |
| (...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 ASSERT_TRUE(new_item->checked()); | 684 ASSERT_TRUE(new_item->checked()); |
| 685 ASSERT_TRUE(child1->checked()); | 685 ASSERT_TRUE(child1->checked()); |
| 686 | 686 |
| 687 // Removing |parent| should cause only |child1| to be selected. | 687 // Removing |parent| should cause only |child1| to be selected. |
| 688 manager_.RemoveContextMenuItem(parent->id()); | 688 manager_.RemoveContextMenuItem(parent->id()); |
| 689 parent = NULL; | 689 parent = NULL; |
| 690 ASSERT_FALSE(new_item->checked()); | 690 ASSERT_FALSE(new_item->checked()); |
| 691 ASSERT_TRUE(child1->checked()); | 691 ASSERT_TRUE(child1->checked()); |
| 692 } | 692 } |
| 693 | 693 |
| 694 // Tests the RemoveAllIncognitoContextItems functionality. |
| 695 TEST_F(MenuManagerTest, RemoveAllIncognito) { |
| 696 Extension* extension1 = AddExtension("1111"); |
| 697 // Add 2 top-level and one child item for extension 1 |
| 698 // with incognito 'true'. |
| 699 MenuItem* item1 = CreateTestItem(extension1, true); |
| 700 MenuItem* item2 = CreateTestItem(extension1, true); |
| 701 MenuItem* item3 = CreateTestItem(extension1, true); |
| 702 ASSERT_TRUE(manager_.AddContextItem(extension1, item1)); |
| 703 ASSERT_TRUE(manager_.AddContextItem(extension1, item2)); |
| 704 ASSERT_TRUE(manager_.AddChildItem(item1->id(), item3)); |
| 705 |
| 706 // Add 2 top-level and one child item for extension 1 |
| 707 // with incognito 'false'. |
| 708 MenuItem* item4 = CreateTestItem(extension1); |
| 709 MenuItem* item5 = CreateTestItem(extension1); |
| 710 MenuItem* item6 = CreateTestItem(extension1); |
| 711 ASSERT_TRUE(manager_.AddContextItem(extension1, item4)); |
| 712 ASSERT_TRUE(manager_.AddContextItem(extension1, item5)); |
| 713 ASSERT_TRUE(manager_.AddChildItem(item4->id(), item6)); |
| 714 |
| 715 // Add one top-level item for extension 2. |
| 716 Extension* extension2 = AddExtension("2222"); |
| 717 MenuItem* item7 = CreateTestItem(extension2); |
| 718 ASSERT_TRUE(manager_.AddContextItem(extension2, item7)); |
| 719 |
| 720 EXPECT_EQ(4u, manager_.MenuItems(extension1->id())->size()); |
| 721 EXPECT_EQ(1u, manager_.MenuItems(extension2->id())->size()); |
| 722 |
| 723 // Remove all context menu items with incognito true. |
| 724 manager_.RemoveAllIncognitoContextItems(); |
| 725 EXPECT_EQ(2u, manager_.MenuItems(extension1->id())->size()); |
| 726 EXPECT_EQ(1u, manager_.MenuItems(extension2->id())->size()); |
| 727 } |
| 728 |
| 694 } // namespace extensions | 729 } // namespace extensions |
| OLD | NEW |