1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/content_setting_bubble_model.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/auto_reset.h"
8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/command_line.h"
921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/content_settings/host_content_settings_map.h"
1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/profiles/profile.h"
113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/browser/geolocation/geolocation_content_settings_map.h"
12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/common/chrome_switches.h"
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/test/testing_profile.h"
14dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/browser_thread.h"
15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/renderer_host/test_render_view_host.h"
16dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/tab_contents/test_tab_contents.h"
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gtest/include/gtest/gtest.h"
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ContentSettingBubbleModelTest : public RenderViewHostTestHarness {
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected:
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ContentSettingBubbleModelTest()
22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      : ui_thread_(BrowserThread::UI, MessageLoop::current()) {
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  void CheckGeolocationBubble(size_t expected_domains,
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                              bool expect_clear_link,
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                              bool expect_reload_hint) {
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model(
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch        ContentSettingBubbleModel::CreateContentSettingBubbleModel(
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch           contents(), profile_.get(), CONTENT_SETTINGS_TYPE_GEOLOCATION));
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    const ContentSettingBubbleModel::BubbleContent& bubble_content =
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch        content_setting_bubble_model->bubble_content();
3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    EXPECT_TRUE(bubble_content.title.empty());
3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    EXPECT_TRUE(bubble_content.radio_group.radio_items.empty());
3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    EXPECT_TRUE(bubble_content.popup_items.empty());
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    EXPECT_EQ(expected_domains, bubble_content.domain_lists.size());
3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    EXPECT_NE(expect_clear_link || expect_reload_hint,
3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen              bubble_content.custom_link.empty());
3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    EXPECT_EQ(expect_clear_link, bubble_content.custom_link_enabled);
4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    EXPECT_FALSE(bubble_content.manage_link.empty());
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  BrowserThread ui_thread_;
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(ContentSettingBubbleModelTest, ImageRadios) {
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  TabSpecificContentSettings* content_settings =
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      contents()->GetTabSpecificContentSettings();
493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES,
503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick                                     std::string());
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model(
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ContentSettingBubbleModel::CreateContentSettingBubbleModel(
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch         contents(), profile_.get(), CONTENT_SETTINGS_TYPE_IMAGES));
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const ContentSettingBubbleModel::BubbleContent& bubble_content =
56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      content_setting_bubble_model->bubble_content();
5721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.title.empty());
58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(2U, bubble_content.radio_group.radio_items.size());
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(0, bubble_content.radio_group.default_item);
6021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_TRUE(bubble_content.custom_link.empty());
6121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.manage_link.empty());
62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
64c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(ContentSettingBubbleModelTest, Cookies) {
65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  TabSpecificContentSettings* content_settings =
66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      contents()->GetTabSpecificContentSettings();
673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES,
683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick                                     std::string());
69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model(
71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ContentSettingBubbleModel::CreateContentSettingBubbleModel(
72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch         contents(), profile_.get(), CONTENT_SETTINGS_TYPE_COOKIES));
73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const ContentSettingBubbleModel::BubbleContent& bubble_content =
74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      content_setting_bubble_model->bubble_content();
7521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.title.empty());
76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  EXPECT_FALSE(bubble_content.radio_group.radio_items.empty());
7721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.custom_link.empty());
7821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_TRUE(bubble_content.custom_link_enabled);
7921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.manage_link.empty());
803345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
813345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
823345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(ContentSettingBubbleModelTest, Plugins) {
833345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  TabSpecificContentSettings* content_settings =
843345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      contents()->GetTabSpecificContentSettings();
853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS,
863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick                                     std::string());
873345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
883345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model(
893345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      ContentSettingBubbleModel::CreateContentSettingBubbleModel(
903345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick         contents(), profile_.get(), CONTENT_SETTINGS_TYPE_PLUGINS));
913345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  const ContentSettingBubbleModel::BubbleContent& bubble_content =
923345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      content_setting_bubble_model->bubble_content();
9321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.title.empty());
943345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_EQ(2U, bubble_content.radio_group.radio_items.size());
9521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.custom_link.empty());
9621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_TRUE(bubble_content.custom_link_enabled);
9721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  EXPECT_FALSE(bubble_content.manage_link.empty());
98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
100731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickTEST_F(ContentSettingBubbleModelTest, MultiplePlugins) {
101731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  CommandLine* cmd = CommandLine::ForCurrentProcess();
102731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  AutoReset<CommandLine> auto_reset(cmd, *cmd);
103731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  cmd->AppendSwitch(switches::kEnableResourceContentSettings);
1044a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  cmd->AppendSwitch(switches::kEnableClickToPlay);
105731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
106731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  HostContentSettingsMap* map = profile_->GetHostContentSettingsMap();
107731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  std::string fooPlugin = "foo";
108731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  std::string barPlugin = "bar";
109731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  GURL url = contents()->GetURL();
110731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  map->AddExceptionForURL(url,
111731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                          CONTENT_SETTINGS_TYPE_PLUGINS,
112731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                          fooPlugin,
113731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                          CONTENT_SETTING_ALLOW);
114731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  map->AddExceptionForURL(url,
115731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                          CONTENT_SETTINGS_TYPE_PLUGINS,
116731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                          barPlugin,
117731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                          CONTENT_SETTING_ASK);
118731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
119731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  TabSpecificContentSettings* content_settings =
120731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      contents()->GetTabSpecificContentSettings();
121731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS,
122731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                     fooPlugin);
123731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS,
124731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                     barPlugin);
125731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
126731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model(
127731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      ContentSettingBubbleModel::CreateContentSettingBubbleModel(
128731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick         contents(), profile_.get(), CONTENT_SETTINGS_TYPE_PLUGINS));
129731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  const ContentSettingBubbleModel::BubbleContent& bubble_content =
130731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      content_setting_bubble_model->bubble_content();
131731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  EXPECT_EQ(2U, bubble_content.radio_group.radio_items.size());
132731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  EXPECT_EQ(1, bubble_content.radio_group.default_item);
133731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
134731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  content_setting_bubble_model->OnRadioClicked(0);
135dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  // Nothing should have changed.
136731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  EXPECT_EQ(CONTENT_SETTING_ALLOW,
137731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            map->GetContentSetting(url,
138731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   CONTENT_SETTINGS_TYPE_PLUGINS,
139731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   fooPlugin));
140dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  EXPECT_EQ(CONTENT_SETTING_ASK,
141731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            map->GetContentSetting(url,
142731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   CONTENT_SETTINGS_TYPE_PLUGINS,
143731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   barPlugin));
144731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
145dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  content_setting_bubble_model.reset();
146731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Both plug-ins should be click-to-play now.
147dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  EXPECT_EQ(CONTENT_SETTING_ALLOW,
148731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            map->GetContentSetting(url,
149731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   CONTENT_SETTINGS_TYPE_PLUGINS,
150731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   fooPlugin));
151dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  EXPECT_EQ(CONTENT_SETTING_ALLOW,
152731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            map->GetContentSetting(url,
153731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   CONTENT_SETTINGS_TYPE_PLUGINS,
154731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                                   barPlugin));
155731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}
156731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
157c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(ContentSettingBubbleModelTest, Geolocation) {
158c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const GURL page_url("http://toplevel.example/");
159c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const GURL frame1_url("http://host1.example/");
160c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const GURL frame2_url("http://host2.example:999/");
161c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
162c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  NavigateAndCommit(page_url);
163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  TabSpecificContentSettings* content_settings =
164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      contents()->GetTabSpecificContentSettings();
165c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
166c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // One permitted frame, but not in the content map: requires reload.
167c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  content_settings->OnGeolocationPermissionSet(frame1_url, true);
168c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CheckGeolocationBubble(1, false, true);
169c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
170c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Add it to the content map, should now have a clear link.
171c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  GeolocationContentSettingsMap* setting_map =
172c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      profile_->GetGeolocationContentSettingsMap();
173c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  setting_map->SetContentSetting(frame1_url, page_url, CONTENT_SETTING_ALLOW);
174c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CheckGeolocationBubble(1, true, false);
175c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
176c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Change the default to allow: no message needed.
177c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  setting_map->SetDefaultContentSetting(CONTENT_SETTING_ALLOW);
178c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CheckGeolocationBubble(1, false, false);
179c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
180c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Second frame denied, but not stored in the content map: requires reload.
181c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  content_settings->OnGeolocationPermissionSet(frame2_url, false);
182c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CheckGeolocationBubble(2, false, true);
183c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
184c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Change the default to block: offer a clear link for the persisted frame 1.
185c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  setting_map->SetDefaultContentSetting(CONTENT_SETTING_BLOCK);
186c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CheckGeolocationBubble(2, true, false);
187c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
188dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
189dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenTEST_F(ContentSettingBubbleModelTest, FileURL) {
190dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  std::string file_url("file:///tmp/test.html");
191dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  NavigateAndCommit(GURL(file_url));
192dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model(
193dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      ContentSettingBubbleModel::CreateContentSettingBubbleModel(
194dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen         contents(), profile_.get(), CONTENT_SETTINGS_TYPE_IMAGES));
195dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  std::string title =
196dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      content_setting_bubble_model->bubble_content().radio_group.radio_items[0];
197dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  ASSERT_NE(std::string::npos, title.find(file_url));
198dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen}
199