Chromium Code Reviews| Index: chrome/browser/notifications/notification_permission_context_unittest.cc |
| diff --git a/chrome/browser/notifications/notification_permission_context_unittest.cc b/chrome/browser/notifications/notification_permission_context_unittest.cc |
| index ead50bf0ca0134143d47225b71603051d986333d..c00a9631bb645aa8ccb3b099134ae5f3cb2b36e3 100644 |
| --- a/chrome/browser/notifications/notification_permission_context_unittest.cc |
| +++ b/chrome/browser/notifications/notification_permission_context_unittest.cc |
| @@ -189,6 +189,38 @@ TEST_F(NotificationPermissionContextTest, TestDenyInIncognitoAfterDelay) { |
| base::MessageLoop::current()->SetTaskRunner(old_task_runner); |
| } |
| +// Tests that navigating cancels incognito permission requests without crashing. |
| +TEST_F(NotificationPermissionContextTest, TestCancelledIncognitoRequest) { |
| + TestNotificationPermissionContext permission_context( |
| + profile()->GetOffTheRecordProfile()); |
| + GURL url("https://www.example.com"); |
| + NavigateAndCommit(url); |
| + |
| + const PermissionRequestID id(web_contents()->GetRenderProcessHost()->GetID(), |
| + web_contents()->GetMainFrame()->GetRoutingID(), |
| + -1); |
| + |
| + scoped_refptr<base::SingleThreadTaskRunner> old_task_runner( |
|
Peter Beverloo
2016/02/16 15:28:28
The TestMockTimeTaskRunner is now being instantiat
johnme
2016/02/16 18:14:34
Done.
|
| + base::MessageLoop::current()->task_runner()); |
| + scoped_refptr<base::TestMockTimeTaskRunner> task_runner( |
| + new base::TestMockTimeTaskRunner(base::Time::Now(), |
| + base::TimeTicks::Now())); |
| + base::MessageLoop::current()->SetTaskRunner(task_runner); |
| + |
| + permission_context.RequestPermission( |
| + web_contents(), id, url, true /* user_gesture */, base::Bind(&DoNothing)); |
| + |
| + permission_context.CancelPermissionRequest(web_contents(), id); |
| + |
| + task_runner->FastForwardBy(base::TimeDelta::FromDays(1)); |
| + |
| + EXPECT_EQ(0, permission_context.permission_set_count()); |
| + EXPECT_EQ(CONTENT_SETTING_ASK, |
| + permission_context.GetContentSettingFromMap(url, url)); |
| + |
| + base::MessageLoop::current()->SetTaskRunner(old_task_runner); |
| +} |
| + |
| // Tests how multiple parallel permission requests get auto-denied in incognito. |
| TEST_F(NotificationPermissionContextTest, TestParallelDenyInIncognito) { |
| TestNotificationPermissionContext permission_context( |