| Index: chrome/browser/extensions/extension_warning_set_unittest.cc
|
| diff --git a/chrome/browser/extensions/extension_warning_set_unittest.cc b/chrome/browser/extensions/extension_warning_set_unittest.cc
|
| index e3e5bffeeade3037119a2a50118ef80599f0588b..9658b2e5efbe54537ba9a9df4b351e148cfb5a00 100644
|
| --- a/chrome/browser/extensions/extension_warning_set_unittest.cc
|
| +++ b/chrome/browser/extensions/extension_warning_set_unittest.cc
|
| @@ -5,20 +5,29 @@
|
| #include "chrome/browser/extensions/extension_warning_set.h"
|
|
|
| #include "chrome/browser/extensions/extension_global_error_badge.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/global_error/global_error_service.h"
|
| #include "chrome/browser/ui/global_error/global_error_service_factory.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +namespace extensions {
|
| +
|
| namespace {
|
|
|
| -class MockExtensionWarningSet : public ExtensionWarningSet {
|
| +class MockExtensionWarningService : public ExtensionWarningService {
|
| public:
|
| - explicit MockExtensionWarningSet(Profile* profile)
|
| - : ExtensionWarningSet(profile) {
|
| + explicit MockExtensionWarningService(Profile* profile)
|
| + : ExtensionWarningService(profile) {
|
| + }
|
| + virtual ~MockExtensionWarningService() {}
|
| +
|
| + void AddWarning(const ExtensionWarning& warning) {
|
| + ExtensionWarningSet warnings;
|
| + warnings.insert(warning);
|
| + AddWarnings(warnings);
|
| }
|
| - virtual ~MockExtensionWarningSet() {}
|
|
|
| MOCK_METHOD0(NotifyWarningsChanged, void());
|
| };
|
| @@ -32,56 +41,58 @@ bool HasBadge(Profile* profile) {
|
|
|
| const char* ext1_id = "extension1";
|
| const char* ext2_id = "extension2";
|
| -const ExtensionWarningSet::WarningType warning_1 =
|
| - ExtensionWarningSet::kNetworkDelay;
|
| -const ExtensionWarningSet::WarningType warning_2 =
|
| - ExtensionWarningSet::kNetworkConflict;
|
| +const ExtensionWarning::WarningType warning_1 =
|
| + ExtensionWarning::kNetworkDelay;
|
| +const ExtensionWarning::WarningType warning_2 =
|
| + ExtensionWarning::kNetworkConflict;
|
|
|
| } // namespace
|
|
|
| // Check that inserting a warning triggers notifications, whereas inserting
|
| // the same warning again is silent.
|
| -TEST(ExtensionWarningSetTest, SetWarning) {
|
| +TEST(ExtensionWarningServiceTest, SetWarning) {
|
| TestingProfile profile;
|
| - MockExtensionWarningSet warnings(&profile);
|
| + MockExtensionWarningService warnings(&profile);
|
|
|
| // Insert warning for the first time.
|
| EXPECT_CALL(warnings, NotifyWarningsChanged());
|
| - warnings.SetWarning(warning_1, ext1_id);
|
| + warnings.AddWarning(ExtensionWarning::CreateNetworkDelayWarning(ext1_id));
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
| EXPECT_TRUE(HasBadge(&profile));
|
|
|
| // Second insertion of same warning does not trigger anything.
|
| - warnings.SetWarning(warning_1, ext1_id);
|
| + warnings.AddWarning(ExtensionWarning::CreateNetworkDelayWarning(ext1_id));
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
| }
|
|
|
| // Check that ClearWarnings deletes exactly the specified warnings and
|
| // triggers notifications where appropriate.
|
| -TEST(ExtensionWarningSetTest, ClearWarnings) {
|
| +TEST(ExtensionWarningServiceTest, ClearWarnings) {
|
| TestingProfile profile;
|
| - MockExtensionWarningSet warnings(&profile);
|
| -
|
| - // Insert two unique warnings.
|
| - EXPECT_CALL(warnings, NotifyWarningsChanged()).Times(2);
|
| - warnings.SetWarning(warning_1, ext1_id);
|
| - warnings.SetWarning(warning_2, ext2_id);
|
| + MockExtensionWarningService warnings(&profile);
|
| +
|
| + // Insert two unique warnings in one batch.
|
| + EXPECT_CALL(warnings, NotifyWarningsChanged()).Times(1);
|
| + ExtensionWarningSet warning_set;
|
| + warning_set.insert(ExtensionWarning::CreateNetworkDelayWarning(ext1_id));
|
| + warning_set.insert(ExtensionWarning::CreateNetworkConflictWarning(ext2_id));
|
| + warnings.AddWarnings(warning_set);
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
| EXPECT_TRUE(HasBadge(&profile));
|
|
|
| // Remove one warning and check that the badge remains.
|
| EXPECT_CALL(warnings, NotifyWarningsChanged());
|
| - std::set<ExtensionWarningSet::WarningType> to_clear;
|
| + std::set<ExtensionWarning::WarningType> to_clear;
|
| to_clear.insert(warning_2);
|
| warnings.ClearWarnings(to_clear);
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
| EXPECT_TRUE(HasBadge(&profile));
|
|
|
| // Check that the correct warnings appear in |warnings|.
|
| - std::set<ExtensionWarningSet::WarningType> existing_warnings;
|
| - warnings.GetWarningsAffectingExtension(ext1_id, &existing_warnings);
|
| + std::set<ExtensionWarning::WarningType> existing_warnings;
|
| + warnings.GetWarningTypesAffectingExtension(ext1_id, &existing_warnings);
|
| EXPECT_EQ(1u, existing_warnings.size());
|
| - warnings.GetWarningsAffectingExtension(ext2_id, &existing_warnings);
|
| + warnings.GetWarningTypesAffectingExtension(ext2_id, &existing_warnings);
|
| EXPECT_EQ(0u, existing_warnings.size());
|
|
|
| // Remove the other one warning and check that badge disappears.
|
| @@ -92,21 +103,21 @@ TEST(ExtensionWarningSetTest, ClearWarnings) {
|
| EXPECT_FALSE(HasBadge(&profile));
|
|
|
| // Check that not warnings remain.
|
| - warnings.GetWarningsAffectingExtension(ext1_id, &existing_warnings);
|
| + warnings.GetWarningTypesAffectingExtension(ext1_id, &existing_warnings);
|
| EXPECT_EQ(0u, existing_warnings.size());
|
| - warnings.GetWarningsAffectingExtension(ext2_id, &existing_warnings);
|
| + warnings.GetWarningTypesAffectingExtension(ext2_id, &existing_warnings);
|
| EXPECT_EQ(0u, existing_warnings.size());
|
| }
|
|
|
| // Check that no badge appears if it has been suppressed for a specific
|
| // warning.
|
| -TEST(ExtensionWarningSetTest, SuppressBadgeForCurrentWarnings) {
|
| +TEST(ExtensionWarningServiceTest, SuppressBadgeForCurrentWarnings) {
|
| TestingProfile profile;
|
| - MockExtensionWarningSet warnings(&profile);
|
| + MockExtensionWarningService warnings(&profile);
|
|
|
| // Insert first warning.
|
| EXPECT_CALL(warnings, NotifyWarningsChanged());
|
| - warnings.SetWarning(warning_1, ext1_id);
|
| + warnings.AddWarning(ExtensionWarning::CreateNetworkDelayWarning(ext1_id));
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
| EXPECT_TRUE(HasBadge(&profile));
|
|
|
| @@ -116,21 +127,23 @@ TEST(ExtensionWarningSetTest, SuppressBadgeForCurrentWarnings) {
|
| EXPECT_FALSE(HasBadge(&profile));
|
|
|
| // Simulate deinstallation of extension.
|
| - std::set<ExtensionWarningSet::WarningType> to_clear;
|
| - warnings.GetWarningsAffectingExtension(ext1_id, &to_clear);
|
| + std::set<ExtensionWarning::WarningType> to_clear;
|
| + warnings.GetWarningTypesAffectingExtension(ext1_id, &to_clear);
|
| EXPECT_CALL(warnings, NotifyWarningsChanged());
|
| warnings.ClearWarnings(to_clear);
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
|
|
| // Set first warning again and verify that not badge is shown this time.
|
| EXPECT_CALL(warnings, NotifyWarningsChanged());
|
| - warnings.SetWarning(warning_1, ext1_id);
|
| + warnings.AddWarning(ExtensionWarning::CreateNetworkDelayWarning(ext1_id));
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
| EXPECT_FALSE(HasBadge(&profile));
|
|
|
| // Set second warning and verify that it shows a badge.
|
| EXPECT_CALL(warnings, NotifyWarningsChanged());
|
| - warnings.SetWarning(warning_2, ext2_id);
|
| + warnings.AddWarning(ExtensionWarning::CreateNetworkConflictWarning(ext2_id));
|
| testing::Mock::VerifyAndClearExpectations(&warnings);
|
| EXPECT_TRUE(HasBadge(&profile));
|
| }
|
| +
|
| +} // namespace extensions
|
|
|