| 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..9db9349546b25f1e3fc8790a96b446ade6408123 100644
|
| --- a/chrome/browser/extensions/extension_warning_set_unittest.cc
|
| +++ b/chrome/browser/extensions/extension_warning_set_unittest.cc
|
| @@ -13,12 +13,18 @@
|
|
|
| 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(scoped_ptr<ExtensionWarning> warning) {
|
| + scoped_ptr<ExtensionWarningSet> warnings(new ExtensionWarningSet);
|
| + warnings->Insert(warning.Pass());
|
| + AddWarnings(warnings.Pass());
|
| }
|
| - virtual ~MockExtensionWarningSet() {}
|
|
|
| MOCK_METHOD0(NotifyWarningsChanged, void());
|
| };
|
| @@ -32,56 +38,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);
|
| + scoped_ptr<ExtensionWarningSet> warning_set(new ExtensionWarningSet);
|
| + warning_set->Insert(ExtensionWarning::CreateNetworkDelayWarning(ext1_id));
|
| + warning_set->Insert(ExtensionWarning::CreateNetworkConflictWarning(ext2_id));
|
| + warnings.AddWarnings(warning_set.Pass());
|
| 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 +100,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 +124,21 @@ 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));
|
| }
|
|
|