| // Copyright (c) 2011 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/memory/scoped_ptr.h" |
| #include "components/content_settings/core/browser/content_settings_mock_provider.h" |
| #include "components/content_settings/core/browser/content_settings_utils.h" |
| #include "components/content_settings/core/test/content_settings_test_utils.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "url/gurl.h" |
| |
| namespace content_settings { |
| |
| TEST(ContentSettingsProviderTest, Mock) { |
| ContentSettingsPattern pattern = |
| ContentSettingsPattern::FromString("[*.]youtube.com"); |
| GURL url("http://www.youtube.com"); |
| |
| MockProvider mock_provider(false); |
| mock_provider.SetWebsiteSetting( |
| pattern, |
| pattern, |
| CONTENT_SETTINGS_TYPE_PLUGINS, |
| "java_plugin", |
| new base::FundamentalValue(CONTENT_SETTING_BLOCK)); |
| |
| EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| GetContentSetting(&mock_provider, url, url, |
| CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", |
| false)); |
| scoped_ptr<base::Value> value_ptr( |
| GetContentSettingValue(&mock_provider, url, url, |
| CONTENT_SETTINGS_TYPE_PLUGINS, |
| "java_plugin", false)); |
| int int_value = -1; |
| value_ptr->GetAsInteger(&int_value); |
| EXPECT_EQ(CONTENT_SETTING_BLOCK, IntToContentSetting(int_value)); |
| |
| EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| GetContentSetting(&mock_provider, url, url, |
| CONTENT_SETTINGS_TYPE_PLUGINS, "flash_plugin", |
| false)); |
| EXPECT_EQ(NULL, |
| GetContentSettingValue(&mock_provider, url, url, |
| CONTENT_SETTINGS_TYPE_PLUGINS, |
| "flash_plugin", false)); |
| EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| GetContentSetting(&mock_provider, |
| url, |
| url, |
| CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| std::string(), |
| false)); |
| EXPECT_EQ(NULL, |
| GetContentSettingValue(&mock_provider, |
| url, |
| url, |
| CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| std::string(), |
| false)); |
| |
| bool owned = mock_provider.SetWebsiteSetting( |
| pattern, |
| pattern, |
| CONTENT_SETTINGS_TYPE_PLUGINS, |
| "java_plugin", |
| new base::FundamentalValue(CONTENT_SETTING_ALLOW)); |
| EXPECT_TRUE(owned); |
| EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| GetContentSetting(&mock_provider, url, url, |
| CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", |
| false)); |
| |
| mock_provider.set_read_only(true); |
| scoped_ptr<base::Value> value( |
| new base::FundamentalValue(CONTENT_SETTING_BLOCK)); |
| owned = mock_provider.SetWebsiteSetting( |
| pattern, |
| pattern, |
| CONTENT_SETTINGS_TYPE_PLUGINS, |
| "java_plugin", |
| value.get()); |
| EXPECT_FALSE(owned); |
| EXPECT_EQ(CONTENT_SETTING_ALLOW, |
| GetContentSetting(&mock_provider, url, url, |
| CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", |
| false)); |
| |
| EXPECT_TRUE(mock_provider.read_only()); |
| |
| mock_provider.set_read_only(false); |
| owned = mock_provider.SetWebsiteSetting( |
| pattern, |
| pattern, |
| CONTENT_SETTINGS_TYPE_PLUGINS, |
| "java_plugin", |
| new base::FundamentalValue(CONTENT_SETTING_BLOCK)); |
| EXPECT_TRUE(owned); |
| EXPECT_EQ(CONTENT_SETTING_BLOCK, |
| GetContentSetting(&mock_provider, url, url, |
| CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", |
| false)); |
| } |
| |
| } // namespace content_settings |