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

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

Issue 61323002: Fix broken threading model in CheckDesktopNotificationPermission (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Even more merge conflicts.. Created 7 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/desktop_notification_service.h" 5 #include "chrome/browser/notifications/desktop_notification_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/synchronization/waitable_event.h" 10 #include "base/synchronization/waitable_event.h"
11 #include "chrome/browser/notifications/desktop_notification_service_factory.h" 11 #include "chrome/browser/notifications/desktop_notification_service_factory.h"
12 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 12 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
13 #include "chrome/test/base/testing_profile.h" 13 #include "chrome/test/base/testing_profile.h"
14 #include "content/public/test/test_browser_thread.h" 14 #include "content/public/test/test_browser_thread.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 #include "third_party/WebKit/public/web/WebNotificationPresenter.h" 16 #include "third_party/WebKit/public/web/WebNotificationPresenter.h"
17 17
18 class DesktopNotificationServiceTest : public ChromeRenderViewHostTestHarness { 18 class DesktopNotificationServiceTest : public ChromeRenderViewHostTestHarness {
19 protected: 19 protected:
20 virtual void SetUp() { 20 virtual void SetUp() {
21 ChromeRenderViewHostTestHarness::SetUp(); 21 ChromeRenderViewHostTestHarness::SetUp();
22 22
23 // Creates the destop notification service. 23 // Creates the destop notification service.
24 service_ = DesktopNotificationServiceFactory::GetForProfile(profile()); 24 service_ = DesktopNotificationServiceFactory::GetForProfile(profile());
25 } 25 }
26 26
27 DesktopNotificationService* service_; 27 DesktopNotificationService* service_;
28 }; 28 };
29 29
30 TEST_F(DesktopNotificationServiceTest, SettingsForSchemes) {
31 GURL url("file:///html/test.html");
32
33 EXPECT_EQ(CONTENT_SETTING_ASK,
34 service_->GetDefaultContentSetting(NULL));
35 EXPECT_EQ(blink::WebNotificationPresenter::PermissionNotAllowed,
36 service_->HasPermission(url));
37
38 service_->GrantPermission(url);
39 EXPECT_EQ(blink::WebNotificationPresenter::PermissionAllowed,
40 service_->HasPermission(url));
41
42 service_->DenyPermission(url);
43 EXPECT_EQ(blink::WebNotificationPresenter::PermissionDenied,
44 service_->HasPermission(url));
45
46 GURL https_url("https://testurl");
47 GURL http_url("http://testurl");
48 EXPECT_EQ(CONTENT_SETTING_ASK,
49 service_->GetDefaultContentSetting(NULL));
50 EXPECT_EQ(blink::WebNotificationPresenter::PermissionNotAllowed,
51 service_->HasPermission(http_url));
52 EXPECT_EQ(blink::WebNotificationPresenter::PermissionNotAllowed,
53 service_->HasPermission(https_url));
54
55 service_->GrantPermission(https_url);
56 EXPECT_EQ(blink::WebNotificationPresenter::PermissionNotAllowed,
57 service_->HasPermission(http_url));
58 EXPECT_EQ(blink::WebNotificationPresenter::PermissionAllowed,
59 service_->HasPermission(https_url));
60
61 service_->DenyPermission(http_url);
62 EXPECT_EQ(blink::WebNotificationPresenter::PermissionDenied,
63 service_->HasPermission(http_url));
64 EXPECT_EQ(blink::WebNotificationPresenter::PermissionAllowed,
65 service_->HasPermission(https_url));
66 }
67 30
68 TEST_F(DesktopNotificationServiceTest, GetNotificationsSettings) { 31 TEST_F(DesktopNotificationServiceTest, GetNotificationsSettings) {
69 service_->GrantPermission(GURL("http://allowed2.com")); 32 service_->GrantPermission(GURL("http://allowed2.com"));
70 service_->GrantPermission(GURL("http://allowed.com")); 33 service_->GrantPermission(GURL("http://allowed.com"));
71 service_->DenyPermission(GURL("http://denied2.com")); 34 service_->DenyPermission(GURL("http://denied2.com"));
72 service_->DenyPermission(GURL("http://denied.com")); 35 service_->DenyPermission(GURL("http://denied.com"));
73 36
74 ContentSettingsForOneType settings; 37 ContentSettingsForOneType settings;
75 service_->GetNotificationsSettings(&settings); 38 service_->GetNotificationsSettings(&settings);
76 // |settings| contains the default setting and 4 exceptions. 39 // |settings| contains the default setting and 4 exceptions.
(...skipping 17 matching lines...) Expand all
94 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard( 57 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(
95 GURL("http://denied2.com")), 58 GURL("http://denied2.com")),
96 settings[3].primary_pattern); 59 settings[3].primary_pattern);
97 EXPECT_EQ(CONTENT_SETTING_BLOCK, 60 EXPECT_EQ(CONTENT_SETTING_BLOCK,
98 settings[3].setting); 61 settings[3].setting);
99 EXPECT_EQ(ContentSettingsPattern::Wildcard(), 62 EXPECT_EQ(ContentSettingsPattern::Wildcard(),
100 settings[4].primary_pattern); 63 settings[4].primary_pattern);
101 EXPECT_EQ(CONTENT_SETTING_ASK, 64 EXPECT_EQ(CONTENT_SETTING_ASK,
102 settings[4].setting); 65 settings[4].setting);
103 } 66 }
OLDNEW
« no previous file with comments | « chrome/browser/notifications/desktop_notification_service.cc ('k') | chrome/browser/profiles/profile_io_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698