diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-11 15:42:14 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-11 15:42:14 +0000 |
commit | fc61e22e068da641dc88c528ba4f37c9f55001d0 (patch) | |
tree | a34765817c418e79bb7cadbe6a29566bbf21cee1 /chrome/browser/content_setting_bubble_model_unittest.cc | |
parent | 1f34e1b8d03b1f916fd14ea433a135bd659cd9d2 (diff) | |
download | chromium_src-fc61e22e068da641dc88c528ba4f37c9f55001d0.zip chromium_src-fc61e22e068da641dc88c528ba4f37c9f55001d0.tar.gz chromium_src-fc61e22e068da641dc88c528ba4f37c9f55001d0.tar.bz2 |
Change plugin content settings to three states: Allow, click-to-play, and block.
The click-to-play default setting says "Let me choose which plug-ins to run".
XIB changes: Change the middle radio button label in plug-in default settings from IDS_PLUGINS_LOAD_SANDBOXED_RADIO to IDS_PLUGINS_ASK_RADIO.
BUG=35316,56514,56270
TEST=ContentSettingsBubbleModelTest.*, mainly
Review URL: http://codereview.chromium.org/3608007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/content_setting_bubble_model_unittest.cc')
-rw-r--r-- | chrome/browser/content_setting_bubble_model_unittest.cc | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/chrome/browser/content_setting_bubble_model_unittest.cc b/chrome/browser/content_setting_bubble_model_unittest.cc index c4ff8fb..911e57f 100644 --- a/chrome/browser/content_setting_bubble_model_unittest.cc +++ b/chrome/browser/content_setting_bubble_model_unittest.cc @@ -4,11 +4,15 @@ #include "chrome/browser/content_setting_bubble_model.h" +#include "base/auto_reset.h" +#include "base/command_line.h" #include "chrome/browser/chrome_thread.h" +#include "chrome/browser/host_content_settings_map.h" #include "chrome/browser/profile.h" #include "chrome/browser/geolocation/geolocation_content_settings_map.h" #include "chrome/browser/renderer_host/test/test_render_view_host.h" #include "chrome/browser/tab_contents/test_tab_contents.h" +#include "chrome/common/chrome_switches.h" #include "chrome/test/testing_profile.h" #include "testing/gtest/include/gtest/gtest.h" @@ -101,6 +105,62 @@ TEST_F(ContentSettingBubbleModelTest, Plugins) { EXPECT_NE(std::string(), bubble_content.load_plugins_link_title); } +TEST_F(ContentSettingBubbleModelTest, MultiplePlugins) { + CommandLine* cmd = CommandLine::ForCurrentProcess(); + AutoReset<CommandLine> auto_reset(cmd, *cmd); + cmd->AppendSwitch(switches::kEnableResourceContentSettings); + + HostContentSettingsMap* map = profile_->GetHostContentSettingsMap(); + std::string fooPlugin = "foo"; + std::string barPlugin = "bar"; + GURL url = contents()->GetURL(); + map->AddExceptionForURL(url, + CONTENT_SETTINGS_TYPE_PLUGINS, + fooPlugin, + CONTENT_SETTING_ALLOW); + map->AddExceptionForURL(url, + CONTENT_SETTINGS_TYPE_PLUGINS, + barPlugin, + CONTENT_SETTING_ASK); + + TabSpecificContentSettings* content_settings = + contents()->GetTabSpecificContentSettings(); + content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS, + fooPlugin); + content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS, + barPlugin); + + scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( + ContentSettingBubbleModel::CreateContentSettingBubbleModel( + contents(), profile_.get(), CONTENT_SETTINGS_TYPE_PLUGINS)); + const ContentSettingBubbleModel::BubbleContent& bubble_content = + content_setting_bubble_model->bubble_content(); + EXPECT_EQ(2U, bubble_content.radio_group.radio_items.size()); + EXPECT_EQ(1, bubble_content.radio_group.default_item); + + content_setting_bubble_model->OnRadioClicked(0); + // Both plug-ins should be allowed now. + EXPECT_EQ(CONTENT_SETTING_ALLOW, + map->GetContentSetting(url, + CONTENT_SETTINGS_TYPE_PLUGINS, + fooPlugin)); + EXPECT_EQ(CONTENT_SETTING_ALLOW, + map->GetContentSetting(url, + CONTENT_SETTINGS_TYPE_PLUGINS, + barPlugin)); + + content_setting_bubble_model->OnRadioClicked(1); + // Both plug-ins should be click-to-play now. + EXPECT_EQ(CONTENT_SETTING_ASK, + map->GetContentSetting(url, + CONTENT_SETTINGS_TYPE_PLUGINS, + fooPlugin)); + EXPECT_EQ(CONTENT_SETTING_ASK, + map->GetContentSetting(url, + CONTENT_SETTINGS_TYPE_PLUGINS, + barPlugin)); +} + TEST_F(ContentSettingBubbleModelTest, Geolocation) { const GURL page_url("http://toplevel.example/"); const GURL frame1_url("http://host1.example/"); |