Index: chrome/browser/extensions/extension_message_bubble_controller_unittest.cc |
diff --git a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc |
index 1a500921b86ce38ffdfa554970a087111bf4e3a5..40f7c48061ac185f1dd3d9d5067e0ed2c8861679 100644 |
--- a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc |
+++ b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc |
@@ -33,12 +33,6 @@ |
#include "extensions/common/value_builder.h" |
#include "testing/gtest/include/gtest/gtest.h" |
-#if defined(OS_CHROMEOS) |
-#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" |
-#include "chrome/browser/chromeos/settings/cros_settings.h" |
-#include "chrome/browser/chromeos/settings/device_settings_service.h" |
-#endif |
- |
namespace { |
const char kId1[] = "iccfkkhkfiphcjdakkmcjmkfboccmndk"; |
@@ -213,29 +207,39 @@ |
BUBBLE_ACTION_CLICK_LINK, |
}; |
- FakeExtensionMessageBubble() : controller_(nullptr) {} |
+ FakeExtensionMessageBubble() {} |
void set_action_on_show(ExtensionBubbleAction action) { |
action_ = action; |
} |
- void set_controller(ExtensionMessageBubbleController* controller) { |
- controller_ = controller; |
- } |
void Show() override { |
if (action_ == BUBBLE_ACTION_CLICK_ACTION_BUTTON) |
- controller_->OnBubbleAction(); |
+ action_callback_.Run(); |
else if (action_ == BUBBLE_ACTION_CLICK_DISMISS_BUTTON) |
- controller_->OnBubbleDismiss(); |
+ dismiss_callback_.Run(); |
else if (action_ == BUBBLE_ACTION_CLICK_LINK) |
- controller_->OnLinkClicked(); |
+ link_callback_.Run(); |
+ } |
+ |
+ void OnActionButtonClicked(const base::Closure& callback) override { |
+ action_callback_ = callback; |
+ } |
+ |
+ void OnDismissButtonClicked(const base::Closure& callback) override { |
+ dismiss_callback_ = callback; |
+ } |
+ |
+ void OnLinkClicked(const base::Closure& callback) override { |
+ link_callback_ = callback; |
} |
private: |
ExtensionBubbleAction action_; |
- ExtensionMessageBubbleController* controller_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FakeExtensionMessageBubble); |
+ |
+ base::Closure action_callback_; |
+ base::Closure dismiss_callback_; |
+ base::Closure link_callback_; |
}; |
class ExtensionMessageBubbleTest : public testing::Test { |
@@ -386,6 +390,7 @@ |
void Init() { |
// 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); |
static_cast<TestExtensionSystem*>(ExtensionSystem::Get(profile())) |
->CreateExtensionService(base::CommandLine::ForCurrentProcess(), |
@@ -418,22 +423,21 @@ |
ExtensionService* service_; |
private: |
- content::TestBrowserThreadBundle thread_bundle_; |
scoped_ptr<base::CommandLine> command_line_; |
+ scoped_ptr<content::TestBrowserThreadBundle> thread_bundle_; |
scoped_ptr<TestingProfile> profile_; |
- |
-#if defined OS_CHROMEOS |
- chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; |
- chromeos::ScopedTestCrosSettings test_cros_settings_; |
- chromeos::ScopedTestUserManager test_user_manager_; |
-#endif |
DISALLOW_COPY_AND_ASSIGN(ExtensionMessageBubbleTest); |
}; |
-// The feature this is meant to test is only enacted on Windows, but it should |
-// pass on all platforms. |
-TEST_F(ExtensionMessageBubbleTest, WipeoutControllerTest) { |
+// The feature this is meant to test is only implemented on Windows. |
+#if defined(OS_WIN) |
+#define MAYBE_WipeoutControllerTest WipeoutControllerTest |
+#else |
+#define MAYBE_WipeoutControllerTest DISABLED_WipeoutControllerTest |
+#endif |
+ |
+TEST_F(ExtensionMessageBubbleTest, MAYBE_WipeoutControllerTest) { |
Init(); |
// Add three extensions, and control two of them in this test (extension 1 |
// and 2). |
@@ -470,7 +474,6 @@ |
suspicious_extensions = controller->GetExtensionList(); |
ASSERT_EQ(1U, suspicious_extensions.size()); |
EXPECT_TRUE(base::ASCIIToUTF16("Extension 1") == suspicious_extensions[0]); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); // Simulate showing the bubble. |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(1U, controller->dismiss_click_count()); |
@@ -494,16 +497,20 @@ |
ASSERT_EQ(2U, suspicious_extensions.size()); |
EXPECT_TRUE(base::ASCIIToUTF16("Extension 1") == suspicious_extensions[1]); |
EXPECT_TRUE(base::ASCIIToUTF16("Extension 2") == suspicious_extensions[0]); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); // Simulate showing the bubble. |
EXPECT_EQ(1U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->dismiss_click_count()); |
EXPECT_TRUE(controller->delegate()->HasBubbleInfoBeenAcknowledged(kId1)); |
} |
-// The feature this is meant to test is only enacted on Windows, but it should |
-// pass on all platforms. |
-TEST_F(ExtensionMessageBubbleTest, DevModeControllerTest) { |
+// The feature this is meant to test is only implemented on Windows. |
+#if defined(OS_WIN) |
+#define MAYBE_DevModeControllerTest DevModeControllerTest |
+#else |
+#define MAYBE_DevModeControllerTest DISABLED_DevModeControllerTest |
+#endif |
+ |
+TEST_F(ExtensionMessageBubbleTest, MAYBE_DevModeControllerTest) { |
FeatureSwitch::ScopedOverride force_dev_mode_highlighting( |
FeatureSwitch::force_dev_mode_highlighting(), true); |
Init(); |
@@ -532,7 +539,6 @@ |
FakeExtensionMessageBubble bubble; |
bubble.set_action_on_show( |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_DISMISS_BUTTON); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -550,7 +556,6 @@ |
EXPECT_TRUE(controller->ShouldShow()); |
dev_mode_extensions = controller->GetExtensionList(); |
EXPECT_EQ(2U, dev_mode_extensions.size()); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); // Simulate showing the bubble. |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(1U, controller->action_click_count()); |
@@ -571,7 +576,6 @@ |
EXPECT_TRUE(controller->ShouldShow()); |
dev_mode_extensions = controller->GetExtensionList(); |
EXPECT_EQ(2U, dev_mode_extensions.size()); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); // Simulate showing the bubble. |
EXPECT_EQ(1U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -639,7 +643,7 @@ |
profile(), static_cast<SettingsApiOverrideType>(i))); |
// The list will contain one enabled unpacked extension (ext 2). |
- EXPECT_TRUE(controller->ShouldShow()); |
+ EXPECT_TRUE(controller->ShouldShow(kId2)); |
std::vector<base::string16> override_extensions = |
controller->GetExtensionList(); |
ASSERT_EQ(1U, override_extensions.size()); |
@@ -653,7 +657,6 @@ |
FakeExtensionMessageBubble bubble; |
bubble.set_action_on_show( |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_DISMISS_BUTTON); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -675,7 +678,6 @@ |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_LINK); |
controller.reset(new TestSettingsApiBubbleController( |
profile(), static_cast<SettingsApiOverrideType>(i))); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); |
EXPECT_EQ(1U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -696,10 +698,9 @@ |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_ACTION_BUTTON); |
controller.reset(new TestSettingsApiBubbleController( |
profile(), static_cast<SettingsApiOverrideType>(i))); |
- EXPECT_TRUE(controller->ShouldShow()); |
+ EXPECT_TRUE(controller->ShouldShow(kId2)); |
override_extensions = controller->GetExtensionList(); |
EXPECT_EQ(1U, override_extensions.size()); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); // Simulate showing the bubble. |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(1U, controller->action_click_count()); |
@@ -729,9 +730,14 @@ |
} |
} |
-// The feature this is meant to test is only enacted on Windows, but it should |
-// pass on all platforms. |
-TEST_F(ExtensionMessageBubbleTest, NtpOverriddenControllerTest) { |
+// The feature this is meant to test is only implemented on Windows. |
+#if defined(OS_WIN) |
+#define MAYBE_NtpOverriddenControllerTest NtpOverriddenControllerTest |
+#else |
+#define MAYBE_NtpOverriddenControllerTest DISABLED_NtpOverriddenControllerTest |
+#endif |
+ |
+TEST_F(ExtensionMessageBubbleTest, MAYBE_NtpOverriddenControllerTest) { |
Init(); |
// Load two extensions overriding new tab page and one overriding something |
// unrelated (to check for interference). Extension 2 should still win |
@@ -759,7 +765,6 @@ |
bubble.set_action_on_show( |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_DISMISS_BUTTON); |
EXPECT_TRUE(controller->ShouldShow(kId2)); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -781,7 +786,6 @@ |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_LINK); |
controller.reset(new TestNtpOverriddenBubbleController(profile())); |
EXPECT_TRUE(controller->ShouldShow(kId2)); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); |
EXPECT_EQ(1U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -804,7 +808,6 @@ |
EXPECT_TRUE(controller->ShouldShow(kId2)); |
override_extensions = controller->GetExtensionList(); |
EXPECT_EQ(1U, override_extensions.size()); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); // Simulate showing the bubble. |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(1U, controller->action_click_count()); |
@@ -892,7 +895,6 @@ |
FakeExtensionMessageBubble bubble; |
bubble.set_action_on_show( |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_DISMISS_BUTTON); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -914,7 +916,6 @@ |
FakeExtensionMessageBubble::BUBBLE_ACTION_CLICK_LINK); |
controller.reset(new TestProxyOverriddenBubbleController(profile())); |
EXPECT_TRUE(controller->ShouldShow(kId2)); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); |
EXPECT_EQ(1U, controller->link_click_count()); |
EXPECT_EQ(0U, controller->action_click_count()); |
@@ -937,7 +938,6 @@ |
EXPECT_TRUE(controller->ShouldShow(kId2)); |
override_extensions = controller->GetExtensionList(); |
EXPECT_EQ(1U, override_extensions.size()); |
- bubble.set_controller(controller.get()); |
controller->Show(&bubble); // Simulate showing the bubble. |
EXPECT_EQ(0U, controller->link_click_count()); |
EXPECT_EQ(1U, controller->action_click_count()); |