Chromium Code Reviews| 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..91cc7ccbc007163cab54ddcb450acc039ebe31fa |
| --- /dev/null |
| +++ b/chrome/browser/notifications/desktop_notification_service_unittest.cc |
| @@ -0,0 +1,96 @@ |
| +// 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; |
| + |
| +class DesktopNotificationServiceSettingsTest |
| + : public ChromeRenderViewHostTestHarness { |
| + protected: |
| + virtual void SetUp() { ChromeRenderViewHostTestHarness::SetUp(); } |
|
Peter Beverloo
2014/10/18 09:31:02
SetUp() is defined in RenderViewHostTestHarness an
dewittj
2014/10/29 16:21:26
Done.
|
| +}; |
| + |
| +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. |
| +} |