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

Side by Side Diff: chrome/browser/extensions/event_router_forwarder_unittest.cc

Issue 10696208: Move ExtensionEventRouter and related into extensions namespace (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixed bug + latest master Created 8 years, 5 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_event_router_forwarder.h" 5 #include "chrome/browser/extensions/event_router_forwarder.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/system_monitor/system_monitor.h" 9 #include "base/system_monitor/system_monitor.h"
10 #include "base/test/thread_test_helper.h" 10 #include "base/test/thread_test_helper.h"
11 #include "chrome/browser/profiles/profile_manager.h" 11 #include "chrome/browser/profiles/profile_manager.h"
12 #include "chrome/test/base/testing_browser_process.h" 12 #include "chrome/test/base/testing_browser_process.h"
13 #include "chrome/test/base/testing_profile.h" 13 #include "chrome/test/base/testing_profile.h"
14 #include "chrome/test/base/testing_profile_manager.h" 14 #include "chrome/test/base/testing_profile_manager.h"
15 #include "content/public/test/test_browser_thread.h" 15 #include "content/public/test/test_browser_thread.h"
16 #include "googleurl/src/gurl.h" 16 #include "googleurl/src/gurl.h"
17 #include "testing/gmock/include/gmock/gmock.h" 17 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 using content::BrowserThread; 20 using content::BrowserThread;
21 21
22 namespace extensions {
23
22 namespace { 24 namespace {
23 25
24 const char kEventName[] = "event_name"; 26 const char kEventName[] = "event_name";
25 const char kEventArgs[] = "event_args"; 27 const char kEventArgs[] = "event_args";
26 const char kExt[] = "extension"; 28 const char kExt[] = "extension";
27 29
28 class MockExtensionEventRouterForwarder : public ExtensionEventRouterForwarder { 30 class MockEventRouterForwarder : public EventRouterForwarder {
29 public: 31 public:
30 MOCK_METHOD6(CallExtensionEventRouter, 32 MOCK_METHOD6(CallEventRouter,
31 void(Profile*, const std::string&, const std::string&, const std::string&, 33 void(Profile*, const std::string&, const std::string&, const std::string&,
32 Profile*, const GURL&)); 34 Profile*, const GURL&));
33 35
34 protected: 36 protected:
35 virtual ~MockExtensionEventRouterForwarder() {} 37 virtual ~MockEventRouterForwarder() {}
36 }; 38 };
37 39
38 } // namespace 40 } // namespace
39 41
40 class ExtensionEventRouterForwarderTest : public testing::Test { 42 class EventRouterForwarderTest : public testing::Test {
41 protected: 43 protected:
42 ExtensionEventRouterForwarderTest() 44 EventRouterForwarderTest()
43 : ui_thread_(BrowserThread::UI, &message_loop_), 45 : ui_thread_(BrowserThread::UI, &message_loop_),
44 io_thread_(BrowserThread::IO), 46 io_thread_(BrowserThread::IO),
45 profile_manager_( 47 profile_manager_(
46 static_cast<TestingBrowserProcess*>(g_browser_process)) { 48 static_cast<TestingBrowserProcess*>(g_browser_process)) {
47 #if defined(OS_MACOSX) 49 #if defined(OS_MACOSX)
48 base::SystemMonitor::AllocateSystemIOPorts(); 50 base::SystemMonitor::AllocateSystemIOPorts();
49 #endif 51 #endif
50 dummy.reset(new base::SystemMonitor); 52 dummy.reset(new base::SystemMonitor);
51 } 53 }
52 54
(...skipping 17 matching lines...) Expand all
70 MessageLoopForUI message_loop_; 72 MessageLoopForUI message_loop_;
71 content::TestBrowserThread ui_thread_; 73 content::TestBrowserThread ui_thread_;
72 content::TestBrowserThread io_thread_; 74 content::TestBrowserThread io_thread_;
73 TestingProfileManager profile_manager_; 75 TestingProfileManager profile_manager_;
74 scoped_ptr<base::SystemMonitor> dummy; 76 scoped_ptr<base::SystemMonitor> dummy;
75 // Profiles are weak pointers, owned by ProfileManager in |browser_process_|. 77 // Profiles are weak pointers, owned by ProfileManager in |browser_process_|.
76 TestingProfile* profile1_; 78 TestingProfile* profile1_;
77 TestingProfile* profile2_; 79 TestingProfile* profile2_;
78 }; 80 };
79 81
80 TEST_F(ExtensionEventRouterForwarderTest, BroadcastRendererUI) { 82 TEST_F(EventRouterForwarderTest, BroadcastRendererUI) {
81 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 83 scoped_refptr<MockEventRouterForwarder> event_router(
82 new MockExtensionEventRouterForwarder); 84 new MockEventRouterForwarder);
83 GURL url; 85 GURL url;
84 EXPECT_CALL(*event_router, 86 EXPECT_CALL(*event_router,
85 CallExtensionEventRouter( 87 CallEventRouter(
86 profile1_, "", kEventName, kEventArgs, profile1_, url)); 88 profile1_, "", kEventName, kEventArgs, profile1_, url));
87 EXPECT_CALL(*event_router, 89 EXPECT_CALL(*event_router,
88 CallExtensionEventRouter( 90 CallEventRouter(
89 profile2_, "", kEventName, kEventArgs, profile2_, url)); 91 profile2_, "", kEventName, kEventArgs, profile2_, url));
90 event_router->BroadcastEventToRenderers(kEventName, kEventArgs, url); 92 event_router->BroadcastEventToRenderers(kEventName, kEventArgs, url);
91 } 93 }
92 94
93 TEST_F(ExtensionEventRouterForwarderTest, BroadcastRendererUIIncognito) { 95 TEST_F(EventRouterForwarderTest, BroadcastRendererUIIncognito) {
94 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 96 scoped_refptr<MockEventRouterForwarder> event_router(
95 new MockExtensionEventRouterForwarder); 97 new MockEventRouterForwarder);
96 using ::testing::_; 98 using ::testing::_;
97 GURL url; 99 GURL url;
98 Profile* incognito = CreateIncognitoProfile(profile1_); 100 Profile* incognito = CreateIncognitoProfile(profile1_);
99 EXPECT_CALL(*event_router, 101 EXPECT_CALL(*event_router,
100 CallExtensionEventRouter( 102 CallEventRouter(
101 profile1_, "", kEventName, kEventArgs, profile1_, url)); 103 profile1_, "", kEventName, kEventArgs, profile1_, url));
102 EXPECT_CALL(*event_router, 104 EXPECT_CALL(*event_router,
103 CallExtensionEventRouter(incognito, _, _, _, _, _)).Times(0); 105 CallEventRouter(incognito, _, _, _, _, _)).Times(0);
104 EXPECT_CALL(*event_router, 106 EXPECT_CALL(*event_router,
105 CallExtensionEventRouter( 107 CallEventRouter(
106 profile2_, "", kEventName, kEventArgs, profile2_, url)); 108 profile2_, "", kEventName, kEventArgs, profile2_, url));
107 event_router->BroadcastEventToRenderers(kEventName, kEventArgs, url); 109 event_router->BroadcastEventToRenderers(kEventName, kEventArgs, url);
108 } 110 }
109 111
110 // This is the canonical test for passing control flow from the IO thread 112 // This is the canonical test for passing control flow from the IO thread
111 // to the UI thread. Repeating this for all public functions of 113 // to the UI thread. Repeating this for all public functions of
112 // ExtensionEventRouterForwarder would not increase coverage. 114 // EventRouterForwarder would not increase coverage.
113 TEST_F(ExtensionEventRouterForwarderTest, BroadcastRendererIO) { 115 TEST_F(EventRouterForwarderTest, BroadcastRendererIO) {
114 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 116 scoped_refptr<MockEventRouterForwarder> event_router(
115 new MockExtensionEventRouterForwarder); 117 new MockEventRouterForwarder);
116 GURL url; 118 GURL url;
117 EXPECT_CALL(*event_router, 119 EXPECT_CALL(*event_router,
118 CallExtensionEventRouter( 120 CallEventRouter(
119 profile1_, "", kEventName, kEventArgs, profile1_, url)); 121 profile1_, "", kEventName, kEventArgs, profile1_, url));
120 EXPECT_CALL(*event_router, 122 EXPECT_CALL(*event_router,
121 CallExtensionEventRouter( 123 CallEventRouter(
122 profile2_, "", kEventName, kEventArgs, profile2_, url)); 124 profile2_, "", kEventName, kEventArgs, profile2_, url));
123 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, 125 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
124 base::Bind( 126 base::Bind(
125 &MockExtensionEventRouterForwarder::BroadcastEventToRenderers, 127 &MockEventRouterForwarder::BroadcastEventToRenderers,
126 event_router.get(), 128 event_router.get(),
127 std::string(kEventName), std::string(kEventArgs), url)); 129 std::string(kEventName), std::string(kEventArgs), url));
128 130
129 // Wait for IO thread's message loop to be processed 131 // Wait for IO thread's message loop to be processed
130 scoped_refptr<base::ThreadTestHelper> helper( 132 scoped_refptr<base::ThreadTestHelper> helper(
131 new base::ThreadTestHelper( 133 new base::ThreadTestHelper(
132 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO))); 134 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)));
133 ASSERT_TRUE(helper->Run()); 135 ASSERT_TRUE(helper->Run());
134 136
135 MessageLoop::current()->RunAllPending(); 137 MessageLoop::current()->RunAllPending();
136 } 138 }
137 139
138 TEST_F(ExtensionEventRouterForwarderTest, UnicastRendererUIRestricted) { 140 TEST_F(EventRouterForwarderTest, UnicastRendererUIRestricted) {
139 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 141 scoped_refptr<MockEventRouterForwarder> event_router(
140 new MockExtensionEventRouterForwarder); 142 new MockEventRouterForwarder);
141 using ::testing::_; 143 using ::testing::_;
142 GURL url; 144 GURL url;
143 EXPECT_CALL(*event_router, 145 EXPECT_CALL(*event_router,
144 CallExtensionEventRouter( 146 CallEventRouter(
145 profile1_, "", kEventName, kEventArgs, profile1_, url)); 147 profile1_, "", kEventName, kEventArgs, profile1_, url));
146 EXPECT_CALL(*event_router, 148 EXPECT_CALL(*event_router,
147 CallExtensionEventRouter(profile2_, _, _, _, _, _)).Times(0); 149 CallEventRouter(profile2_, _, _, _, _, _)).Times(0);
148 event_router->DispatchEventToRenderers(kEventName, kEventArgs, 150 event_router->DispatchEventToRenderers(kEventName, kEventArgs,
149 profile1_, true, url); 151 profile1_, true, url);
150 } 152 }
151 153
152 TEST_F(ExtensionEventRouterForwarderTest, 154 TEST_F(EventRouterForwarderTest, UnicastRendererUIRestrictedIncognito1) {
153 UnicastRendererUIRestrictedIncognito1) { 155 scoped_refptr<MockEventRouterForwarder> event_router(
154 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 156 new MockEventRouterForwarder);
155 new MockExtensionEventRouterForwarder);
156 Profile* incognito = CreateIncognitoProfile(profile1_); 157 Profile* incognito = CreateIncognitoProfile(profile1_);
157 using ::testing::_; 158 using ::testing::_;
158 GURL url; 159 GURL url;
159 EXPECT_CALL(*event_router, 160 EXPECT_CALL(*event_router,
160 CallExtensionEventRouter( 161 CallEventRouter(
161 profile1_, "", kEventName, kEventArgs, profile1_, url)); 162 profile1_, "", kEventName, kEventArgs, profile1_, url));
162 EXPECT_CALL(*event_router, 163 EXPECT_CALL(*event_router,
163 CallExtensionEventRouter(incognito, _, _, _, _, _)).Times(0); 164 CallEventRouter(incognito, _, _, _, _, _)).Times(0);
164 EXPECT_CALL(*event_router, 165 EXPECT_CALL(*event_router,
165 CallExtensionEventRouter(profile2_, _, _, _, _, _)).Times(0); 166 CallEventRouter(profile2_, _, _, _, _, _)).Times(0);
166 event_router->DispatchEventToRenderers(kEventName, kEventArgs, 167 event_router->DispatchEventToRenderers(kEventName, kEventArgs,
167 profile1_, true, url); 168 profile1_, true, url);
168 } 169 }
169 170
170 TEST_F(ExtensionEventRouterForwarderTest, 171 TEST_F(EventRouterForwarderTest, UnicastRendererUIRestrictedIncognito2) {
171 UnicastRendererUIRestrictedIncognito2) { 172 scoped_refptr<MockEventRouterForwarder> event_router(
172 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 173 new MockEventRouterForwarder);
173 new MockExtensionEventRouterForwarder);
174 Profile* incognito = CreateIncognitoProfile(profile1_); 174 Profile* incognito = CreateIncognitoProfile(profile1_);
175 using ::testing::_; 175 using ::testing::_;
176 GURL url; 176 GURL url;
177 EXPECT_CALL(*event_router, 177 EXPECT_CALL(*event_router,
178 CallExtensionEventRouter(profile1_, _, _, _, _, _)).Times(0); 178 CallEventRouter(profile1_, _, _, _, _, _)).Times(0);
179 EXPECT_CALL(*event_router, 179 EXPECT_CALL(*event_router,
180 CallExtensionEventRouter( 180 CallEventRouter(
181 incognito, "", kEventName, kEventArgs, incognito, url)); 181 incognito, "", kEventName, kEventArgs, incognito, url));
182 EXPECT_CALL(*event_router, 182 EXPECT_CALL(*event_router,
183 CallExtensionEventRouter(profile2_, _, _, _, _, _)).Times(0); 183 CallEventRouter(profile2_, _, _, _, _, _)).Times(0);
184 event_router->DispatchEventToRenderers(kEventName, kEventArgs, 184 event_router->DispatchEventToRenderers(kEventName, kEventArgs,
185 incognito, true, url); 185 incognito, true, url);
186 } 186 }
187 187
188 TEST_F(ExtensionEventRouterForwarderTest, UnicastRendererUIUnrestricted) { 188 TEST_F(EventRouterForwarderTest, UnicastRendererUIUnrestricted) {
189 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 189 scoped_refptr<MockEventRouterForwarder> event_router(
190 new MockExtensionEventRouterForwarder); 190 new MockEventRouterForwarder);
191 using ::testing::_; 191 using ::testing::_;
192 GURL url; 192 GURL url;
193 EXPECT_CALL(*event_router, 193 EXPECT_CALL(*event_router,
194 CallExtensionEventRouter( 194 CallEventRouter(
195 profile1_, "", kEventName, kEventArgs, NULL, url)); 195 profile1_, "", kEventName, kEventArgs, NULL, url));
196 EXPECT_CALL(*event_router, 196 EXPECT_CALL(*event_router,
197 CallExtensionEventRouter(profile2_, _, _, _, _, _)).Times(0); 197 CallEventRouter(profile2_, _, _, _, _, _)).Times(0);
198 event_router->DispatchEventToRenderers(kEventName, kEventArgs, 198 event_router->DispatchEventToRenderers(kEventName, kEventArgs,
199 profile1_, false, url); 199 profile1_, false, url);
200 } 200 }
201 201
202 TEST_F(ExtensionEventRouterForwarderTest, 202 TEST_F(EventRouterForwarderTest, UnicastRendererUIUnrestrictedIncognito) {
203 UnicastRendererUIUnrestrictedIncognito) { 203 scoped_refptr<MockEventRouterForwarder> event_router(
204 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 204 new MockEventRouterForwarder);
205 new MockExtensionEventRouterForwarder);
206 Profile* incognito = CreateIncognitoProfile(profile1_); 205 Profile* incognito = CreateIncognitoProfile(profile1_);
207 using ::testing::_; 206 using ::testing::_;
208 GURL url; 207 GURL url;
209 EXPECT_CALL(*event_router, 208 EXPECT_CALL(*event_router,
210 CallExtensionEventRouter( 209 CallEventRouter(
211 profile1_, "", kEventName, kEventArgs, NULL, url)); 210 profile1_, "", kEventName, kEventArgs, NULL, url));
212 EXPECT_CALL(*event_router, 211 EXPECT_CALL(*event_router,
213 CallExtensionEventRouter(incognito, _, _, _, _, _)).Times(0); 212 CallEventRouter(incognito, _, _, _, _, _)).Times(0);
214 EXPECT_CALL(*event_router, 213 EXPECT_CALL(*event_router,
215 CallExtensionEventRouter(profile2_, _, _, _, _, _)).Times(0); 214 CallEventRouter(profile2_, _, _, _, _, _)).Times(0);
216 event_router->DispatchEventToRenderers(kEventName, kEventArgs, 215 event_router->DispatchEventToRenderers(kEventName, kEventArgs,
217 profile1_, false, url); 216 profile1_, false, url);
218 } 217 }
219 218
220 TEST_F(ExtensionEventRouterForwarderTest, BroadcastExtensionUI) { 219 TEST_F(EventRouterForwarderTest, BroadcastExtensionUI) {
221 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 220 scoped_refptr<MockEventRouterForwarder> event_router(
222 new MockExtensionEventRouterForwarder); 221 new MockEventRouterForwarder);
223 GURL url; 222 GURL url;
224 EXPECT_CALL(*event_router, 223 EXPECT_CALL(*event_router,
225 CallExtensionEventRouter( 224 CallEventRouter(
226 profile1_, kExt, kEventName, kEventArgs, profile1_, url)); 225 profile1_, kExt, kEventName, kEventArgs, profile1_, url));
227 EXPECT_CALL(*event_router, 226 EXPECT_CALL(*event_router,
228 CallExtensionEventRouter( 227 CallEventRouter(
229 profile2_, kExt, kEventName, kEventArgs, profile2_, url)); 228 profile2_, kExt, kEventName, kEventArgs, profile2_, url));
230 event_router->BroadcastEventToExtension(kExt, kEventName, kEventArgs, url); 229 event_router->BroadcastEventToExtension(kExt, kEventName, kEventArgs, url);
231 } 230 }
232 231
233 TEST_F(ExtensionEventRouterForwarderTest, UnicastExtensionUIRestricted) { 232 TEST_F(EventRouterForwarderTest, UnicastExtensionUIRestricted) {
234 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 233 scoped_refptr<MockEventRouterForwarder> event_router(
235 new MockExtensionEventRouterForwarder); 234 new MockEventRouterForwarder);
236 using ::testing::_; 235 using ::testing::_;
237 GURL url; 236 GURL url;
238 EXPECT_CALL(*event_router, 237 EXPECT_CALL(*event_router,
239 CallExtensionEventRouter( 238 CallEventRouter(
240 profile1_, kExt, kEventName, kEventArgs, profile1_, url)); 239 profile1_, kExt, kEventName, kEventArgs, profile1_, url));
241 EXPECT_CALL(*event_router, 240 EXPECT_CALL(*event_router,
242 CallExtensionEventRouter(profile2_, _, _, _, _, _)).Times(0); 241 CallEventRouter(profile2_, _, _, _, _, _)).Times(0);
243 event_router->DispatchEventToExtension(kExt, kEventName, kEventArgs, 242 event_router->DispatchEventToExtension(kExt, kEventName, kEventArgs,
244 profile1_, true, url); 243 profile1_, true, url);
245 } 244 }
246 245
247 TEST_F(ExtensionEventRouterForwarderTest, UnicastExtensionUIUnrestricted) { 246 TEST_F(EventRouterForwarderTest, UnicastExtensionUIUnrestricted) {
248 scoped_refptr<MockExtensionEventRouterForwarder> event_router( 247 scoped_refptr<MockEventRouterForwarder> event_router(
249 new MockExtensionEventRouterForwarder); 248 new MockEventRouterForwarder);
250 using ::testing::_; 249 using ::testing::_;
251 GURL url; 250 GURL url;
252 EXPECT_CALL(*event_router, 251 EXPECT_CALL(*event_router,
253 CallExtensionEventRouter( 252 CallEventRouter(
254 profile1_, kExt, kEventName, kEventArgs, NULL, url)); 253 profile1_, kExt, kEventName, kEventArgs, NULL, url));
255 EXPECT_CALL(*event_router, 254 EXPECT_CALL(*event_router,
256 CallExtensionEventRouter(profile2_, _, _, _, _, _)).Times(0); 255 CallEventRouter(profile2_, _, _, _, _, _)).Times(0);
257 event_router->DispatchEventToExtension(kExt, kEventName, kEventArgs, 256 event_router->DispatchEventToExtension(kExt, kEventName, kEventArgs,
258 profile1_, false, url); 257 profile1_, false, url);
259 } 258 }
259
260 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/event_router_forwarder.cc ('k') | chrome/browser/extensions/extension_browser_event_router.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698