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

Side by Side Diff: extensions/browser/warning_service_unittest.cc

Issue 503033002: Move ExtensionWarningService and ExtensionsWarningSet to extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@3_web_view_internal
Patch Set: Rename. Created 6 years, 3 months 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 unified diff | Download patch
OLDNEW
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 "chrome/browser/extensions/extension_warning_service.h" 5 #include "extensions/browser/warning_service.h"
6 6
7 #include "chrome/browser/profiles/profile.h" 7 #include "content/public/test/test_browser_context.h"
8 #include "chrome/browser/ui/global_error/global_error_service.h" 8 #include "extensions/browser/extensions_test.h"
9 #include "chrome/browser/ui/global_error/global_error_service_factory.h"
10 #include "chrome/test/base/testing_profile.h"
11 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
13 11
14 namespace extensions { 12 namespace extensions {
15 13
16 namespace { 14 namespace {
17 15
18 class TestExtensionWarningService : public ExtensionWarningService { 16 class TestWarningService : public WarningService {
19 public: 17 public:
20 explicit TestExtensionWarningService(Profile* profile) 18 explicit TestWarningService(content::BrowserContext* browser_context)
21 : ExtensionWarningService(profile) { 19 : WarningService(browser_context) {
22 } 20 }
23 virtual ~TestExtensionWarningService() {} 21 virtual ~TestWarningService() {}
24 22
25 void AddWarning(const ExtensionWarning& warning) { 23 void AddWarning(const Warning& warning) {
26 ExtensionWarningSet warnings; 24 WarningSet warnings;
27 warnings.insert(warning); 25 warnings.insert(warning);
28 AddWarnings(warnings); 26 AddWarnings(warnings);
29 } 27 }
30 }; 28 };
31 29
32 class MockObserver : public ExtensionWarningService::Observer { 30 class MockObserver : public WarningService::Observer {
33 public: 31 public:
34 virtual ~MockObserver() {} 32 virtual ~MockObserver() {}
35 MOCK_METHOD0(ExtensionWarningsChanged, void()); 33 MOCK_METHOD0(ExtensionWarningsChanged, void());
36 }; 34 };
37 35
36 typedef ExtensionsTest WarningServiceTest;
37
38 const char* ext1_id = "extension1"; 38 const char* ext1_id = "extension1";
39 const char* ext2_id = "extension2"; 39 const char* ext2_id = "extension2";
40 const ExtensionWarning::WarningType warning_1 = 40 const Warning::WarningType warning_1 =
41 ExtensionWarning::kNetworkDelay; 41 Warning::kNetworkDelay;
42 const ExtensionWarning::WarningType warning_2 = 42 const Warning::WarningType warning_2 =
43 ExtensionWarning::kNetworkConflict; 43 Warning::kNetworkConflict;
44 44
45 } // namespace 45 } // namespace
46 46
47 // Check that inserting a warning triggers notifications, whereas inserting 47 // Check that inserting a warning triggers notifications, whereas inserting
48 // the same warning again is silent. 48 // the same warning again is silent.
49 TEST(ExtensionWarningServiceTest, SetWarning) { 49 TEST_F(WarningServiceTest, SetWarning) {
50 TestingProfile profile; 50 content::TestBrowserContext browser_context;
51 TestExtensionWarningService warning_service(&profile); 51 TestWarningService warning_service(&browser_context);
52 MockObserver observer; 52 MockObserver observer;
53 warning_service.AddObserver(&observer); 53 warning_service.AddObserver(&observer);
54 54
55 // Insert warning for the first time. 55 // Insert warning for the first time.
56 EXPECT_CALL(observer, ExtensionWarningsChanged()); 56 EXPECT_CALL(observer, ExtensionWarningsChanged());
57 warning_service.AddWarning( 57 warning_service.AddWarning(
58 ExtensionWarning::CreateNetworkDelayWarning(ext1_id)); 58 Warning::CreateNetworkDelayWarning(ext1_id));
59 testing::Mock::VerifyAndClearExpectations(&warning_service); 59 testing::Mock::VerifyAndClearExpectations(&warning_service);
60 60
61 // Second insertion of same warning does not trigger anything. 61 // Second insertion of same warning does not trigger anything.
62 warning_service.AddWarning( 62 warning_service.AddWarning(
63 ExtensionWarning::CreateNetworkDelayWarning(ext1_id)); 63 Warning::CreateNetworkDelayWarning(ext1_id));
64 testing::Mock::VerifyAndClearExpectations(&warning_service); 64 testing::Mock::VerifyAndClearExpectations(&warning_service);
65 65
66 warning_service.RemoveObserver(&observer); 66 warning_service.RemoveObserver(&observer);
67 } 67 }
68 68
69 // Check that ClearWarnings deletes exactly the specified warnings and 69 // Check that ClearWarnings deletes exactly the specified warnings and
70 // triggers notifications where appropriate. 70 // triggers notifications where appropriate.
71 TEST(ExtensionWarningServiceTest, ClearWarnings) { 71 TEST_F(WarningServiceTest, ClearWarnings) {
72 TestingProfile profile; 72 content::TestBrowserContext browser_context;
73 TestExtensionWarningService warning_service(&profile); 73 TestWarningService warning_service(&browser_context);
74 MockObserver observer; 74 MockObserver observer;
75 warning_service.AddObserver(&observer); 75 warning_service.AddObserver(&observer);
76 76
77 // Insert two unique warnings in one batch. 77 // Insert two unique warnings in one batch.
78 EXPECT_CALL(observer, ExtensionWarningsChanged()); 78 EXPECT_CALL(observer, ExtensionWarningsChanged());
79 ExtensionWarningSet warning_set; 79 WarningSet warning_set;
80 warning_set.insert(ExtensionWarning::CreateNetworkDelayWarning(ext1_id)); 80 warning_set.insert(Warning::CreateNetworkDelayWarning(ext1_id));
81 warning_set.insert(ExtensionWarning::CreateNetworkConflictWarning(ext2_id)); 81 warning_set.insert(Warning::CreateNetworkConflictWarning(ext2_id));
82 warning_service.AddWarnings(warning_set); 82 warning_service.AddWarnings(warning_set);
83 testing::Mock::VerifyAndClearExpectations(&warning_service); 83 testing::Mock::VerifyAndClearExpectations(&warning_service);
84 84
85 // Remove one warning and check that the badge remains. 85 // Remove one warning and check that the badge remains.
86 EXPECT_CALL(observer, ExtensionWarningsChanged()); 86 EXPECT_CALL(observer, ExtensionWarningsChanged());
87 std::set<ExtensionWarning::WarningType> to_clear; 87 std::set<Warning::WarningType> to_clear;
88 to_clear.insert(warning_2); 88 to_clear.insert(warning_2);
89 warning_service.ClearWarnings(to_clear); 89 warning_service.ClearWarnings(to_clear);
90 testing::Mock::VerifyAndClearExpectations(&warning_service); 90 testing::Mock::VerifyAndClearExpectations(&warning_service);
91 91
92 // Check that the correct warnings appear in |warnings|. 92 // Check that the correct warnings appear in |warnings|.
93 std::set<ExtensionWarning::WarningType> existing_warnings = 93 std::set<Warning::WarningType> existing_warnings =
94 warning_service.GetWarningTypesAffectingExtension(ext1_id); 94 warning_service.GetWarningTypesAffectingExtension(ext1_id);
95 EXPECT_EQ(1u, existing_warnings.size()); 95 EXPECT_EQ(1u, existing_warnings.size());
96 existing_warnings = 96 existing_warnings =
97 warning_service.GetWarningTypesAffectingExtension(ext2_id); 97 warning_service.GetWarningTypesAffectingExtension(ext2_id);
98 EXPECT_EQ(0u, existing_warnings.size()); 98 EXPECT_EQ(0u, existing_warnings.size());
99 99
100 // Remove the other one warning. 100 // Remove the other one warning.
101 EXPECT_CALL(observer, ExtensionWarningsChanged()); 101 EXPECT_CALL(observer, ExtensionWarningsChanged());
102 to_clear.insert(warning_1); 102 to_clear.insert(warning_1);
103 warning_service.ClearWarnings(to_clear); 103 warning_service.ClearWarnings(to_clear);
104 testing::Mock::VerifyAndClearExpectations(&warning_service); 104 testing::Mock::VerifyAndClearExpectations(&warning_service);
105 105
106 // Check that not warnings remain. 106 // Check that not warnings remain.
107 existing_warnings = 107 existing_warnings =
108 warning_service.GetWarningTypesAffectingExtension(ext1_id); 108 warning_service.GetWarningTypesAffectingExtension(ext1_id);
109 EXPECT_EQ(0u, existing_warnings.size()); 109 EXPECT_EQ(0u, existing_warnings.size());
110 existing_warnings = 110 existing_warnings =
111 warning_service.GetWarningTypesAffectingExtension(ext2_id); 111 warning_service.GetWarningTypesAffectingExtension(ext2_id);
112 EXPECT_EQ(0u, existing_warnings.size()); 112 EXPECT_EQ(0u, existing_warnings.size());
113 113
114 warning_service.RemoveObserver(&observer); 114 warning_service.RemoveObserver(&observer);
115 } 115 }
116 116
117 } // namespace extensions 117 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698