OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
10 #include "chrome/browser/extensions/test_extension_system.h" | 10 #include "chrome/browser/extensions/test_extension_system.h" |
11 #include "chrome/browser/notifications/desktop_notification_profile_util.h" | |
11 #include "chrome/browser/notifications/message_center_settings_controller.h" | 12 #include "chrome/browser/notifications/message_center_settings_controller.h" |
12 #include "chrome/browser/profiles/profile_info_cache.h" | 13 #include "chrome/browser/profiles/profile_info_cache.h" |
13 #include "chrome/browser/profiles/profile_manager.h" | 14 #include "chrome/browser/profiles/profile_manager.h" |
14 #include "chrome/test/base/testing_browser_process.h" | 15 #include "chrome/test/base/testing_browser_process.h" |
15 #include "chrome/test/base/testing_profile_manager.h" | 16 #include "chrome/test/base/testing_profile_manager.h" |
17 #include "components/content_settings/core/browser/host_content_settings_map.h" | |
16 #include "content/public/test/test_browser_thread_bundle.h" | 18 #include "content/public/test/test_browser_thread_bundle.h" |
17 #include "extensions/common/extension.h" | 19 #include "extensions/common/extension.h" |
18 #include "extensions/common/extension_builder.h" | 20 #include "extensions/common/extension_builder.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
20 #include "ui/message_center/notifier_settings.h" | 22 #include "ui/message_center/notifier_settings.h" |
21 | 23 |
22 #if defined(OS_CHROMEOS) | 24 #if defined(OS_CHROMEOS) |
23 #include "ash/system/system_notifier.h" | 25 #include "ash/system/system_notifier.h" |
24 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" | 26 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" |
25 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 27 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
26 #endif | 28 #endif |
27 | 29 |
28 class MessageCenterSettingsControllerBaseTest : public testing::Test { | 30 class MessageCenterSettingsControllerBaseTest : public testing::Test { |
29 protected: | 31 protected: |
30 MessageCenterSettingsControllerBaseTest() | 32 MessageCenterSettingsControllerBaseTest() |
31 : testing_profile_manager_(TestingBrowserProcess::GetGlobal()){}; | 33 : testing_profile_manager_(TestingBrowserProcess::GetGlobal()) {} |
32 | 34 |
33 ~MessageCenterSettingsControllerBaseTest() override{}; | 35 ~MessageCenterSettingsControllerBaseTest() override{}; |
34 | 36 |
35 base::FilePath GetProfilePath(const std::string& base_name) { | 37 base::FilePath GetProfilePath(const std::string& base_name) { |
36 return testing_profile_manager_.profile_manager()->user_data_dir() | 38 return testing_profile_manager_.profile_manager()->user_data_dir() |
37 .AppendASCII(base_name); | 39 .AppendASCII(base_name); |
38 } | 40 } |
39 | 41 |
40 void SetUp() override { ASSERT_TRUE(testing_profile_manager_.SetUp()); } | 42 void SetUp() override { ASSERT_TRUE(testing_profile_manager_.SetUp()); } |
41 | 43 |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
250 EXPECT_EQ(3u, notifiers.size()); | 252 EXPECT_EQ(3u, notifiers.size()); |
251 EXPECT_EQ(ash::system_notifier::kNotifierScreenshot, | 253 EXPECT_EQ(ash::system_notifier::kNotifierScreenshot, |
252 notifiers[2]->notifier_id.id); | 254 notifiers[2]->notifier_id.id); |
253 #endif | 255 #endif |
254 | 256 |
255 EXPECT_EQ(kBarId, notifiers[0]->notifier_id.id); | 257 EXPECT_EQ(kBarId, notifiers[0]->notifier_id.id); |
256 EXPECT_EQ(kFooId, notifiers[1]->notifier_id.id); | 258 EXPECT_EQ(kFooId, notifiers[1]->notifier_id.id); |
257 | 259 |
258 STLDeleteElements(¬ifiers); | 260 STLDeleteElements(¬ifiers); |
259 } | 261 } |
262 | |
263 TEST_F(MessageCenterSettingsControllerTest, SetWebPageNotifierEnabled) { | |
264 Profile* profile = CreateProfile("MyProfile"); | |
265 CreateController(); | |
266 | |
267 GURL origin("https://example.com/"); | |
268 | |
269 message_center::NotifierId notifier_id(origin); | |
270 message_center::Notifier enabled_notifier( | |
271 notifier_id, base::string16(), true); | |
272 message_center::Notifier disabled_notifier( | |
273 notifier_id, base::string16(), false); | |
274 | |
275 ContentSetting default_setting = | |
276 profile->GetHostContentSettingsMap()->GetDefaultContentSetting( | |
277 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL); | |
278 ASSERT_EQ(CONTENT_SETTING_ASK, default_setting); | |
279 | |
280 // (1) Enable the permission when the default is to ask (expected to set). | |
281 controller()->SetNotifierEnabled(disabled_notifier, true); | |
282 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
283 DesktopNotificationProfileUtil::GetContentSetting(profile, origin)); | |
284 | |
285 // (2) Disable the permission when the default is to ask (expected to clear). | |
dewittj
2015/04/27 16:48:51
Is this true? I would expect an explicit disable b
Peter Beverloo
2015/04/28 12:14:45
I noticed this (default allowed -> disable does BL
| |
286 controller()->SetNotifierEnabled(enabled_notifier, false); | |
287 EXPECT_EQ(CONTENT_SETTING_ASK, | |
288 DesktopNotificationProfileUtil::GetContentSetting(profile, origin)); | |
289 | |
290 // Change the default content setting vaule for notifications to ALLOW. | |
291 profile->GetHostContentSettingsMap()->SetDefaultContentSetting( | |
292 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); | |
293 | |
294 // (3) Disable the permission when the default is allowed (expected to set). | |
295 controller()->SetNotifierEnabled(enabled_notifier, false); | |
296 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
297 DesktopNotificationProfileUtil::GetContentSetting(profile, origin)); | |
298 | |
299 // (4) Enable the permission when the default is allowed (expected to clear). | |
300 controller()->SetNotifierEnabled(disabled_notifier, true); | |
301 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
302 DesktopNotificationProfileUtil::GetContentSetting(profile, origin)); | |
303 } | |
dewittj
2015/04/27 16:48:51
what about default is block?
Peter Beverloo
2015/04/28 12:14:45
Done.
| |
OLD | NEW |