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

Side by Side Diff: chrome/browser/notifications/notification_browsertest.cc

Issue 15025002: Remove ENABLE_MESSAGE_CENTER (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixing static initializer Created 7 years, 7 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 | Annotate | Revision Log
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 <deque> 5 #include <deque>
6 #include <string> 6 #include <string>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h"
10 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
11 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
12 #include "base/run_loop.h" 13 #include "base/run_loop.h"
13 #include "base/stringprintf.h" 14 #include "base/stringprintf.h"
14 #include "base/utf_string_conversions.h" 15 #include "base/utf_string_conversions.h"
15 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/infobars/confirm_infobar_delegate.h" 17 #include "chrome/browser/infobars/confirm_infobar_delegate.h"
17 #include "chrome/browser/infobars/infobar_service.h" 18 #include "chrome/browser/infobars/infobar_service.h"
18 #include "chrome/browser/notifications/balloon.h" 19 #include "chrome/browser/notifications/balloon.h"
19 #include "chrome/browser/notifications/balloon_collection.h" 20 #include "chrome/browser/notifications/balloon_collection.h"
(...skipping 17 matching lines...) Expand all
37 #include "content/public/browser/notification_types.h" 38 #include "content/public/browser/notification_types.h"
38 #include "content/public/browser/render_view_host.h" 39 #include "content/public/browser/render_view_host.h"
39 #include "content/public/browser/web_contents.h" 40 #include "content/public/browser/web_contents.h"
40 #include "content/public/test/browser_test_utils.h" 41 #include "content/public/test/browser_test_utils.h"
41 #include "content/public/test/test_utils.h" 42 #include "content/public/test/test_utils.h"
42 #include "googleurl/src/gurl.h" 43 #include "googleurl/src/gurl.h"
43 #include "net/base/net_util.h" 44 #include "net/base/net_util.h"
44 #include "net/test/spawned_test_server/spawned_test_server.h" 45 #include "net/test/spawned_test_server/spawned_test_server.h"
45 #include "testing/gtest/include/gtest/gtest.h" 46 #include "testing/gtest/include/gtest/gtest.h"
46 #include "ui/base/window_open_disposition.h" 47 #include "ui/base/window_open_disposition.h"
48 #include "ui/message_center/message_center.h"
49 #include "ui/message_center/message_center_observer.h"
50 #include "ui/message_center/message_center_switches.h"
51 #include "ui/message_center/message_center_util.h"
47 52
48 // TODO(kbr): remove: http://crbug.com/222296 53 // TODO(kbr): remove: http://crbug.com/222296
49 #if defined(OS_MACOSX) 54 #if defined(OS_MACOSX)
50 #import "base/mac/mac_util.h" 55 #import "base/mac/mac_util.h"
51 #endif 56 #endif
52 57
53 #if defined(ENABLE_MESSAGE_CENTER)
54 #include "base/command_line.h"
55 #include "ui/message_center/message_center.h"
56 #include "ui/message_center/message_center_observer.h"
57 #include "ui/message_center/message_center_switches.h"
58 #endif
59
60 // Mac implementation of message_center is incomplete. The code builds, but
61 // the tests do not pass <http://crbug.com/179904>.
62 #if defined(ENABLE_MESSAGE_CENTER) && !defined(OS_MACOSX)
63 #define ENABLE_MESSAGE_CENTER_TESTING 1
64 #else
65 #define ENABLE_MESSAGE_CENTER_TESTING 0
66 #endif
67
68 namespace { 58 namespace {
69 59
70 const char kExpectedIconUrl[] = "files/notifications/no_such_file.png"; 60 const char kExpectedIconUrl[] = "files/notifications/no_such_file.png";
71 61
72 enum InfobarAction { 62 enum InfobarAction {
73 DISMISS = 0, 63 DISMISS = 0,
74 ALLOW, 64 ALLOW,
75 DENY, 65 DENY,
76 }; 66 };
77 67
78 #if ENABLE_MESSAGE_CENTER_TESTING 68 class NotificationChangeObserver {
69 public:
70 virtual ~NotificationChangeObserver() {}
71 virtual bool Wait() = 0;
72 };
73
79 class MessageCenterChangeObserver 74 class MessageCenterChangeObserver
80 : public message_center::MessageCenterObserver { 75 : public message_center::MessageCenterObserver,
76 public NotificationChangeObserver {
81 public: 77 public:
82 MessageCenterChangeObserver() 78 MessageCenterChangeObserver()
83 : notification_received_(false) { 79 : notification_received_(false) {
84 message_center::MessageCenter::Get()->AddObserver(this); 80 message_center::MessageCenter::Get()->AddObserver(this);
85 } 81 }
86 82
87 virtual ~MessageCenterChangeObserver() { 83 virtual ~MessageCenterChangeObserver() {
88 message_center::MessageCenter::Get()->RemoveObserver(this); 84 message_center::MessageCenter::Get()->RemoveObserver(this);
89 } 85 }
90 86
91 bool Wait() { 87 // NotificationChangeObserver:
88 virtual bool Wait() OVERRIDE {
92 if (notification_received_) 89 if (notification_received_)
93 return true; 90 return true;
94 91
95 message_loop_runner_ = new content::MessageLoopRunner; 92 message_loop_runner_ = new content::MessageLoopRunner;
96 message_loop_runner_->Run(); 93 message_loop_runner_->Run();
97 return notification_received_; 94 return notification_received_;
98 } 95 }
99 96
100 // overridden from message_center::MessageCenterObserver: 97 // message_center::MessageCenterObserver:
101 virtual void OnNotificationAdded( 98 virtual void OnNotificationAdded(
102 const std::string& notification_id) OVERRIDE { 99 const std::string& notification_id) OVERRIDE {
103 OnMessageCenterChanged(); 100 OnMessageCenterChanged();
104 } 101 }
102
105 virtual void OnNotificationRemoved(const std::string& notification_id, 103 virtual void OnNotificationRemoved(const std::string& notification_id,
106 bool by_user) OVERRIDE { 104 bool by_user) OVERRIDE {
107 OnMessageCenterChanged(); 105 OnMessageCenterChanged();
108 } 106 }
107
109 virtual void OnNotificationUpdated( 108 virtual void OnNotificationUpdated(
110 const std::string& notification_id) OVERRIDE { 109 const std::string& notification_id) OVERRIDE {
111 OnMessageCenterChanged(); 110 OnMessageCenterChanged();
112 } 111 }
113 112
114 void OnMessageCenterChanged() { 113 void OnMessageCenterChanged() {
115 notification_received_ = true; 114 notification_received_ = true;
116 if (message_loop_runner_) 115 if (message_loop_runner_)
117 message_loop_runner_->Quit(); 116 message_loop_runner_->Quit();
118 } 117 }
119 118
120 bool notification_received_; 119 bool notification_received_;
121 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; 120 scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
122 121
123 DISALLOW_COPY_AND_ASSIGN(MessageCenterChangeObserver); 122 DISALLOW_COPY_AND_ASSIGN(MessageCenterChangeObserver);
124 }; 123 };
125 124
126 typedef MessageCenterChangeObserver NotificationChangeObserver; 125 class NotificationBalloonChangeObserver
127 126 : public content::NotificationObserver,
128 #else 127 public NotificationChangeObserver {
129
130 class NotificationBalloonChangeObserver : public content::NotificationObserver {
131 public: 128 public:
132 NotificationBalloonChangeObserver() 129 NotificationBalloonChangeObserver()
133 : collection_(BalloonNotificationUIManager::GetInstanceForTesting()-> 130 : collection_(BalloonNotificationUIManager::GetInstanceForTesting()->
134 balloon_collection()), 131 balloon_collection()),
135 collection_changed_(false), 132 collection_changed_(false),
136 notification_received_(false), 133 notification_received_(false),
137 running_(false), 134 running_(false),
138 done_(false) { 135 done_(false) {
139 registrar_.Add(this, chrome::NOTIFICATION_NOTIFY_BALLOON_CONNECTED, 136 registrar_.Add(this, chrome::NOTIFICATION_NOTIFY_BALLOON_CONNECTED,
140 content::NotificationService::AllSources()); 137 content::NotificationService::AllSources());
141 registrar_.Add(this, chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED, 138 registrar_.Add(this, chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED,
142 content::NotificationService::AllSources()); 139 content::NotificationService::AllSources());
143 collection_->set_on_collection_changed_callback( 140 collection_->set_on_collection_changed_callback(
144 base::Bind(&NotificationBalloonChangeObserver::OnCollectionChanged, 141 base::Bind(&NotificationBalloonChangeObserver::OnCollectionChanged,
145 base::Unretained(this))); 142 base::Unretained(this)));
146 } 143 }
147 144
148 virtual ~NotificationBalloonChangeObserver() { 145 virtual ~NotificationBalloonChangeObserver() {
149 collection_->set_on_collection_changed_callback(base::Closure()); 146 collection_->set_on_collection_changed_callback(base::Closure());
150 } 147 }
151 148
152 bool Wait() { 149 // NotificationChangeObserver:
150 virtual bool Wait() OVERRIDE {
153 if (!Check()) { 151 if (!Check()) {
154 running_ = true; 152 running_ = true;
155 message_loop_runner_ = new content::MessageLoopRunner; 153 message_loop_runner_ = new content::MessageLoopRunner;
156 message_loop_runner_->Run(); 154 message_loop_runner_->Run();
157 EXPECT_TRUE(done_); 155 EXPECT_TRUE(done_);
158 } 156 }
159 return done_; 157 return done_;
160 } 158 }
161 159
162 bool Check() { 160 bool Check() {
163 if (done_) 161 if (done_)
164 return true; 162 return true;
165 163
166 if (collection_changed_ && notification_received_) { 164 if (collection_changed_ && notification_received_) {
167 done_ = true; 165 done_ = true;
168 if (running_) { 166 if (running_) {
169 message_loop_runner_->Quit(); 167 message_loop_runner_->Quit();
170 running_ = false; 168 running_ = false;
171 } 169 }
172 } 170 }
173 return done_; 171 return done_;
174 } 172 }
175 173
176 void OnCollectionChanged() { 174 void OnCollectionChanged() {
177 collection_changed_ = true; 175 collection_changed_ = true;
178 Check(); 176 Check();
179 } 177 }
180 178
181 // Overridden from content::NotificationObserver: 179 // content::NotificationObserver:
182 virtual void Observe(int type, 180 virtual void Observe(int type,
183 const content::NotificationSource& source, 181 const content::NotificationSource& source,
184 const content::NotificationDetails& details) OVERRIDE { 182 const content::NotificationDetails& details) OVERRIDE {
185 DCHECK(type == chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED || 183 DCHECK(type == chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED ||
186 type == chrome::NOTIFICATION_NOTIFY_BALLOON_CONNECTED); 184 type == chrome::NOTIFICATION_NOTIFY_BALLOON_CONNECTED);
187 notification_received_ = true; 185 notification_received_ = true;
188 Check(); 186 Check();
189 } 187 }
190 188
191 private: 189 private:
192 content::NotificationRegistrar registrar_; 190 content::NotificationRegistrar registrar_;
193 BalloonCollection* collection_; 191 BalloonCollection* collection_;
194 192
195 bool collection_changed_; 193 bool collection_changed_;
196 bool notification_received_; 194 bool notification_received_;
197 bool running_; 195 bool running_;
198 bool done_; 196 bool done_;
199 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; 197 scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
200 198
201 DISALLOW_COPY_AND_ASSIGN(NotificationBalloonChangeObserver); 199 DISALLOW_COPY_AND_ASSIGN(NotificationBalloonChangeObserver);
202 }; 200 };
203 201
204 typedef NotificationBalloonChangeObserver NotificationChangeObserver;
205
206 #endif // ENABLE_MESSAGE_CENTER
207
208 } // namespace 202 } // namespace
209 203
210 class NotificationsTest : public InProcessBrowserTest { 204 class NotificationsTest : public InProcessBrowserTest {
211 public: 205 public:
212 NotificationsTest() {} 206 NotificationsTest() {}
213 207
214 protected: 208 protected:
215 // Overriden from InProcessBrowserTest: 209 // Overriden from InProcessBrowserTest:
216 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE; 210 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
217 211
218 int GetNotificationCount(); 212 int GetNotificationCount();
219 213
214 NotificationChangeObserver* CreateObserver();
215
220 void CloseBrowserWindow(Browser* browser); 216 void CloseBrowserWindow(Browser* browser);
221 void CrashTab(Browser* browser, int index); 217 void CrashTab(Browser* browser, int index);
222 #if ENABLE_MESSAGE_CENTER_TESTING
223 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
224 #else
225 const std::deque<Balloon*>& GetActiveBalloons(); 218 const std::deque<Balloon*>& GetActiveBalloons();
226 void CrashNotification(Balloon* balloon); 219 void CrashNotification(Balloon* balloon);
227 bool CloseNotificationAndWait(const Notification& notification); 220 bool CloseNotificationAndWait(const Notification& notification);
228 #endif
229 221
230 void SetDefaultPermissionSetting(ContentSetting setting); 222 void SetDefaultPermissionSetting(ContentSetting setting);
231 void DenyOrigin(const GURL& origin); 223 void DenyOrigin(const GURL& origin);
232 void AllowOrigin(const GURL& origin); 224 void AllowOrigin(const GURL& origin);
233 void AllowAllOrigins(); 225 void AllowAllOrigins();
234 226
235 void VerifyInfobar(const Browser* browser, int index); 227 void VerifyInfobar(const Browser* browser, int index);
236 std::string CreateNotification(Browser* browser, 228 std::string CreateNotification(Browser* browser,
237 bool wait_for_new_balloon, 229 bool wait_for_new_balloon,
238 const char* icon, 230 const char* icon,
(...skipping 24 matching lines...) Expand all
263 void NotificationsTest::SetUpInProcessBrowserTestFixture() { 255 void NotificationsTest::SetUpInProcessBrowserTestFixture() {
264 InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); 256 InProcessBrowserTest::SetUpInProcessBrowserTestFixture();
265 257
266 ASSERT_TRUE(test_server()->Start()); 258 ASSERT_TRUE(test_server()->Start());
267 empty_page_url_ = test_server()->GetURL("files/empty.html"); 259 empty_page_url_ = test_server()->GetURL("files/empty.html");
268 test_page_url_ = test_server()->GetURL( 260 test_page_url_ = test_server()->GetURL(
269 "files/notifications/notification_tester.html"); 261 "files/notifications/notification_tester.html");
270 } 262 }
271 263
272 int NotificationsTest::GetNotificationCount() { 264 int NotificationsTest::GetNotificationCount() {
273 #if ENABLE_MESSAGE_CENTER_TESTING 265 if (message_center::IsRichNotificationEnabled()) {
274 return message_center::MessageCenter::Get()->NotificationCount(); 266 return message_center::MessageCenter::Get()->NotificationCount();
275 #else 267 } else {
276 return BalloonNotificationUIManager::GetInstanceForTesting()-> 268 return BalloonNotificationUIManager::GetInstanceForTesting()->
277 balloon_collection()->GetActiveBalloons().size(); 269 balloon_collection()->GetActiveBalloons().size();
278 #endif // ENABLE_MESSAGE_CENTER_TESTING 270 }
271 }
272
273 NotificationChangeObserver* NotificationsTest::CreateObserver() {
274 if (message_center::IsRichNotificationEnabled())
275 return new MessageCenterChangeObserver();
276 else
277 return new NotificationBalloonChangeObserver();
279 } 278 }
280 279
281 void NotificationsTest::CloseBrowserWindow(Browser* browser) { 280 void NotificationsTest::CloseBrowserWindow(Browser* browser) {
282 content::WindowedNotificationObserver observer( 281 content::WindowedNotificationObserver observer(
283 chrome::NOTIFICATION_BROWSER_CLOSED, 282 chrome::NOTIFICATION_BROWSER_CLOSED,
284 content::Source<Browser>(browser)); 283 content::Source<Browser>(browser));
285 browser->window()->Close(); 284 browser->window()->Close();
286 observer.Wait(); 285 observer.Wait();
287 } 286 }
288 287
289 void NotificationsTest::CrashTab(Browser* browser, int index) { 288 void NotificationsTest::CrashTab(Browser* browser, int index) {
290 content::CrashTab(browser->tab_strip_model()->GetWebContentsAt(index)); 289 content::CrashTab(browser->tab_strip_model()->GetWebContentsAt(index));
291 } 290 }
292 291
293 #if ENABLE_MESSAGE_CENTER_TESTING
294 // Overriden from InProcessBrowserTest:
295 void NotificationsTest::SetUpCommandLine(CommandLine* command_line) {
296 InProcessBrowserTest::SetUpCommandLine(command_line);
297 command_line->AppendSwitch(
298 message_center::switches::kEnableRichNotifications);
299 }
300 #else
301
302 const std::deque<Balloon*>& NotificationsTest::GetActiveBalloons() { 292 const std::deque<Balloon*>& NotificationsTest::GetActiveBalloons() {
303 return BalloonNotificationUIManager::GetInstanceForTesting()-> 293 return BalloonNotificationUIManager::GetInstanceForTesting()->
304 balloon_collection()->GetActiveBalloons(); 294 balloon_collection()->GetActiveBalloons();
305 } 295 }
306 296
307 void NotificationsTest::CrashNotification(Balloon* balloon) { 297 void NotificationsTest::CrashNotification(Balloon* balloon) {
308 content::CrashTab(balloon->balloon_view()->GetHost()->web_contents()); 298 content::CrashTab(balloon->balloon_view()->GetHost()->web_contents());
309 } 299 }
310 300
311 bool NotificationsTest::CloseNotificationAndWait( 301 bool NotificationsTest::CloseNotificationAndWait(
312 const Notification& notification) { 302 const Notification& notification) {
313 NotificationChangeObserver observer; 303 scoped_ptr<NotificationChangeObserver> observer(CreateObserver());
314 bool success = g_browser_process->notification_ui_manager()-> 304 bool success = g_browser_process->notification_ui_manager()->
315 CancelById(notification.notification_id()); 305 CancelById(notification.notification_id());
316 if (success) 306 if (success)
317 return observer.Wait(); 307 return observer->Wait();
318 return false; 308 return false;
319 } 309 }
320 310
321 #endif // !ENABLE_MESSAGE_CENTER_TESTING
322
323 void NotificationsTest::SetDefaultPermissionSetting(ContentSetting setting) { 311 void NotificationsTest::SetDefaultPermissionSetting(ContentSetting setting) {
324 DesktopNotificationService* service = GetDesktopNotificationService(); 312 DesktopNotificationService* service = GetDesktopNotificationService();
325 service->SetDefaultContentSetting(setting); 313 service->SetDefaultContentSetting(setting);
326 } 314 }
327 315
328 void NotificationsTest::DenyOrigin(const GURL& origin) { 316 void NotificationsTest::DenyOrigin(const GURL& origin) {
329 DropOriginPreference(origin); 317 DropOriginPreference(origin);
330 GetDesktopNotificationService()->DenyPermission(origin); 318 GetDesktopNotificationService()->DenyPermission(origin);
331 } 319 }
332 320
(...skipping 25 matching lines...) Expand all
358 Browser* browser, 346 Browser* browser,
359 bool wait_for_new_balloon, 347 bool wait_for_new_balloon,
360 const char* icon, 348 const char* icon,
361 const char* title, 349 const char* title,
362 const char* body, 350 const char* body,
363 const char* replace_id) { 351 const char* replace_id) {
364 std::string script = base::StringPrintf( 352 std::string script = base::StringPrintf(
365 "createNotification('%s', '%s', '%s', '%s');", 353 "createNotification('%s', '%s', '%s', '%s');",
366 icon, title, body, replace_id); 354 icon, title, body, replace_id);
367 355
368 NotificationChangeObserver observer; 356 scoped_ptr<NotificationChangeObserver> observer(CreateObserver());
369 std::string result; 357 std::string result;
370 bool success = content::ExecuteScriptAndExtractString( 358 bool success = content::ExecuteScriptAndExtractString(
371 browser->tab_strip_model()->GetActiveWebContents(), 359 browser->tab_strip_model()->GetActiveWebContents(),
372 script, 360 script,
373 &result); 361 &result);
374 if (success && result != "-1" && wait_for_new_balloon) 362 if (success && result != "-1" && wait_for_new_balloon)
375 success = observer.Wait(); 363 success = observer->Wait();
376 EXPECT_TRUE(success); 364 EXPECT_TRUE(success);
377 365
378 return result; 366 return result;
379 } 367 }
380 368
381 std::string NotificationsTest::CreateSimpleNotification( 369 std::string NotificationsTest::CreateSimpleNotification(
382 Browser* browser, 370 Browser* browser,
383 bool wait_for_new_balloon) { 371 bool wait_for_new_balloon) {
384 return CreateNotification( 372 return CreateNotification(
385 browser, wait_for_new_balloon, 373 browser, wait_for_new_balloon,
(...skipping 17 matching lines...) Expand all
403 return true; 391 return true;
404 } 392 }
405 393
406 bool NotificationsTest::CancelNotification( 394 bool NotificationsTest::CancelNotification(
407 const char* notification_id, 395 const char* notification_id,
408 Browser* browser) { 396 Browser* browser) {
409 std::string script = base::StringPrintf( 397 std::string script = base::StringPrintf(
410 "cancelNotification('%s');", 398 "cancelNotification('%s');",
411 notification_id); 399 notification_id);
412 400
413 NotificationChangeObserver observer; 401 scoped_ptr<NotificationChangeObserver> observer(CreateObserver());
414 std::string result; 402 std::string result;
415 bool success = content::ExecuteScriptAndExtractString( 403 bool success = content::ExecuteScriptAndExtractString(
416 browser->tab_strip_model()->GetActiveWebContents(), 404 browser->tab_strip_model()->GetActiveWebContents(),
417 script, 405 script,
418 &result); 406 &result);
419 if (!success || result != "1") 407 if (!success || result != "1")
420 return false; 408 return false;
421 return observer.Wait(); 409 return observer->Wait();
422 } 410 }
423 411
424 bool NotificationsTest::PerformActionOnInfobar( 412 bool NotificationsTest::PerformActionOnInfobar(
425 Browser* browser, 413 Browser* browser,
426 InfobarAction action, 414 InfobarAction action,
427 int infobar_index, 415 int infobar_index,
428 int tab_index) { 416 int tab_index) {
429 InfoBarService* infobar_service = InfoBarService::FromWebContents( 417 InfoBarService* infobar_service = InfoBarService::FromWebContents(
430 browser->tab_strip_model()->GetWebContentsAt(tab_index)); 418 browser->tab_strip_model()->GetWebContentsAt(tab_index));
431 419
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 523
536 // Creates a simple notification. 524 // Creates a simple notification.
537 AllowAllOrigins(); 525 AllowAllOrigins();
538 ui_test_utils::NavigateToURL(browser(), test_page_url_); 526 ui_test_utils::NavigateToURL(browser(), test_page_url_);
539 527
540 std::string result = CreateSimpleNotification(browser(), true); 528 std::string result = CreateSimpleNotification(browser(), true);
541 EXPECT_NE("-1", result); 529 EXPECT_NE("-1", result);
542 530
543 GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl); 531 GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl);
544 ASSERT_EQ(1, GetNotificationCount()); 532 ASSERT_EQ(1, GetNotificationCount());
545 #if ENABLE_MESSAGE_CENTER_TESTING 533 if (message_center::IsRichNotificationEnabled()) {
546 message_center::NotificationList::Notifications notifications = 534 message_center::NotificationList::Notifications notifications =
547 message_center::MessageCenter::Get()->GetNotifications(); 535 message_center::MessageCenter::Get()->GetNotifications();
548 EXPECT_EQ(ASCIIToUTF16("My Title"), (*notifications.rbegin())->title()); 536 EXPECT_EQ(ASCIIToUTF16("My Title"), (*notifications.rbegin())->title());
549 EXPECT_EQ(ASCIIToUTF16("My Body"), (*notifications.rbegin())->message()); 537 EXPECT_EQ(ASCIIToUTF16("My Body"), (*notifications.rbegin())->message());
550 #else 538 } else {
551 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 539 const std::deque<Balloon*>& balloons = GetActiveBalloons();
552 ASSERT_EQ(1U, balloons.size()); 540 ASSERT_EQ(1U, balloons.size());
553 Balloon* balloon = balloons[0]; 541 Balloon* balloon = balloons[0];
554 const Notification& notification = balloon->notification(); 542 const Notification& notification = balloon->notification();
555 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); 543 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url());
556 EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title()); 544 EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title());
557 EXPECT_EQ(ASCIIToUTF16("My Body"), notification.body()); 545 EXPECT_EQ(ASCIIToUTF16("My Body"), notification.body());
558 #endif 546 }
559 } 547 }
560 548
561 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseNotification) { 549 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseNotification) {
562 #if defined(OS_MACOSX) 550 #if defined(OS_MACOSX)
563 // TODO(kbr): re-enable: http://crbug.com/222296 551 // TODO(kbr): re-enable: http://crbug.com/222296
564 if (base::mac::IsOSMountainLionOrLater()) 552 if (base::mac::IsOSMountainLionOrLater())
565 return; 553 return;
566 #endif 554 #endif
567 555
568 // Creates a notification and closes it. 556 // Creates a notification and closes it.
569 AllowAllOrigins(); 557 AllowAllOrigins();
570 ui_test_utils::NavigateToURL(browser(), test_page_url_); 558 ui_test_utils::NavigateToURL(browser(), test_page_url_);
571 559
572 std::string result = CreateSimpleNotification(browser(), true); 560 std::string result = CreateSimpleNotification(browser(), true);
573 EXPECT_NE("-1", result); 561 EXPECT_NE("-1", result);
574 ASSERT_EQ(1, GetNotificationCount()); 562 ASSERT_EQ(1, GetNotificationCount());
575 563
576 #if ENABLE_MESSAGE_CENTER_TESTING 564 if (message_center::IsRichNotificationEnabled()) {
577 message_center::NotificationList::Notifications notifications = 565 message_center::NotificationList::Notifications notifications =
578 message_center::MessageCenter::Get()->GetNotifications(); 566 message_center::MessageCenter::Get()->GetNotifications();
579 message_center::MessageCenter::Get()->RemoveNotification( 567 message_center::MessageCenter::Get()->RemoveNotification(
580 (*notifications.rbegin())->id(), 568 (*notifications.rbegin())->id(),
581 true); // by_user 569 true); // by_user
582 #else 570 } else {
583 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 571 const std::deque<Balloon*>& balloons = GetActiveBalloons();
584 EXPECT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); 572 EXPECT_TRUE(CloseNotificationAndWait(balloons[0]->notification()));
585 #endif // ENABLE_MESSAGE_CENTER_TESTING 573 }
586 574
587 ASSERT_EQ(0, GetNotificationCount()); 575 ASSERT_EQ(0, GetNotificationCount());
588 } 576 }
589 577
590 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCancelNotification) { 578 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCancelNotification) {
591 #if defined(OS_MACOSX) 579 #if defined(OS_MACOSX)
592 // TODO(kbr): re-enable: http://crbug.com/222296 580 // TODO(kbr): re-enable: http://crbug.com/222296
593 if (base::mac::IsOSMountainLionOrLater()) 581 if (base::mac::IsOSMountainLionOrLater())
594 return; 582 return;
595 #endif 583 #endif
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 ui_test_utils::NavigateToURL(browser(), test_page_url_); 746 ui_test_utils::NavigateToURL(browser(), test_page_url_);
759 CreateSimpleNotification(browser(), true); 747 CreateSimpleNotification(browser(), true);
760 ASSERT_EQ(1, GetNotificationCount()); 748 ASSERT_EQ(1, GetNotificationCount());
761 749
762 DenyOrigin(test_page_url_.GetOrigin()); 750 DenyOrigin(test_page_url_.GetOrigin());
763 ContentSettingsForOneType settings; 751 ContentSettingsForOneType settings;
764 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); 752 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
765 ASSERT_TRUE(CheckOriginInSetting(settings, test_page_url_.GetOrigin())); 753 ASSERT_TRUE(CheckOriginInSetting(settings, test_page_url_.GetOrigin()));
766 754
767 EXPECT_EQ(1, GetNotificationCount()); 755 EXPECT_EQ(1, GetNotificationCount());
768 #if ENABLE_MESSAGE_CENTER_TESTING 756 if (message_center::IsRichNotificationEnabled()) {
769 message_center::NotificationList::Notifications notifications = 757 message_center::NotificationList::Notifications notifications =
770 message_center::MessageCenter::Get()->GetNotifications(); 758 message_center::MessageCenter::Get()->GetNotifications();
771 message_center::MessageCenter::Get()->RemoveNotification( 759 message_center::MessageCenter::Get()->RemoveNotification(
772 (*notifications.rbegin())->id(), 760 (*notifications.rbegin())->id(),
773 true); // by_user 761 true); // by_user
774 #else 762 } else {
775 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 763 const std::deque<Balloon*>& balloons = GetActiveBalloons();
776 ASSERT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); 764 ASSERT_TRUE(CloseNotificationAndWait(balloons[0]->notification()));
777 #endif // ENABLE_MESSAGE_CENTER_TESTING 765 }
778 ASSERT_EQ(0, GetNotificationCount()); 766 ASSERT_EQ(0, GetNotificationCount());
779 } 767 }
780 768
781 // Crashes on Linux/Win. See http://crbug.com/160657. 769 // Crashes on Linux/Win. See http://crbug.com/160657.
782 IN_PROC_BROWSER_TEST_F( 770 IN_PROC_BROWSER_TEST_F(
783 NotificationsTest, 771 NotificationsTest,
784 DISABLED_TestOriginPrefsNotSavedInIncognito) { 772 DISABLED_TestOriginPrefsNotSavedInIncognito) {
785 // Verify that allow/deny origin preferences are not saved in incognito. 773 // Verify that allow/deny origin preferences are not saved in incognito.
786 Browser* incognito = CreateIncognitoBrowser(); 774 Browser* incognito = CreateIncognitoBrowser();
787 ui_test_utils::NavigateToURL(incognito, test_page_url_); 775 ui_test_utils::NavigateToURL(incognito, test_page_url_);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 browser(), 817 browser(),
830 empty_page_url_, 818 empty_page_url_,
831 NEW_BACKGROUND_TAB, 819 NEW_BACKGROUND_TAB,
832 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 820 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
833 browser()->tab_strip_model()->ActivateTabAt(0, true); 821 browser()->tab_strip_model()->ActivateTabAt(0, true);
834 ui_test_utils::NavigateToURL(browser(), test_page_url_); 822 ui_test_utils::NavigateToURL(browser(), test_page_url_);
835 ASSERT_TRUE(RequestPermissionAndWait(browser())); 823 ASSERT_TRUE(RequestPermissionAndWait(browser()));
836 CrashTab(browser(), 0); 824 CrashTab(browser(), 0);
837 } 825 }
838 826
839 // Notifications don't have their own process with the message center.
840 #if !ENABLE_MESSAGE_CENTER_TESTING
841 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestKillNotificationProcess) { 827 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestKillNotificationProcess) {
828 // Notifications don't have their own process with the message center.
829 if (message_center::IsRichNotificationEnabled())
830 return;
831
842 #if defined(OS_MACOSX) 832 #if defined(OS_MACOSX)
843 // TODO(kbr): re-enable: http://crbug.com/222296 833 // TODO(kbr): re-enable: http://crbug.com/222296
844 if (base::mac::IsOSMountainLionOrLater()) 834 if (base::mac::IsOSMountainLionOrLater())
845 return; 835 return;
846 #endif 836 #endif
847 // Test killing a notification doesn't crash Chrome. 837 // Test killing a notification doesn't crash Chrome.
848 AllowAllOrigins(); 838 AllowAllOrigins();
849 ui_test_utils::NavigateToURL(browser(), test_page_url_); 839 ui_test_utils::NavigateToURL(browser(), test_page_url_);
850 CreateSimpleNotification(browser(), true); 840 CreateSimpleNotification(browser(), true);
851 ASSERT_EQ(1, GetNotificationCount()); 841 ASSERT_EQ(1, GetNotificationCount());
852 842
853 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 843 const std::deque<Balloon*>& balloons = GetActiveBalloons();
854 ASSERT_EQ(1U, balloons.size()); 844 ASSERT_EQ(1U, balloons.size());
855 CrashNotification(balloons[0]); 845 CrashNotification(balloons[0]);
856 ASSERT_EQ(0, GetNotificationCount()); 846 ASSERT_EQ(0, GetNotificationCount());
857 } 847 }
858 #endif
859 848
860 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) { 849 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) {
861 #if defined(OS_MACOSX) 850 #if defined(OS_MACOSX)
862 // TODO(kbr): re-enable: http://crbug.com/222296 851 // TODO(kbr): re-enable: http://crbug.com/222296
863 if (base::mac::IsOSMountainLionOrLater()) 852 if (base::mac::IsOSMountainLionOrLater())
864 return; 853 return;
865 #endif 854 #endif
866 // Test notifications in incognito window. 855 // Test notifications in incognito window.
867 Browser* browser = CreateIncognitoBrowser(); 856 Browser* browser = CreateIncognitoBrowser();
868 ui_test_utils::NavigateToURL(browser, test_page_url_); 857 ui_test_utils::NavigateToURL(browser, test_page_url_);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 std::string result = CreateNotification( 940 std::string result = CreateNotification(
952 browser(), true, "abc.png", "Title1", "Body1", "chat"); 941 browser(), true, "abc.png", "Title1", "Body1", "chat");
953 EXPECT_NE("-1", result); 942 EXPECT_NE("-1", result);
954 943
955 ASSERT_EQ(1, GetNotificationCount()); 944 ASSERT_EQ(1, GetNotificationCount());
956 945
957 result = CreateNotification( 946 result = CreateNotification(
958 browser(), false, "no_such_file.png", "Title2", "Body2", "chat"); 947 browser(), false, "no_such_file.png", "Title2", "Body2", "chat");
959 EXPECT_NE("-1", result); 948 EXPECT_NE("-1", result);
960 949
961 #if ENABLE_MESSAGE_CENTER_TESTING 950 if (message_center::IsRichNotificationEnabled()) {
962 ASSERT_EQ(1, GetNotificationCount()); 951 ASSERT_EQ(1, GetNotificationCount());
963 message_center::NotificationList::Notifications notifications = 952 message_center::NotificationList::Notifications notifications =
964 message_center::MessageCenter::Get()->GetNotifications(); 953 message_center::MessageCenter::Get()->GetNotifications();
965 EXPECT_EQ(ASCIIToUTF16("Title2"), (*notifications.rbegin())->title()); 954 EXPECT_EQ(ASCIIToUTF16("Title2"), (*notifications.rbegin())->title());
966 EXPECT_EQ(ASCIIToUTF16("Body2"), (*notifications.rbegin())->message()); 955 EXPECT_EQ(ASCIIToUTF16("Body2"), (*notifications.rbegin())->message());
967 #else 956 } else {
968 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 957 const std::deque<Balloon*>& balloons = GetActiveBalloons();
969 ASSERT_EQ(1U, balloons.size()); 958 ASSERT_EQ(1U, balloons.size());
970 Balloon* balloon = balloons[0]; 959 Balloon* balloon = balloons[0];
971 const Notification& notification = balloon->notification(); 960 const Notification& notification = balloon->notification();
972 GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl); 961 GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl);
973 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); 962 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url());
974 EXPECT_EQ(ASCIIToUTF16("Title2"), notification.title()); 963 EXPECT_EQ(ASCIIToUTF16("Title2"), notification.title());
975 EXPECT_EQ(ASCIIToUTF16("Body2"), notification.body()); 964 EXPECT_EQ(ASCIIToUTF16("Body2"), notification.body());
976 #endif 965 }
977 } 966 }
OLDNEW
« no previous file with comments | « chrome/browser/notifications/notification.cc ('k') | chrome/browser/notifications/notification_ui_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698