15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/content_settings/content_settings_mock_provider.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/content_settings/content_settings_utils.h" 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "url/gurl.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content_settings { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(ContentSettingsProviderTest, Mock) { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentSettingsPattern pattern = 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentSettingsPattern::FromString("[*.]youtube.com"); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL url("http://www.youtube.com"); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockProvider mock_provider(false); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mock_provider.SetWebsiteSetting( 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "java_plugin", 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::FundamentalValue(CONTENT_SETTING_BLOCK)); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(CONTENT_SETTING_BLOCK, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetContentSetting(&mock_provider, url, url, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false)); 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) scoped_ptr<base::Value> value_ptr( 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetContentSettingValue(&mock_provider, url, url, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "java_plugin", false)); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int int_value = -1; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value_ptr->GetAsInteger(&int_value); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(CONTENT_SETTING_BLOCK, IntToContentSetting(int_value)); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(CONTENT_SETTING_DEFAULT, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetContentSetting(&mock_provider, url, url, 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, "flash_plugin", 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false)); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(NULL, 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetContentSettingValue(&mock_provider, url, url, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "flash_plugin", false)); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(CONTENT_SETTING_DEFAULT, 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) GetContentSetting(&mock_provider, 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) url, 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) url, 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CONTENT_SETTINGS_TYPE_GEOLOCATION, 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string(), 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) false)); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(NULL, 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) GetContentSettingValue(&mock_provider, 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) url, 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) url, 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CONTENT_SETTINGS_TYPE_GEOLOCATION, 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string(), 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false)); 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool owned = mock_provider.SetWebsiteSetting( 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "java_plugin", 675f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::FundamentalValue(CONTENT_SETTING_ALLOW)); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(owned); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(CONTENT_SETTING_ALLOW, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetContentSetting(&mock_provider, url, url, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false)); 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mock_provider.set_read_only(true); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<base::Value> value( 765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::FundamentalValue(CONTENT_SETTING_BLOCK)); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) owned = mock_provider.SetWebsiteSetting( 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "java_plugin", 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value.get()); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(owned); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(CONTENT_SETTING_ALLOW, 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetContentSetting(&mock_provider, url, url, 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false)); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(mock_provider.read_only()); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mock_provider.set_read_only(false); 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) owned = mock_provider.SetWebsiteSetting( 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pattern, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "java_plugin", 975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::FundamentalValue(CONTENT_SETTING_BLOCK)); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(owned); 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(CONTENT_SETTING_BLOCK, 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetContentSetting(&mock_provider, url, url, 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONTENT_SETTINGS_TYPE_PLUGINS, "java_plugin", 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false)); 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content_settings 106