| OLD | NEW |
| 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/command_line.h" |
| 11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
| 12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 13 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
| 14 #include "base/strings/stringprintf.h" | 14 #include "base/strings/stringprintf.h" |
| 15 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 16 #include "base/test/simple_test_clock.h" | 16 #include "base/test/simple_test_clock.h" |
| 17 #include "base/time/clock.h" | 17 #include "base/time/clock.h" |
| 18 #include "chrome/browser/browser_process.h" | 18 #include "chrome/browser/browser_process.h" |
| 19 #include "chrome/browser/chrome_notification_types.h" | 19 #include "chrome/browser/chrome_notification_types.h" |
| 20 #include "chrome/browser/content_settings/host_content_settings_map.h" | 20 #include "chrome/browser/content_settings/host_content_settings_map.h" |
| 21 #include "chrome/browser/infobars/infobar_service.h" | 21 #include "chrome/browser/infobars/infobar_service.h" |
| 22 #include "chrome/browser/notifications/desktop_notification_profile_util.h" | 22 #include "chrome/browser/notifications/desktop_notification_profile_util.h" |
| 23 #include "chrome/browser/notifications/notification.h" | 23 #include "chrome/browser/notifications/notification.h" |
| 24 #include "chrome/browser/profiles/profile.h" | 24 #include "chrome/browser/profiles/profile.h" |
| 25 #include "chrome/browser/ui/browser.h" | 25 #include "chrome/browser/ui/browser.h" |
| 26 #include "chrome/browser/ui/browser_tabstrip.h" | 26 #include "chrome/browser/ui/browser_tabstrip.h" |
| 27 #include "chrome/browser/ui/browser_window.h" | 27 #include "chrome/browser/ui/browser_window.h" |
| 28 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 28 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 29 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
| 29 #include "chrome/common/content_settings.h" | 30 #include "chrome/common/content_settings.h" |
| 30 #include "chrome/common/content_settings_pattern.h" | 31 #include "chrome/common/content_settings_pattern.h" |
| 31 #include "chrome/test/base/in_process_browser_test.h" | 32 #include "chrome/test/base/in_process_browser_test.h" |
| 32 #include "chrome/test/base/ui_test_utils.h" | 33 #include "chrome/test/base/ui_test_utils.h" |
| 33 #include "components/infobars/core/confirm_infobar_delegate.h" | 34 #include "components/infobars/core/confirm_infobar_delegate.h" |
| 34 #include "components/infobars/core/infobar.h" | 35 #include "components/infobars/core/infobar.h" |
| 35 #include "content/public/browser/notification_service.h" | 36 #include "content/public/browser/notification_service.h" |
| 36 #include "content/public/browser/notification_source.h" | 37 #include "content/public/browser/notification_source.h" |
| 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 "net/base/net_util.h" | 43 #include "net/base/net_util.h" |
| 43 #include "net/test/embedded_test_server/embedded_test_server.h" | 44 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 44 #include "testing/gtest/include/gtest/gtest.h" | 45 #include "testing/gtest/include/gtest/gtest.h" |
| 45 #include "ui/base/window_open_disposition.h" | 46 #include "ui/base/window_open_disposition.h" |
| 46 #include "ui/message_center/message_center.h" | 47 #include "ui/message_center/message_center.h" |
| 47 #include "ui/message_center/message_center_observer.h" | 48 #include "ui/message_center/message_center_observer.h" |
| 48 #include "url/gurl.h" | 49 #include "url/gurl.h" |
| 49 | 50 |
| 50 namespace { | 51 namespace { |
| 51 | 52 |
| 52 const char kExpectedIconUrl[] = "/notifications/no_such_file.png"; | 53 const char kExpectedIconUrl[] = "/notifications/no_such_file.png"; |
| 53 | 54 |
| 54 enum InfobarAction { | 55 enum PromptAction { |
| 55 DISMISS = 0, | 56 DISMISS = 0, |
| 56 ALLOW, | 57 ALLOW, |
| 57 DENY, | 58 DENY, |
| 58 }; | 59 }; |
| 59 | 60 |
| 60 class NotificationChangeObserver { | 61 class NotificationChangeObserver { |
| 61 public: | 62 public: |
| 62 virtual ~NotificationChangeObserver() {} | 63 virtual ~NotificationChangeObserver() {} |
| 63 virtual bool Wait() = 0; | 64 virtual bool Wait() = 0; |
| 64 }; | 65 }; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 if (message_loop_runner_.get()) | 108 if (message_loop_runner_.get()) |
| 108 message_loop_runner_->Quit(); | 109 message_loop_runner_->Quit(); |
| 109 } | 110 } |
| 110 | 111 |
| 111 bool notification_received_; | 112 bool notification_received_; |
| 112 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; | 113 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; |
| 113 | 114 |
| 114 DISALLOW_COPY_AND_ASSIGN(MessageCenterChangeObserver); | 115 DISALLOW_COPY_AND_ASSIGN(MessageCenterChangeObserver); |
| 115 }; | 116 }; |
| 116 | 117 |
| 118 class MockView : public PermissionBubbleView { |
| 119 public: |
| 120 MockView() : shown_(false), can_accept_updates_(true), delegate_(NULL) {} |
| 121 virtual ~MockView() {} |
| 122 |
| 123 void Clear() { |
| 124 shown_ = false; |
| 125 can_accept_updates_ = true; |
| 126 delegate_ = NULL; |
| 127 permission_requests_.clear(); |
| 128 permission_states_.clear(); |
| 129 } |
| 130 |
| 131 // PermissionBubbleView: |
| 132 virtual void SetDelegate(Delegate* delegate) OVERRIDE { |
| 133 delegate_ = delegate; |
| 134 } |
| 135 |
| 136 virtual void Show( |
| 137 const std::vector<PermissionBubbleRequest*>& requests, |
| 138 const std::vector<bool>& accept_state, |
| 139 bool customization_state_) OVERRIDE { |
| 140 shown_ = true; |
| 141 permission_requests_ = requests; |
| 142 permission_states_ = accept_state; |
| 143 } |
| 144 |
| 145 virtual void Hide() OVERRIDE { |
| 146 shown_ = false; |
| 147 } |
| 148 |
| 149 virtual bool IsVisible() OVERRIDE { |
| 150 return shown_; |
| 151 } |
| 152 |
| 153 virtual bool CanAcceptRequestUpdate() OVERRIDE { |
| 154 return can_accept_updates_; |
| 155 } |
| 156 |
| 157 void Accept() { |
| 158 delegate_->Accept(); |
| 159 } |
| 160 |
| 161 void Deny() { |
| 162 delegate_->Deny(); |
| 163 } |
| 164 |
| 165 void Close() { |
| 166 delegate_->Closing(); |
| 167 } |
| 168 |
| 169 bool shown_; |
| 170 bool can_accept_updates_; |
| 171 Delegate* delegate_; |
| 172 std::vector<PermissionBubbleRequest*> permission_requests_; |
| 173 std::vector<bool> permission_states_; |
| 174 }; |
| 175 |
| 117 } // namespace | 176 } // namespace |
| 118 | 177 |
| 119 class NotificationsTest : public InProcessBrowserTest { | 178 class NotificationsTest : public InProcessBrowserTest { |
| 120 public: | 179 public: |
| 121 NotificationsTest() {} | 180 NotificationsTest() {} |
| 122 | 181 |
| 123 protected: | 182 protected: |
| 124 int GetNotificationCount(); | 183 int GetNotificationCount(); |
| 125 int GetNotificationPopupCount(); | 184 int GetNotificationPopupCount(); |
| 126 | 185 |
| 127 void CloseBrowserWindow(Browser* browser); | 186 void CloseBrowserWindow(Browser* browser); |
| 128 void CrashTab(Browser* browser, int index); | 187 void CrashTab(Browser* browser, int index); |
| 129 | 188 |
| 130 void DenyOrigin(const GURL& origin); | 189 void DenyOrigin(const GURL& origin); |
| 131 void AllowOrigin(const GURL& origin); | 190 void AllowOrigin(const GURL& origin); |
| 132 void AllowAllOrigins(); | 191 void AllowAllOrigins(); |
| 133 void SetDefaultContentSetting(ContentSetting setting); | 192 void SetDefaultContentSetting(ContentSetting setting); |
| 134 | 193 |
| 135 void VerifyInfoBar(const Browser* browser, int index); | 194 void VerifyPrompt(const Browser* browser, int index); |
| 136 std::string CreateNotification(Browser* browser, | 195 std::string CreateNotification(Browser* browser, |
| 137 bool wait_for_new_balloon, | 196 bool wait_for_new_balloon, |
| 138 const char* icon, | 197 const char* icon, |
| 139 const char* title, | 198 const char* title, |
| 140 const char* body, | 199 const char* body, |
| 141 const char* replace_id); | 200 const char* replace_id); |
| 142 std::string CreateSimpleNotification(Browser* browser, | 201 std::string CreateSimpleNotification(Browser* browser, |
| 143 bool wait_for_new_balloon); | 202 bool wait_for_new_balloon); |
| 144 bool RequestPermissionAndWait(Browser* browser); | 203 bool RequestPermissionAndWait(Browser* browser); |
| 145 bool CancelNotification(const char* notification_id, Browser* browser); | 204 bool CancelNotification(const char* notification_id, Browser* browser); |
| 146 bool PerformActionOnInfoBar(Browser* browser, | 205 bool PerformAction(Browser* browser, |
| 147 InfobarAction action, | 206 PromptAction action, |
| 148 size_t infobar_index, | 207 size_t index, |
| 149 int tab_index); | 208 int tab_index); |
| 150 void GetPrefsByContentSetting(ContentSetting setting, | 209 void GetPrefsByContentSetting(ContentSetting setting, |
| 151 ContentSettingsForOneType* settings); | 210 ContentSettingsForOneType* settings); |
| 152 bool CheckOriginInSetting(const ContentSettingsForOneType& settings, | 211 bool CheckOriginInSetting(const ContentSettingsForOneType& settings, |
| 153 const GURL& origin); | 212 const GURL& origin); |
| 154 | 213 |
| 155 GURL GetTestPageURL() const { | 214 GURL GetTestPageURL() const { |
| 156 return embedded_test_server()->GetURL( | 215 return embedded_test_server()->GetURL( |
| 157 "/notifications/notification_tester.html"); | 216 "/notifications/notification_tester.html"); |
| 158 } | 217 } |
| 159 | 218 |
| 219 int GetBubblesQueueSize(PermissionBubbleManager* mgr); |
| 220 |
| 160 private: | 221 private: |
| 161 void DropOriginPreference(const GURL& origin); | 222 void DropOriginPreference(const GURL& origin); |
| 223 MockView mock_bubble_view_; |
| 162 }; | 224 }; |
| 163 | 225 |
| 164 int NotificationsTest::GetNotificationCount() { | 226 int NotificationsTest::GetNotificationCount() { |
| 165 return message_center::MessageCenter::Get()->NotificationCount(); | 227 return message_center::MessageCenter::Get()->NotificationCount(); |
| 166 } | 228 } |
| 167 | 229 |
| 168 int NotificationsTest::GetNotificationPopupCount() { | 230 int NotificationsTest::GetNotificationPopupCount() { |
| 169 return message_center::MessageCenter::Get()->GetPopupNotifications().size(); | 231 return message_center::MessageCenter::Get()->GetPopupNotifications().size(); |
| 170 } | 232 } |
| 171 | 233 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 196 browser()->profile()->GetHostContentSettingsMap()->ClearSettingsForOneType( | 258 browser()->profile()->GetHostContentSettingsMap()->ClearSettingsForOneType( |
| 197 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 259 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 198 SetDefaultContentSetting(CONTENT_SETTING_ALLOW); | 260 SetDefaultContentSetting(CONTENT_SETTING_ALLOW); |
| 199 } | 261 } |
| 200 | 262 |
| 201 void NotificationsTest::SetDefaultContentSetting(ContentSetting setting) { | 263 void NotificationsTest::SetDefaultContentSetting(ContentSetting setting) { |
| 202 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting( | 264 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting( |
| 203 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, setting); | 265 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, setting); |
| 204 } | 266 } |
| 205 | 267 |
| 206 void NotificationsTest::VerifyInfoBar(const Browser* browser, int index) { | 268 void NotificationsTest::VerifyPrompt(const Browser* browser, int index) { |
| 207 InfoBarService* infobar_service = InfoBarService::FromWebContents( | 269 if (!PermissionBubbleManager::Enabled()) { |
| 208 browser->tab_strip_model()->GetWebContentsAt(index)); | 270 InfoBarService* infobar_service = InfoBarService::FromWebContents( |
| 271 browser->tab_strip_model()->GetWebContentsAt(index)); |
| 209 | 272 |
| 210 ASSERT_EQ(1U, infobar_service->infobar_count()); | 273 ASSERT_EQ(1U, infobar_service->infobar_count()); |
| 211 ConfirmInfoBarDelegate* confirm_infobar = | 274 ConfirmInfoBarDelegate* confirm_infobar = |
| 212 infobar_service->infobar_at(0)->delegate()->AsConfirmInfoBarDelegate(); | 275 infobar_service->infobar_at(0)->delegate()->AsConfirmInfoBarDelegate(); |
| 213 ASSERT_TRUE(confirm_infobar); | 276 ASSERT_TRUE(confirm_infobar); |
| 214 int buttons = confirm_infobar->GetButtons(); | 277 int buttons = confirm_infobar->GetButtons(); |
| 215 EXPECT_TRUE(buttons & ConfirmInfoBarDelegate::BUTTON_OK); | 278 EXPECT_TRUE(buttons & ConfirmInfoBarDelegate::BUTTON_OK); |
| 216 EXPECT_TRUE(buttons & ConfirmInfoBarDelegate::BUTTON_CANCEL); | 279 EXPECT_TRUE(buttons & ConfirmInfoBarDelegate::BUTTON_CANCEL); |
| 280 } else { |
| 281 PermissionBubbleManager* permission_manager = |
| 282 PermissionBubbleManager::FromWebContents( |
| 283 browser->tab_strip_model()->GetWebContentsAt(0)); |
| 284 LOG(INFO) << "Get queue size"; |
| 285 ASSERT_EQ(1, GetBubblesQueueSize(permission_manager)); |
| 286 } |
| 217 } | 287 } |
| 218 | 288 |
| 219 std::string NotificationsTest::CreateNotification( | 289 std::string NotificationsTest::CreateNotification( |
| 220 Browser* browser, | 290 Browser* browser, |
| 221 bool wait_for_new_balloon, | 291 bool wait_for_new_balloon, |
| 222 const char* icon, | 292 const char* icon, |
| 223 const char* title, | 293 const char* title, |
| 224 const char* body, | 294 const char* body, |
| 225 const char* replace_id) { | 295 const char* replace_id) { |
| 226 std::string script = base::StringPrintf( | 296 std::string script = base::StringPrintf( |
| (...skipping 17 matching lines...) Expand all Loading... |
| 244 Browser* browser, | 314 Browser* browser, |
| 245 bool wait_for_new_balloon) { | 315 bool wait_for_new_balloon) { |
| 246 return CreateNotification( | 316 return CreateNotification( |
| 247 browser, wait_for_new_balloon, | 317 browser, wait_for_new_balloon, |
| 248 "no_such_file.png", "My Title", "My Body", ""); | 318 "no_such_file.png", "My Title", "My Body", ""); |
| 249 } | 319 } |
| 250 | 320 |
| 251 bool NotificationsTest::RequestPermissionAndWait(Browser* browser) { | 321 bool NotificationsTest::RequestPermissionAndWait(Browser* browser) { |
| 252 InfoBarService* infobar_service = InfoBarService::FromWebContents( | 322 InfoBarService* infobar_service = InfoBarService::FromWebContents( |
| 253 browser->tab_strip_model()->GetActiveWebContents()); | 323 browser->tab_strip_model()->GetActiveWebContents()); |
| 254 content::WindowedNotificationObserver observer( | 324 PermissionBubbleManager* permission_manager = |
| 255 chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED, | 325 PermissionBubbleManager::FromWebContents( |
| 256 content::Source<InfoBarService>(infobar_service)); | 326 browser->tab_strip_model()->GetWebContentsAt(0)); |
| 257 std::string result; | 327 permission_manager->SetView(&mock_bubble_view_); |
| 258 bool success = content::ExecuteScriptAndExtractString( | 328 if (!PermissionBubbleManager::Enabled()) { |
| 259 browser->tab_strip_model()->GetActiveWebContents(), | 329 content::WindowedNotificationObserver observer( |
| 260 "requestPermission();", | 330 chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED, |
| 261 &result); | 331 content::Source<InfoBarService>(infobar_service)); |
| 262 if (!success || result != "1") | 332 std::string result; |
| 263 return false; | 333 bool success = content::ExecuteScriptAndExtractString( |
| 264 observer.Wait(); | 334 browser->tab_strip_model()->GetActiveWebContents(), |
| 265 return true; | 335 "requestPermission();", |
| 336 &result); |
| 337 if (!success || result != "1") |
| 338 return false; |
| 339 observer.Wait(); |
| 340 return true; |
| 341 } else { |
| 342 std::string result; |
| 343 bool success = content::ExecuteScriptAndExtractString( |
| 344 browser->tab_strip_model()->GetActiveWebContents(), |
| 345 "requestPermission();", |
| 346 &result); |
| 347 if (!success || result != "1") |
| 348 return false; |
| 349 while (!mock_bubble_view_.shown_) { |
| 350 (new content::MessageLoopRunner())->Run(); |
| 351 } |
| 352 return true; |
| 353 } |
| 266 } | 354 } |
| 267 | 355 |
| 268 bool NotificationsTest::CancelNotification( | 356 bool NotificationsTest::CancelNotification( |
| 269 const char* notification_id, | 357 const char* notification_id, |
| 270 Browser* browser) { | 358 Browser* browser) { |
| 271 std::string script = base::StringPrintf( | 359 std::string script = base::StringPrintf( |
| 272 "cancelNotification('%s');", | 360 "cancelNotification('%s');", |
| 273 notification_id); | 361 notification_id); |
| 274 | 362 |
| 275 MessageCenterChangeObserver observer; | 363 MessageCenterChangeObserver observer; |
| 276 std::string result; | 364 std::string result; |
| 277 bool success = content::ExecuteScriptAndExtractString( | 365 bool success = content::ExecuteScriptAndExtractString( |
| 278 browser->tab_strip_model()->GetActiveWebContents(), | 366 browser->tab_strip_model()->GetActiveWebContents(), |
| 279 script, | 367 script, |
| 280 &result); | 368 &result); |
| 281 if (!success || result != "1") | 369 if (!success || result != "1") |
| 282 return false; | 370 return false; |
| 283 return observer.Wait(); | 371 return observer.Wait(); |
| 284 } | 372 } |
| 285 | 373 |
| 286 bool NotificationsTest::PerformActionOnInfoBar( | 374 bool NotificationsTest::PerformAction( |
| 287 Browser* browser, | 375 Browser* browser, |
| 288 InfobarAction action, | 376 PromptAction action, |
| 289 size_t infobar_index, | 377 size_t index, |
| 290 int tab_index) { | 378 int tab_index) { |
| 291 InfoBarService* infobar_service = InfoBarService::FromWebContents( | 379 InfoBarService* infobar_service = InfoBarService::FromWebContents( |
| 292 browser->tab_strip_model()->GetWebContentsAt(tab_index)); | 380 browser->tab_strip_model()->GetWebContentsAt(tab_index)); |
| 293 if (infobar_index >= infobar_service->infobar_count()) { | 381 PermissionBubbleManager* permission_manager = |
| 294 ADD_FAILURE(); | 382 PermissionBubbleManager::FromWebContents( |
| 295 return false; | 383 browser->tab_strip_model()->GetWebContentsAt(0)); |
| 384 if (!PermissionBubbleManager::Enabled()) { |
| 385 if (index >= infobar_service->infobar_count()) { |
| 386 ADD_FAILURE(); |
| 387 return false; |
| 388 } |
| 389 } else { |
| 390 if (static_cast<int>(index) >= GetBubblesQueueSize(permission_manager)) { |
| 391 ADD_FAILURE(); |
| 392 return false; |
| 393 } |
| 296 } | 394 } |
| 297 | 395 |
| 298 infobars::InfoBar* infobar = infobar_service->infobar_at(infobar_index); | 396 if (!PermissionBubbleManager::Enabled()) { |
| 299 infobars::InfoBarDelegate* infobar_delegate = infobar->delegate(); | 397 infobars::InfoBar* infobar = infobar_service->infobar_at(index); |
| 300 switch (action) { | 398 infobars::InfoBarDelegate* infobar_delegate = infobar->delegate(); |
| 301 case DISMISS: | 399 switch (action) { |
| 302 infobar_delegate->InfoBarDismissed(); | 400 case DISMISS: |
| 303 infobar_service->RemoveInfoBar(infobar); | 401 infobar_delegate->InfoBarDismissed(); |
| 304 return true; | |
| 305 | |
| 306 case ALLOW: { | |
| 307 ConfirmInfoBarDelegate* confirm_infobar_delegate = | |
| 308 infobar_delegate->AsConfirmInfoBarDelegate(); | |
| 309 if (!confirm_infobar_delegate) { | |
| 310 ADD_FAILURE(); | |
| 311 } else if (confirm_infobar_delegate->Accept()) { | |
| 312 infobar_service->RemoveInfoBar(infobar); | 402 infobar_service->RemoveInfoBar(infobar); |
| 313 return true; | 403 return true; |
| 404 |
| 405 case ALLOW: { |
| 406 ConfirmInfoBarDelegate* confirm_infobar_delegate = |
| 407 infobar_delegate->AsConfirmInfoBarDelegate(); |
| 408 if (!confirm_infobar_delegate) { |
| 409 ADD_FAILURE(); |
| 410 } else if (confirm_infobar_delegate->Accept()) { |
| 411 infobar_service->RemoveInfoBar(infobar); |
| 412 return true; |
| 413 } |
| 414 } |
| 415 |
| 416 case DENY: { |
| 417 ConfirmInfoBarDelegate* confirm_infobar_delegate = |
| 418 infobar_delegate->AsConfirmInfoBarDelegate(); |
| 419 if (!confirm_infobar_delegate) { |
| 420 ADD_FAILURE(); |
| 421 } else if (confirm_infobar_delegate->Cancel()) { |
| 422 infobar_service->RemoveInfoBar(infobar); |
| 423 return true; |
| 424 } |
| 314 } | 425 } |
| 315 } | 426 } |
| 316 | 427 } else { |
| 317 case DENY: { | 428 switch (action) { |
| 318 ConfirmInfoBarDelegate* confirm_infobar_delegate = | 429 case DISMISS: |
| 319 infobar_delegate->AsConfirmInfoBarDelegate(); | 430 mock_bubble_view_.Close(); |
| 320 if (!confirm_infobar_delegate) { | |
| 321 ADD_FAILURE(); | |
| 322 } else if (confirm_infobar_delegate->Cancel()) { | |
| 323 infobar_service->RemoveInfoBar(infobar); | |
| 324 return true; | 431 return true; |
| 325 } | 432 case ALLOW: |
| 433 mock_bubble_view_.Accept(); |
| 434 return true; |
| 435 case DENY: |
| 436 mock_bubble_view_.Deny(); |
| 437 return true; |
| 326 } | 438 } |
| 327 } | 439 } |
| 328 | 440 |
| 329 return false; | 441 return false; |
| 330 } | 442 } |
| 331 | 443 |
| 332 void NotificationsTest::GetPrefsByContentSetting( | 444 void NotificationsTest::GetPrefsByContentSetting( |
| 333 ContentSetting setting, | 445 ContentSetting setting, |
| 334 ContentSettingsForOneType* settings) { | 446 ContentSettingsForOneType* settings) { |
| 335 DesktopNotificationProfileUtil::GetNotificationsSettings( | 447 DesktopNotificationProfileUtil::GetNotificationsSettings( |
| (...skipping 18 matching lines...) Expand all Loading... |
| 354 return true; | 466 return true; |
| 355 } | 467 } |
| 356 return false; | 468 return false; |
| 357 } | 469 } |
| 358 | 470 |
| 359 void NotificationsTest::DropOriginPreference(const GURL& origin) { | 471 void NotificationsTest::DropOriginPreference(const GURL& origin) { |
| 360 DesktopNotificationProfileUtil::ClearSetting(browser()->profile(), | 472 DesktopNotificationProfileUtil::ClearSetting(browser()->profile(), |
| 361 ContentSettingsPattern::FromURLNoWildcard(origin)); | 473 ContentSettingsPattern::FromURLNoWildcard(origin)); |
| 362 } | 474 } |
| 363 | 475 |
| 476 int NotificationsTest::GetBubblesQueueSize( |
| 477 PermissionBubbleManager* mgr) { |
| 478 LOG(INFO) << "Have " << mgr->requests_.size(); |
| 479 return static_cast<int>(mgr->requests_.size()); |
| 480 } |
| 481 |
| 364 // If this flakes, use http://crbug.com/62311 and http://crbug.com/74428. | 482 // If this flakes, use http://crbug.com/62311 and http://crbug.com/74428. |
| 365 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestUserGestureInfobar) { | 483 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestUserGesture) { |
| 366 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 484 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 367 | 485 |
| 368 ui_test_utils::NavigateToURL( | 486 ui_test_utils::NavigateToURL( |
| 369 browser(), | 487 browser(), |
| 370 embedded_test_server()->GetURL( | 488 embedded_test_server()->GetURL( |
| 371 "/notifications/notifications_request_function.html")); | 489 "/notifications/notifications_request_function.html")); |
| 372 | 490 |
| 373 // Request permission by calling request() while eval'ing an inline script; | 491 // Request permission by calling request() while eval'ing an inline script; |
| 374 // That's considered a user gesture to webkit, and should produce an infobar. | 492 // That's considered a user gesture to webkit, and should produce an infobar. |
| 375 bool result; | 493 bool result; |
| 376 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( | 494 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( |
| 377 browser()->tab_strip_model()->GetActiveWebContents(), | 495 browser()->tab_strip_model()->GetActiveWebContents(), |
| 378 "window.domAutomationController.send(request());", | 496 "window.domAutomationController.send(request());", |
| 379 &result)); | 497 &result)); |
| 380 EXPECT_TRUE(result); | 498 EXPECT_TRUE(result); |
| 381 | 499 |
| 382 InfoBarService* infobar_service = InfoBarService::FromWebContents( | 500 InfoBarService* infobar_service = InfoBarService::FromWebContents( |
| 383 browser()->tab_strip_model()->GetWebContentsAt(0)); | 501 browser()->tab_strip_model()->GetWebContentsAt(0)); |
| 384 EXPECT_EQ(1U, infobar_service->infobar_count()); | 502 PermissionBubbleManager* permission_manager = |
| 503 PermissionBubbleManager::FromWebContents( |
| 504 browser()->tab_strip_model()->GetWebContentsAt(0)); |
| 505 if (!PermissionBubbleManager::Enabled()) |
| 506 EXPECT_EQ(1U, infobar_service->infobar_count()); |
| 507 else |
| 508 EXPECT_EQ(1, GetBubblesQueueSize(permission_manager)); |
| 385 } | 509 } |
| 386 | 510 |
| 387 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateSimpleNotification) { | 511 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateSimpleNotification) { |
| 388 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 512 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 389 | 513 |
| 390 // Creates a simple notification. | 514 // Creates a simple notification. |
| 391 AllowAllOrigins(); | 515 AllowAllOrigins(); |
| 392 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 516 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 393 | 517 |
| 394 std::string result = CreateSimpleNotification(browser(), true); | 518 std::string result = CreateSimpleNotification(browser(), true); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 556 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 433 | 557 |
| 434 std::string note_id = CreateSimpleNotification(browser(), true); | 558 std::string note_id = CreateSimpleNotification(browser(), true); |
| 435 EXPECT_NE(note_id, "-1"); | 559 EXPECT_NE(note_id, "-1"); |
| 436 | 560 |
| 437 ASSERT_EQ(1, GetNotificationCount()); | 561 ASSERT_EQ(1, GetNotificationCount()); |
| 438 ASSERT_TRUE(CancelNotification(note_id.c_str(), browser())); | 562 ASSERT_TRUE(CancelNotification(note_id.c_str(), browser())); |
| 439 ASSERT_EQ(0, GetNotificationCount()); | 563 ASSERT_EQ(0, GetNotificationCount()); |
| 440 } | 564 } |
| 441 | 565 |
| 442 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestPermissionInfobarAppears) { | 566 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestPermissionPromptAppears) { |
| 443 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 567 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 444 | 568 |
| 445 // Requests notification privileges and verifies the infobar appears. | 569 // Requests notification privileges and verifies the infobar appears. |
| 446 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 570 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 447 ASSERT_TRUE(RequestPermissionAndWait(browser())); | 571 ASSERT_TRUE(RequestPermissionAndWait(browser())); |
| 448 | 572 |
| 449 ASSERT_EQ(0, GetNotificationCount()); | 573 ASSERT_EQ(0, GetNotificationCount()); |
| 450 ASSERT_NO_FATAL_FAILURE(VerifyInfoBar(browser(), 0)); | 574 LOG(INFO) << "VerifyPrompt"; |
| 575 ASSERT_NO_FATAL_FAILURE(VerifyPrompt(browser(), 0)); |
| 451 } | 576 } |
| 452 | 577 |
| 453 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowOnPermissionInfobar) { | 578 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowOnPermission) { |
| 454 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 579 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 455 | 580 |
| 456 // Tries to create a notification and clicks allow on the infobar. | 581 // Tries to create a notification and clicks allow on the infobar. |
| 457 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 582 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 458 // This notification should not be shown because we do not have permission. | 583 // This notification should not be shown because we do not have permission. |
| 459 CreateSimpleNotification(browser(), false); | 584 CreateSimpleNotification(browser(), false); |
| 460 ASSERT_EQ(0, GetNotificationCount()); | 585 ASSERT_EQ(0, GetNotificationCount()); |
| 461 | 586 |
| 462 ASSERT_TRUE(RequestPermissionAndWait(browser())); | 587 ASSERT_TRUE(RequestPermissionAndWait(browser())); |
| 463 ASSERT_TRUE(PerformActionOnInfoBar(browser(), ALLOW, 0, 0)); | 588 ASSERT_TRUE(PerformAction(browser(), ALLOW, 0, 0)); |
| 464 | 589 |
| 465 CreateSimpleNotification(browser(), true); | 590 CreateSimpleNotification(browser(), true); |
| 466 EXPECT_EQ(1, GetNotificationCount()); | 591 EXPECT_EQ(1, GetNotificationCount()); |
| 467 } | 592 } |
| 468 | 593 |
| 469 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyOnPermissionInfobar) { | 594 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyOnPermission) { |
| 470 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 595 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 471 | 596 |
| 472 // Test that no notification is created | 597 // Test that no notification is created |
| 473 // when Deny is chosen from permission infobar. | 598 // when Deny is chosen from permission infobar. |
| 474 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 599 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 475 ASSERT_TRUE(RequestPermissionAndWait(browser())); | 600 ASSERT_TRUE(RequestPermissionAndWait(browser())); |
| 476 PerformActionOnInfoBar(browser(), DENY, 0, 0); | 601 PerformAction(browser(), DENY, 0, 0); |
| 477 CreateSimpleNotification(browser(), false); | 602 CreateSimpleNotification(browser(), false); |
| 478 ASSERT_EQ(0, GetNotificationCount()); | 603 ASSERT_EQ(0, GetNotificationCount()); |
| 479 ContentSettingsForOneType settings; | 604 ContentSettingsForOneType settings; |
| 480 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); | 605 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); |
| 481 EXPECT_TRUE(CheckOriginInSetting(settings, GetTestPageURL())); | 606 EXPECT_TRUE(CheckOriginInSetting(settings, GetTestPageURL())); |
| 482 } | 607 } |
| 483 | 608 |
| 484 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestClosePermissionInfobar) { | 609 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestClosePermission) { |
| 485 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 610 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 486 | 611 |
| 487 // Test that no notification is created when permission infobar is dismissed. | 612 // Test that no notification is created when permission infobar is dismissed. |
| 488 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 613 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 489 ASSERT_TRUE(RequestPermissionAndWait(browser())); | 614 ASSERT_TRUE(RequestPermissionAndWait(browser())); |
| 490 PerformActionOnInfoBar(browser(), DISMISS, 0, 0); | 615 PerformAction(browser(), DISMISS, 0, 0); |
| 491 CreateSimpleNotification(browser(), false); | 616 CreateSimpleNotification(browser(), false); |
| 492 ASSERT_EQ(0, GetNotificationCount()); | 617 ASSERT_EQ(0, GetNotificationCount()); |
| 493 ContentSettingsForOneType settings; | 618 ContentSettingsForOneType settings; |
| 494 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); | 619 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); |
| 495 EXPECT_EQ(0U, settings.size()); | 620 EXPECT_EQ(0U, settings.size()); |
| 496 } | 621 } |
| 497 | 622 |
| 498 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowNotificationsFromAllSites) { | 623 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowNotificationsFromAllSites) { |
| 499 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 624 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 500 | 625 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 // Crashes on Linux/Win. See http://crbug.com/160657. | 730 // Crashes on Linux/Win. See http://crbug.com/160657. |
| 606 IN_PROC_BROWSER_TEST_F( | 731 IN_PROC_BROWSER_TEST_F( |
| 607 NotificationsTest, | 732 NotificationsTest, |
| 608 DISABLED_TestOriginPrefsNotSavedInIncognito) { | 733 DISABLED_TestOriginPrefsNotSavedInIncognito) { |
| 609 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 734 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 610 | 735 |
| 611 // Verify that allow/deny origin preferences are not saved in incognito. | 736 // Verify that allow/deny origin preferences are not saved in incognito. |
| 612 Browser* incognito = CreateIncognitoBrowser(); | 737 Browser* incognito = CreateIncognitoBrowser(); |
| 613 ui_test_utils::NavigateToURL(incognito, GetTestPageURL()); | 738 ui_test_utils::NavigateToURL(incognito, GetTestPageURL()); |
| 614 ASSERT_TRUE(RequestPermissionAndWait(incognito)); | 739 ASSERT_TRUE(RequestPermissionAndWait(incognito)); |
| 615 PerformActionOnInfoBar(incognito, DENY, 0, 0); | 740 PerformAction(incognito, DENY, 0, 0); |
| 616 CloseBrowserWindow(incognito); | 741 CloseBrowserWindow(incognito); |
| 617 | 742 |
| 618 incognito = CreateIncognitoBrowser(); | 743 incognito = CreateIncognitoBrowser(); |
| 619 ui_test_utils::NavigateToURL(incognito, GetTestPageURL()); | 744 ui_test_utils::NavigateToURL(incognito, GetTestPageURL()); |
| 620 ASSERT_TRUE(RequestPermissionAndWait(incognito)); | 745 ASSERT_TRUE(RequestPermissionAndWait(incognito)); |
| 621 PerformActionOnInfoBar(incognito, ALLOW, 0, 0); | 746 PerformAction(incognito, ALLOW, 0, 0); |
| 622 CreateSimpleNotification(incognito, true); | 747 CreateSimpleNotification(incognito, true); |
| 623 ASSERT_EQ(1, GetNotificationCount()); | 748 ASSERT_EQ(1, GetNotificationCount()); |
| 624 CloseBrowserWindow(incognito); | 749 CloseBrowserWindow(incognito); |
| 625 | 750 |
| 626 incognito = CreateIncognitoBrowser(); | 751 incognito = CreateIncognitoBrowser(); |
| 627 ui_test_utils::NavigateToURL(incognito, GetTestPageURL()); | 752 ui_test_utils::NavigateToURL(incognito, GetTestPageURL()); |
| 628 ASSERT_TRUE(RequestPermissionAndWait(incognito)); | 753 ASSERT_TRUE(RequestPermissionAndWait(incognito)); |
| 629 | 754 |
| 630 ContentSettingsForOneType settings; | 755 ContentSettingsForOneType settings; |
| 631 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); | 756 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 } | 792 } |
| 668 | 793 |
| 669 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) { | 794 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) { |
| 670 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 795 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 671 | 796 |
| 672 // Test notifications in incognito window. | 797 // Test notifications in incognito window. |
| 673 Browser* browser = CreateIncognitoBrowser(); | 798 Browser* browser = CreateIncognitoBrowser(); |
| 674 ui_test_utils::NavigateToURL(browser, GetTestPageURL()); | 799 ui_test_utils::NavigateToURL(browser, GetTestPageURL()); |
| 675 browser->tab_strip_model()->ActivateTabAt(0, true); | 800 browser->tab_strip_model()->ActivateTabAt(0, true); |
| 676 ASSERT_TRUE(RequestPermissionAndWait(browser)); | 801 ASSERT_TRUE(RequestPermissionAndWait(browser)); |
| 677 PerformActionOnInfoBar(browser, ALLOW, 0, 0); | 802 PerformAction(browser, ALLOW, 0, 0); |
| 678 CreateSimpleNotification(browser, true); | 803 CreateSimpleNotification(browser, true); |
| 679 ASSERT_EQ(1, GetNotificationCount()); | 804 ASSERT_EQ(1, GetNotificationCount()); |
| 680 } | 805 } |
| 681 | 806 |
| 682 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseTabWithPermissionInfobar) { | 807 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseTabWithPermissionInfobar) { |
| 683 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 808 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 684 | 809 |
| 685 // Test that user can close tab when infobar present. | 810 // Test that user can close tab when infobar present. |
| 686 ui_test_utils::NavigateToURLWithDisposition( | 811 ui_test_utils::NavigateToURLWithDisposition( |
| 687 browser(), | 812 browser(), |
| 688 GURL("about:blank"), | 813 GURL("about:blank"), |
| 689 NEW_BACKGROUND_TAB, | 814 NEW_BACKGROUND_TAB, |
| 690 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 815 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 691 browser()->tab_strip_model()->ActivateTabAt(0, true); | 816 browser()->tab_strip_model()->ActivateTabAt(0, true); |
| 692 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 817 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 693 ASSERT_TRUE(RequestPermissionAndWait(browser())); | 818 ASSERT_TRUE(RequestPermissionAndWait(browser())); |
| 694 content::WebContentsDestroyedWatcher destroyed_watcher( | 819 content::WebContentsDestroyedWatcher destroyed_watcher( |
| 695 browser()->tab_strip_model()->GetWebContentsAt(0)); | 820 browser()->tab_strip_model()->GetWebContentsAt(0)); |
| 696 browser()->tab_strip_model()->CloseWebContentsAt(0, | 821 browser()->tab_strip_model()->CloseWebContentsAt(0, |
| 697 TabStripModel::CLOSE_NONE); | 822 TabStripModel::CLOSE_NONE); |
| 698 destroyed_watcher.Wait(); | 823 destroyed_watcher.Wait(); |
| 699 } | 824 } |
| 700 | 825 |
| 701 IN_PROC_BROWSER_TEST_F( | 826 IN_PROC_BROWSER_TEST_F( |
| 702 NotificationsTest, | 827 NotificationsTest, |
| 703 TestNavigateAwayWithPermissionInfobar) { | 828 TestNavigateAwayWithPermission) { |
| 704 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 829 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 705 | 830 |
| 706 // Test navigating away when an infobar is present, | 831 // Test navigating away when an infobar is present, |
| 707 // then trying to create a notification from the same page. | 832 // then trying to create a notification from the same page. |
| 708 ui_test_utils::NavigateToURLWithDisposition( | 833 ui_test_utils::NavigateToURLWithDisposition( |
| 709 browser(), | 834 browser(), |
| 710 GURL("about:blank"), | 835 GURL("about:blank"), |
| 711 NEW_BACKGROUND_TAB, | 836 NEW_BACKGROUND_TAB, |
| 712 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 837 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 713 browser()->tab_strip_model()->ActivateTabAt(0, true); | 838 browser()->tab_strip_model()->ActivateTabAt(0, true); |
| 714 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 839 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 715 ASSERT_TRUE(RequestPermissionAndWait(browser())); | 840 ASSERT_TRUE(RequestPermissionAndWait(browser())); |
| 716 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); | 841 ui_test_utils::NavigateToURL(browser(), GetTestPageURL()); |
| 717 ASSERT_TRUE(RequestPermissionAndWait(browser())); | 842 ASSERT_TRUE(RequestPermissionAndWait(browser())); |
| 718 PerformActionOnInfoBar(browser(), ALLOW, 0, 0); | 843 PerformAction(browser(), ALLOW, 0, 0); |
| 719 CreateSimpleNotification(browser(), true); | 844 CreateSimpleNotification(browser(), true); |
| 720 ASSERT_EQ(1, GetNotificationCount()); | 845 ASSERT_EQ(1, GetNotificationCount()); |
| 721 } | 846 } |
| 722 | 847 |
| 723 // See crbug.com/248470 | 848 // See crbug.com/248470 |
| 724 #if defined(OS_LINUX) | 849 #if defined(OS_LINUX) |
| 725 #define MAYBE_TestCrashRendererNotificationRemain \ | 850 #define MAYBE_TestCrashRendererNotificationRemain \ |
| 726 DISABLED_TestCrashRendererNotificationRemain | 851 DISABLED_TestCrashRendererNotificationRemain |
| 727 #else | 852 #else |
| 728 #define MAYBE_TestCrashRendererNotificationRemain \ | 853 #define MAYBE_TestCrashRendererNotificationRemain \ |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 (*notifications.rbegin())->id()); | 957 (*notifications.rbegin())->id()); |
| 833 | 958 |
| 834 ASSERT_EQ(0, GetNotificationPopupCount()); | 959 ASSERT_EQ(0, GetNotificationPopupCount()); |
| 835 | 960 |
| 836 result = CreateNotification( | 961 result = CreateNotification( |
| 837 browser(), true, "abc.png", "Title2", "Body2", "chat"); | 962 browser(), true, "abc.png", "Title2", "Body2", "chat"); |
| 838 EXPECT_NE("-1", result); | 963 EXPECT_NE("-1", result); |
| 839 | 964 |
| 840 ASSERT_EQ(1, GetNotificationPopupCount()); | 965 ASSERT_EQ(1, GetNotificationPopupCount()); |
| 841 } | 966 } |
| OLD | NEW |