Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2978)

Unified Diff: chrome/browser/extensions/suspicious_extension_bubble_controller_unittest.cc

Issue 95133002: Add an extension bubble explaining which extensions are in dev mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile error Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/suspicious_extension_bubble_controller_unittest.cc
diff --git a/chrome/browser/extensions/suspicious_extension_bubble_controller_unittest.cc b/chrome/browser/extensions/suspicious_extension_bubble_controller_unittest.cc
deleted file mode 100644
index 692079765fa53c69ae887d4ab4c5977b76b53b8c..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/suspicious_extension_bubble_controller_unittest.cc
+++ /dev/null
@@ -1,232 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/command_line.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/extensions/extension_function_test_utils.h"
-#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/suspicious_extension_bubble.h"
-#include "chrome/browser/extensions/suspicious_extension_bubble_controller.h"
-#include "chrome/browser/extensions/test_extension_system.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "extensions/common/extension.h"
-
-namespace extensions {
-
-// A test class for the SuspiciousExtensionBubbleController.
-class TestSuspiciousExtensionBubbleController
- : public SuspiciousExtensionBubbleController {
- public:
- explicit TestSuspiciousExtensionBubbleController(Profile* profile)
- : SuspiciousExtensionBubbleController(profile),
- dismiss_button_callback_count_(0),
- link_click_callback_count_(0) {
- }
-
- // Returns how often the dismiss button has been called.
- size_t dismiss_click_count() {
- return dismiss_button_callback_count_;
- }
-
- // Returns how often the link has been clicked.
- size_t link_click_count() {
- return link_click_callback_count_;
- }
-
- // Callbacks from bubble.
- virtual void OnBubbleDismiss() OVERRIDE {
- ++dismiss_button_callback_count_;
- SuspiciousExtensionBubbleController::OnBubbleDismiss();
- }
- virtual void OnLinkClicked() OVERRIDE {
- ++link_click_callback_count_;
- SuspiciousExtensionBubbleController::OnLinkClicked();
- }
-
- private:
- size_t dismiss_button_callback_count_;
- size_t link_click_callback_count_;
-};
-
-// A fake bubble used for testing the controller. Takes an action that specifies
-// what should happen when the bubble is "shown" (the bubble is actually not
-// shown, the corresponding action is taken immediately).
-class FakeSuspiciousExtensionBubble : public SuspiciousExtensionBubble {
- public:
- enum SuspiciousExtensionBubbleAction {
- BUBBLE_ACTION_CLICK_BUTTON = 0,
- BUBBLE_ACTION_CLICK_LINK
- };
-
- FakeSuspiciousExtensionBubble() {}
-
- void set_action_on_show(SuspiciousExtensionBubbleAction action) {
- action_ = action;
- }
-
- virtual void Show() OVERRIDE {
- if (action_ == BUBBLE_ACTION_CLICK_BUTTON)
- button_callback_.Run();
- else if (action_ == BUBBLE_ACTION_CLICK_LINK)
- link_callback_.Run();
- }
-
- virtual void OnButtonClicked(const base::Closure& callback) OVERRIDE {
- button_callback_ = callback;
- }
-
- virtual void OnLinkClicked(const base::Closure& callback) OVERRIDE {
- link_callback_ = callback;
- }
-
- private:
- SuspiciousExtensionBubbleAction action_;
-
- base::Closure button_callback_;
- base::Closure link_callback_;
-};
-
-class SuspiciousExtensionBubbleTest : public testing::Test {
- public:
- SuspiciousExtensionBubbleTest() {
- // The two lines of magical incantation required to get the extension
- // service to work inside a unit test and access the extension prefs.
- thread_bundle_.reset(new content::TestBrowserThreadBundle);
- profile_.reset(new TestingProfile);
- }
- virtual ~SuspiciousExtensionBubbleTest() {}
- virtual void SetUp() {
- command_line_.reset(new CommandLine(CommandLine::NO_PROGRAM));
- }
- scoped_ptr<CommandLine> command_line_;
-
- protected:
- scoped_refptr<Extension> CreateExtension(
- Manifest::Location location,
- const std::string& data,
- const std::string& id) {
- scoped_ptr<base::DictionaryValue> parsed_manifest(
- extension_function_test_utils::ParseDictionary(data));
- return extension_function_test_utils::CreateExtension(
- location,
- parsed_manifest.get(),
- id);
- }
-
- scoped_ptr<content::TestBrowserThreadBundle> thread_bundle_;
- scoped_ptr<TestingProfile> profile_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(SuspiciousExtensionBubbleTest);
-};
-
-// The feature this is meant to test is only implemented on Windows.
-#if defined(OS_WIN)
-#define MAYBE_ControllerTest ControllerTest
-#else
-#define MAYBE_ControllerTest DISABLED_ControllerTest
-#endif
-
-TEST_F(SuspiciousExtensionBubbleTest, MAYBE_ControllerTest) {
- std::string basic_extension =
- "{\"name\": \"Extension #\","
- "\"version\": \"1.0\","
- "\"manifest_version\": 2}";
-
- std::string extension_data;
- base::ReplaceChars(basic_extension, "#", "1", &extension_data);
- scoped_refptr<Extension> my_test_extension1(
- CreateExtension(
- Manifest::COMMAND_LINE,
- extension_data,
- "Autogenerated 1"));
-
- base::ReplaceChars(basic_extension, "#", "2", &extension_data);
- scoped_refptr<Extension> my_test_extension2(
- CreateExtension(
- Manifest::COMMAND_LINE,
- extension_data,
- "Autogenerated 2"));
-
- base::ReplaceChars(basic_extension, "#", "3", &extension_data);
- scoped_refptr<Extension> regular_extension(
- CreateExtension(
- Manifest::COMMAND_LINE,
- extension_data,
- "UnimportantId"));
-
- std::string extension_id1 = my_test_extension1->id();
- std::string extension_id2 = my_test_extension2->id();
-
- static_cast<TestExtensionSystem*>(
- ExtensionSystem::Get(profile_.get()))->CreateExtensionService(
- CommandLine::ForCurrentProcess(),
- base::FilePath(),
- false);
- ExtensionService* service = profile_->GetExtensionService();
- service->Init();
-
- service->AddExtension(regular_extension);
- service->AddExtension(my_test_extension1);
- service->AddExtension(my_test_extension2);
-
- scoped_ptr<TestSuspiciousExtensionBubbleController> controller(
- new TestSuspiciousExtensionBubbleController(profile_.get()));
- FakeSuspiciousExtensionBubble bubble;
- bubble.set_action_on_show(
- FakeSuspiciousExtensionBubble::BUBBLE_ACTION_CLICK_BUTTON);
-
- // Validate that we don't have a suppress value for the extensions.
- ExtensionPrefs* prefs = service->extension_prefs();
- EXPECT_FALSE(prefs->HasWipeoutBeenAcknowledged(extension_id1));
- EXPECT_FALSE(prefs->HasWipeoutBeenAcknowledged(extension_id2));
-
- EXPECT_FALSE(controller->HasSuspiciousExtensions());
- std::vector<string16> suspicious_extensions =
- controller->GetSuspiciousExtensionNames();
- EXPECT_EQ(0U, suspicious_extensions.size());
- EXPECT_EQ(0U, controller->link_click_count());
- EXPECT_EQ(0U, controller->dismiss_click_count());
-
- // Now disable an extension, specifying the wipeout flag.
- service->DisableExtension(extension_id1,
- Extension::DISABLE_NOT_VERIFIED);
-
- EXPECT_FALSE(prefs->HasWipeoutBeenAcknowledged(extension_id1));
- EXPECT_FALSE(prefs->HasWipeoutBeenAcknowledged(extension_id2));
- controller.reset(new TestSuspiciousExtensionBubbleController(profile_.get()));
- EXPECT_TRUE(controller->HasSuspiciousExtensions());
- suspicious_extensions = controller->GetSuspiciousExtensionNames();
- ASSERT_EQ(1U, suspicious_extensions.size());
- EXPECT_TRUE(ASCIIToUTF16("Extension 1") == suspicious_extensions[0]);
- controller->Show(&bubble); // Simulate showing the bubble.
- EXPECT_EQ(0U, controller->link_click_count());
- EXPECT_EQ(1U, controller->dismiss_click_count());
- // Now the acknowledge flag should be set only for the first extension.
- EXPECT_TRUE(prefs->HasWipeoutBeenAcknowledged(extension_id1));
- EXPECT_FALSE(prefs->HasWipeoutBeenAcknowledged(extension_id2));
- // Clear the flag.
- prefs->SetWipeoutAcknowledged(extension_id1, false);
- EXPECT_FALSE(prefs->HasWipeoutBeenAcknowledged(extension_id1));
-
- // Now disable the other extension and exercise the link click code path.
- service->DisableExtension(extension_id2,
- Extension::DISABLE_NOT_VERIFIED);
-
- bubble.set_action_on_show(
- FakeSuspiciousExtensionBubble::BUBBLE_ACTION_CLICK_LINK);
- controller.reset(new TestSuspiciousExtensionBubbleController(profile_.get()));
- EXPECT_TRUE(controller->HasSuspiciousExtensions());
- suspicious_extensions = controller->GetSuspiciousExtensionNames();
- ASSERT_EQ(2U, suspicious_extensions.size());
- EXPECT_TRUE(ASCIIToUTF16("Extension 1") == suspicious_extensions[1]);
- EXPECT_TRUE(ASCIIToUTF16("Extension 2") == suspicious_extensions[0]);
- controller->Show(&bubble); // Simulate showing the bubble.
- EXPECT_EQ(1U, controller->link_click_count());
- EXPECT_EQ(0U, controller->dismiss_click_count());
-}
-
-} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698