| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/notifications/notification_permission_context.h" | 5 #include "chrome/browser/notifications/notification_permission_context.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "base/test/scoped_mock_time_message_loop_task_runner.h" | 9 #include "base/test/scoped_mock_time_message_loop_task_runner.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "content/public/browser/render_process_host.h" | 21 #include "content/public/browser/render_process_host.h" |
| 22 #include "content/public/browser/web_contents.h" | 22 #include "content/public/browser/web_contents.h" |
| 23 #include "content/public/test/test_browser_thread_bundle.h" | 23 #include "content/public/test/test_browser_thread_bundle.h" |
| 24 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
| 25 #include "third_party/WebKit/public/platform/modules/permissions/permission_stat
us.mojom.h" | 25 #include "third_party/WebKit/public/platform/modules/permissions/permission_stat
us.mojom.h" |
| 26 #include "url/gurl.h" | 26 #include "url/gurl.h" |
| 27 | 27 |
| 28 namespace { | 28 namespace { |
| 29 | 29 |
| 30 void DoNothing(ContentSetting content_setting) {} | 30 void DoNothing(ContentSetting content_setting) {} |
| 31 void DoNothing2(blink::mojom::PermissionStatus content_setting) {} | |
| 32 | 31 |
| 33 class TestNotificationPermissionContext : public NotificationPermissionContext { | 32 class TestNotificationPermissionContext : public NotificationPermissionContext { |
| 34 public: | 33 public: |
| 35 explicit TestNotificationPermissionContext(Profile* profile) | 34 explicit TestNotificationPermissionContext(Profile* profile) |
| 36 : NotificationPermissionContext(profile, | 35 : NotificationPermissionContext(profile, |
| 37 CONTENT_SETTINGS_TYPE_NOTIFICATIONS), | 36 CONTENT_SETTINGS_TYPE_NOTIFICATIONS), |
| 38 permission_set_count_(0), | 37 permission_set_count_(0), |
| 39 last_permission_set_persisted_(false), | 38 last_permission_set_persisted_(false), |
| 40 last_permission_set_setting_(CONTENT_SETTING_DEFAULT) {} | 39 last_permission_set_setting_(CONTENT_SETTING_DEFAULT) {} |
| 41 | 40 |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 | 290 |
| 292 PermissionManager* permission_manager = | 291 PermissionManager* permission_manager = |
| 293 PermissionManagerFactory::GetForProfile( | 292 PermissionManagerFactory::GetForProfile( |
| 294 profile()->GetOffTheRecordProfile()); | 293 profile()->GetOffTheRecordProfile()); |
| 295 | 294 |
| 296 // Request and cancel the permission via PermissionManager. That way if | 295 // Request and cancel the permission via PermissionManager. That way if |
| 297 // https://crbug.com/586944 regresses, then as well as the EXPECT_EQs below | 296 // https://crbug.com/586944 regresses, then as well as the EXPECT_EQs below |
| 298 // failing, PermissionManager::OnPermissionsRequestResponseStatus will crash. | 297 // failing, PermissionManager::OnPermissionsRequestResponseStatus will crash. |
| 299 int request_id = permission_manager->RequestPermission( | 298 int request_id = permission_manager->RequestPermission( |
| 300 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, web_contents()->GetMainFrame(), | 299 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, web_contents()->GetMainFrame(), |
| 301 url.GetOrigin(), true /* user_gesture */, base::Bind(&DoNothing2)); | 300 url.GetOrigin(), true /* user_gesture */, base::Bind(&DoNothing)); |
| 302 | 301 |
| 303 permission_manager->CancelPermissionRequest(request_id); | 302 permission_manager->CancelPermissionRequest(request_id); |
| 304 | 303 |
| 305 task_runner->FastForwardBy(base::TimeDelta::FromDays(1)); | 304 task_runner->FastForwardBy(base::TimeDelta::FromDays(1)); |
| 306 | 305 |
| 307 EXPECT_EQ(0, permission_context.permission_set_count()); | 306 EXPECT_EQ(0, permission_context.permission_set_count()); |
| 308 EXPECT_EQ(CONTENT_SETTING_ASK, | 307 EXPECT_EQ(CONTENT_SETTING_ASK, |
| 309 permission_context.GetContentSettingFromMap(url, url)); | 308 permission_context.GetContentSettingFromMap(url, url)); |
| 310 } | 309 } |
| 311 | 310 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 // After another 2.5 seconds, the second permission request should also have | 360 // After another 2.5 seconds, the second permission request should also have |
| 362 // received a response. | 361 // received a response. |
| 363 task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(2500)); | 362 task_runner->FastForwardBy(base::TimeDelta::FromMilliseconds(2500)); |
| 364 EXPECT_EQ(2, permission_context.permission_set_count()); | 363 EXPECT_EQ(2, permission_context.permission_set_count()); |
| 365 EXPECT_TRUE(permission_context.last_permission_set_persisted()); | 364 EXPECT_TRUE(permission_context.last_permission_set_persisted()); |
| 366 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 365 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 367 permission_context.last_permission_set_setting()); | 366 permission_context.last_permission_set_setting()); |
| 368 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 367 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| 369 permission_context.GetContentSettingFromMap(url, url)); | 368 permission_context.GetContentSettingFromMap(url, url)); |
| 370 } | 369 } |
| OLD | NEW |