Index: chrome/browser/notifications/desktop_notification_service_unittest.cc |
diff --git a/chrome/browser/notifications/desktop_notification_service_unittest.cc b/chrome/browser/notifications/desktop_notification_service_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7cc1889a72eb0e9a81ddd234663066215bf5edea |
--- /dev/null |
+++ b/chrome/browser/notifications/desktop_notification_service_unittest.cc |
@@ -0,0 +1,92 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/bind.h" |
+#include "base/strings/utf_string_conversions.h" |
+#include "chrome/browser/notifications/desktop_notification_profile_util.h" |
+#include "chrome/browser/notifications/desktop_notification_service.h" |
+#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
+#include "chrome/test/base/testing_profile.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+typedef testing::Test DesktopNotificationServiceTest; |
+ |
+typedef ChromeRenderViewHostTestHarness DesktopNotificationServiceSettingsTest; |
+ |
+TEST_F(DesktopNotificationServiceSettingsTest, GetNotificationsSettings) { |
+ DesktopNotificationProfileUtil::GrantPermission(profile(), |
+ GURL("http://allowed2.com")); |
+ DesktopNotificationProfileUtil::GrantPermission(profile(), |
+ GURL("http://allowed.com")); |
+ DesktopNotificationProfileUtil::DenyPermission(profile(), |
+ GURL("http://denied2.com")); |
+ DesktopNotificationProfileUtil::DenyPermission(profile(), |
+ GURL("http://denied.com")); |
+ |
+ ContentSettingsForOneType settings; |
+ DesktopNotificationProfileUtil::GetNotificationsSettings(profile(), |
+ &settings); |
+ // |settings| contains the default setting and 4 exceptions. |
+ ASSERT_EQ(5u, settings.size()); |
+ |
+ EXPECT_EQ( |
+ ContentSettingsPattern::FromURLNoWildcard(GURL("http://allowed.com")), |
+ settings[0].primary_pattern); |
+ EXPECT_EQ(CONTENT_SETTING_ALLOW, settings[0].setting); |
+ EXPECT_EQ( |
+ ContentSettingsPattern::FromURLNoWildcard(GURL("http://allowed2.com")), |
+ settings[1].primary_pattern); |
+ EXPECT_EQ(CONTENT_SETTING_ALLOW, settings[1].setting); |
+ EXPECT_EQ( |
+ ContentSettingsPattern::FromURLNoWildcard(GURL("http://denied.com")), |
+ settings[2].primary_pattern); |
+ EXPECT_EQ(CONTENT_SETTING_BLOCK, settings[2].setting); |
+ EXPECT_EQ( |
+ ContentSettingsPattern::FromURLNoWildcard(GURL("http://denied2.com")), |
+ settings[3].primary_pattern); |
+ EXPECT_EQ(CONTENT_SETTING_BLOCK, settings[3].setting); |
+ EXPECT_EQ(ContentSettingsPattern::Wildcard(), settings[4].primary_pattern); |
+ EXPECT_EQ(CONTENT_SETTING_ASK, settings[4].setting); |
+} |
+ |
+TEST_F(DesktopNotificationServiceTest, TestOriginDisplayName) { |
+ std::string language("en-us"); |
+ |
+ GURL https_origin("https://mail.google.com/"); |
+ base::string16 expected_display_name = base::ASCIIToUTF16("mail.google.com"); |
+ EXPECT_EQ( |
+ expected_display_name, |
+ DesktopNotificationService::OriginDisplayName(https_origin, language)); |
+ |
+ GURL https_origin_standard_port("https://mail.google.com:443/"); |
+ expected_display_name = base::ASCIIToUTF16("mail.google.com"); |
+ EXPECT_EQ(expected_display_name, |
+ DesktopNotificationService::OriginDisplayName( |
+ https_origin_standard_port, language)); |
+ |
+ GURL https_origin_nonstandard_port("https://mail.google.com:444/"); |
+ expected_display_name = base::ASCIIToUTF16("mail.google.com:444"); |
+ EXPECT_EQ(expected_display_name, |
+ DesktopNotificationService::OriginDisplayName( |
+ https_origin_nonstandard_port, language)); |
+ |
+ GURL http_origin("http://mail.google.com/"); |
+ expected_display_name = base::ASCIIToUTF16("mail.google.com"); |
+ EXPECT_EQ( |
+ expected_display_name, |
+ DesktopNotificationService::OriginDisplayName(http_origin, language)); |
+ |
+ GURL http_origin_standard_port("http://mail.google.com:80/"); |
+ expected_display_name = base::ASCIIToUTF16("mail.google.com"); |
+ EXPECT_EQ(expected_display_name, |
+ DesktopNotificationService::OriginDisplayName( |
+ http_origin_standard_port, language)); |
+ |
+ GURL http_origin_nonstandard_port("http://mail.google.com:81/"); |
+ expected_display_name = base::ASCIIToUTF16("mail.google.com:81"); |
+ EXPECT_EQ(expected_display_name, |
+ DesktopNotificationService::OriginDisplayName( |
+ http_origin_nonstandard_port, language)); |
+ // TODO(dewittj): Add file origin once it's supported. |
+} |