Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1560)

Side by Side Diff: chrome/renderer/content_settings_observer_browsertest.cc

Issue 106713004: Remove kEnableResourceContentSettings and all the code that uses it since it's been behind a flag f… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: review comments Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/renderer/content_settings_observer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/content_settings.h" 5 #include "chrome/common/content_settings.h"
6 #include "chrome/common/render_messages.h" 6 #include "chrome/common/render_messages.h"
7 #include "chrome/renderer/content_settings_observer.h" 7 #include "chrome/renderer/content_settings_observer.h"
8 #include "chrome/test/base/chrome_render_view_test.h" 8 #include "chrome/test/base/chrome_render_view_test.h"
9 #include "content/public/renderer/render_view.h" 9 #include "content/public/renderer/render_view.h"
10 #include "ipc/ipc_message_macros.h" 10 #include "ipc/ipc_message_macros.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "third_party/WebKit/public/web/WebView.h" 13 #include "third_party/WebKit/public/web/WebView.h"
14 14
15 using testing::_; 15 using testing::_;
16 using testing::DeleteArg; 16 using testing::DeleteArg;
17 17
18 namespace { 18 namespace {
19 19
20 class MockContentSettingsObserver : public ContentSettingsObserver { 20 class MockContentSettingsObserver : public ContentSettingsObserver {
21 public: 21 public:
22 explicit MockContentSettingsObserver(content::RenderView* render_view); 22 explicit MockContentSettingsObserver(content::RenderView* render_view);
23 23
24 virtual bool Send(IPC::Message* message); 24 virtual bool Send(IPC::Message* message);
25 25
26 MOCK_METHOD2(OnContentBlocked, 26 MOCK_METHOD1(OnContentBlocked,
27 void(ContentSettingsType, const std::string&)); 27 void(ContentSettingsType));
28 28
29 MOCK_METHOD5(OnAllowDOMStorage, 29 MOCK_METHOD5(OnAllowDOMStorage,
30 void(int, const GURL&, const GURL&, bool, IPC::Message*)); 30 void(int, const GURL&, const GURL&, bool, IPC::Message*));
31 GURL image_url_; 31 GURL image_url_;
32 std::string image_origin_; 32 std::string image_origin_;
33 }; 33 };
34 34
35 MockContentSettingsObserver::MockContentSettingsObserver( 35 MockContentSettingsObserver::MockContentSettingsObserver(
36 content::RenderView* render_view) 36 content::RenderView* render_view)
37 : ContentSettingsObserver(render_view), 37 : ContentSettingsObserver(render_view),
(...skipping 11 matching lines...) Expand all
49 49
50 // Our super class deletes the message. 50 // Our super class deletes the message.
51 return RenderViewObserver::Send(message); 51 return RenderViewObserver::Send(message);
52 } 52 }
53 53
54 } // namespace 54 } // namespace
55 55
56 TEST_F(ChromeRenderViewTest, DidBlockContentType) { 56 TEST_F(ChromeRenderViewTest, DidBlockContentType) {
57 MockContentSettingsObserver observer(view_); 57 MockContentSettingsObserver observer(view_);
58 EXPECT_CALL(observer, 58 EXPECT_CALL(observer,
59 OnContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES, std::string())); 59 OnContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES));
60 observer.DidBlockContentType(CONTENT_SETTINGS_TYPE_COOKIES, std::string()); 60 observer.DidBlockContentType(CONTENT_SETTINGS_TYPE_COOKIES);
61 61
62 // Blocking the same content type a second time shouldn't send a notification. 62 // Blocking the same content type a second time shouldn't send a notification.
63 observer.DidBlockContentType(CONTENT_SETTINGS_TYPE_COOKIES, std::string()); 63 observer.DidBlockContentType(CONTENT_SETTINGS_TYPE_COOKIES);
64 ::testing::Mock::VerifyAndClearExpectations(&observer); 64 ::testing::Mock::VerifyAndClearExpectations(&observer);
65
66 // Blocking two different plugins should send two notifications.
67 std::string kFooPlugin = "foo";
68 std::string kBarPlugin = "bar";
69 EXPECT_CALL(observer,
70 OnContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS, kFooPlugin));
71 EXPECT_CALL(observer,
72 OnContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS, kBarPlugin));
73 observer.DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, kFooPlugin);
74 observer.DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, kBarPlugin);
75 } 65 }
76 66
77 // Tests that multiple invokations of AllowDOMStorage result in a single IPC. 67 // Tests that multiple invokations of AllowDOMStorage result in a single IPC.
78 // Fails due to http://crbug.com/104300 68 // Fails due to http://crbug.com/104300
79 TEST_F(ChromeRenderViewTest, DISABLED_AllowDOMStorage) { 69 TEST_F(ChromeRenderViewTest, DISABLED_AllowDOMStorage) {
80 // Load some HTML, so we have a valid security origin. 70 // Load some HTML, so we have a valid security origin.
81 LoadHTML("<html></html>"); 71 LoadHTML("<html></html>");
82 MockContentSettingsObserver observer(view_); 72 MockContentSettingsObserver observer(view_);
83 ON_CALL(observer, 73 ON_CALL(observer,
84 OnAllowDOMStorage(_, _, _, _, _)).WillByDefault(DeleteArg<4>()); 74 OnAllowDOMStorage(_, _, _, _, _)).WillByDefault(DeleteArg<4>());
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 image_setting_rules.push_back( 181 image_setting_rules.push_back(
192 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), 182 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(),
193 ContentSettingsPattern::Wildcard(), 183 ContentSettingsPattern::Wildcard(),
194 CONTENT_SETTING_BLOCK, 184 CONTENT_SETTING_BLOCK,
195 std::string(), 185 std::string(),
196 false)); 186 false));
197 187
198 ContentSettingsObserver* observer = ContentSettingsObserver::Get(view_); 188 ContentSettingsObserver* observer = ContentSettingsObserver::Get(view_);
199 observer->SetContentSettingRules(&content_setting_rules); 189 observer->SetContentSettingRules(&content_setting_rules);
200 EXPECT_CALL(mock_observer, 190 EXPECT_CALL(mock_observer,
201 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, std::string())); 191 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES));
202 EXPECT_FALSE(observer->AllowImage(GetMainFrame(), 192 EXPECT_FALSE(observer->AllowImage(GetMainFrame(),
203 true, mock_observer.image_url_)); 193 true, mock_observer.image_url_));
204 ::testing::Mock::VerifyAndClearExpectations(&observer); 194 ::testing::Mock::VerifyAndClearExpectations(&observer);
205 195
206 // Create an exception which allows the image. 196 // Create an exception which allows the image.
207 image_setting_rules.insert( 197 image_setting_rules.insert(
208 image_setting_rules.begin(), 198 image_setting_rules.begin(),
209 ContentSettingPatternSource( 199 ContentSettingPatternSource(
210 ContentSettingsPattern::Wildcard(), 200 ContentSettingsPattern::Wildcard(),
211 ContentSettingsPattern::FromString(mock_observer.image_origin_), 201 ContentSettingsPattern::FromString(mock_observer.image_origin_),
212 CONTENT_SETTING_ALLOW, 202 CONTENT_SETTING_ALLOW,
213 std::string(), 203 std::string(),
214 false)); 204 false));
215 205
216 EXPECT_CALL( 206 EXPECT_CALL(
217 mock_observer, 207 mock_observer,
218 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, std::string())).Times(0); 208 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)).Times(0);
219 EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true, 209 EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true,
220 mock_observer.image_url_)); 210 mock_observer.image_url_));
221 ::testing::Mock::VerifyAndClearExpectations(&observer); 211 ::testing::Mock::VerifyAndClearExpectations(&observer);
222 } 212 }
223 213
224 TEST_F(ChromeRenderViewTest, ImagesAllowedByDefault) { 214 TEST_F(ChromeRenderViewTest, ImagesAllowedByDefault) {
225 MockContentSettingsObserver mock_observer(view_); 215 MockContentSettingsObserver mock_observer(view_);
226 216
227 // Load some HTML. 217 // Load some HTML.
228 LoadHTML("<html>Foo</html>"); 218 LoadHTML("<html>Foo</html>");
229 219
230 // Set the default image blocking setting. 220 // Set the default image blocking setting.
231 RendererContentSettingRules content_setting_rules; 221 RendererContentSettingRules content_setting_rules;
232 ContentSettingsForOneType& image_setting_rules = 222 ContentSettingsForOneType& image_setting_rules =
233 content_setting_rules.image_rules; 223 content_setting_rules.image_rules;
234 image_setting_rules.push_back( 224 image_setting_rules.push_back(
235 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(), 225 ContentSettingPatternSource(ContentSettingsPattern::Wildcard(),
236 ContentSettingsPattern::Wildcard(), 226 ContentSettingsPattern::Wildcard(),
237 CONTENT_SETTING_ALLOW, 227 CONTENT_SETTING_ALLOW,
238 std::string(), 228 std::string(),
239 false)); 229 false));
240 230
241 ContentSettingsObserver* observer = ContentSettingsObserver::Get(view_); 231 ContentSettingsObserver* observer = ContentSettingsObserver::Get(view_);
242 observer->SetContentSettingRules(&content_setting_rules); 232 observer->SetContentSettingRules(&content_setting_rules);
243 EXPECT_CALL( 233 EXPECT_CALL(
244 mock_observer, 234 mock_observer,
245 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, std::string())).Times(0); 235 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)).Times(0);
246 EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true, 236 EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true,
247 mock_observer.image_url_)); 237 mock_observer.image_url_));
248 ::testing::Mock::VerifyAndClearExpectations(&observer); 238 ::testing::Mock::VerifyAndClearExpectations(&observer);
249 239
250 // Create an exception which blocks the image. 240 // Create an exception which blocks the image.
251 image_setting_rules.insert( 241 image_setting_rules.insert(
252 image_setting_rules.begin(), 242 image_setting_rules.begin(),
253 ContentSettingPatternSource( 243 ContentSettingPatternSource(
254 ContentSettingsPattern::Wildcard(), 244 ContentSettingsPattern::Wildcard(),
255 ContentSettingsPattern::FromString(mock_observer.image_origin_), 245 ContentSettingsPattern::FromString(mock_observer.image_origin_),
256 CONTENT_SETTING_BLOCK, 246 CONTENT_SETTING_BLOCK,
257 std::string(), 247 std::string(),
258 false)); 248 false));
259 EXPECT_CALL(mock_observer, 249 EXPECT_CALL(mock_observer,
260 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, std::string())); 250 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES));
261 EXPECT_FALSE(observer->AllowImage(GetMainFrame(), 251 EXPECT_FALSE(observer->AllowImage(GetMainFrame(),
262 true, mock_observer.image_url_)); 252 true, mock_observer.image_url_));
263 ::testing::Mock::VerifyAndClearExpectations(&observer); 253 ::testing::Mock::VerifyAndClearExpectations(&observer);
264 } 254 }
265 255
266 TEST_F(ChromeRenderViewTest, ContentSettingsBlockScripts) { 256 TEST_F(ChromeRenderViewTest, ContentSettingsBlockScripts) {
267 // Set the content settings for scripts. 257 // Set the content settings for scripts.
268 RendererContentSettingRules content_setting_rules; 258 RendererContentSettingRules content_setting_rules;
269 ContentSettingsForOneType& script_setting_rules = 259 ContentSettingsForOneType& script_setting_rules =
270 content_setting_rules.script_rules; 260 content_setting_rules.script_rules;
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 for (size_t i = 0; i < render_thread_->sink().message_count(); ++i) { 364 for (size_t i = 0; i < render_thread_->sink().message_count(); ++i) {
375 const IPC::Message* msg = render_thread_->sink().GetMessageAt(i); 365 const IPC::Message* msg = render_thread_->sink().GetMessageAt(i);
376 if (msg->type() == ChromeViewHostMsg_ContentBlocked::ID) 366 if (msg->type() == ChromeViewHostMsg_ContentBlocked::ID)
377 was_blocked = true; 367 was_blocked = true;
378 } 368 }
379 EXPECT_FALSE(was_blocked); 369 EXPECT_FALSE(was_blocked);
380 370
381 // Verify that images are allowed. 371 // Verify that images are allowed.
382 EXPECT_CALL( 372 EXPECT_CALL(
383 mock_observer, 373 mock_observer,
384 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, std::string())).Times(0); 374 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)).Times(0);
385 EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true, 375 EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true,
386 mock_observer.image_url_)); 376 mock_observer.image_url_));
387 ::testing::Mock::VerifyAndClearExpectations(&observer); 377 ::testing::Mock::VerifyAndClearExpectations(&observer);
388 } 378 }
OLDNEW
« no previous file with comments | « chrome/renderer/content_settings_observer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698