summaryrefslogtreecommitdiffstats
path: root/chrome/browser/content_setting_bubble_model_unittest.cc
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-11 15:42:14 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-11 15:42:14 +0000
commitfc61e22e068da641dc88c528ba4f37c9f55001d0 (patch)
treea34765817c418e79bb7cadbe6a29566bbf21cee1 /chrome/browser/content_setting_bubble_model_unittest.cc
parent1f34e1b8d03b1f916fd14ea433a135bd659cd9d2 (diff)
downloadchromium_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.cc60
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/");