OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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" |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 | 315 |
316 // Verify that the script was not blocked. | 316 // Verify that the script was not blocked. |
317 bool was_blocked = false; | 317 bool was_blocked = false; |
318 for (size_t i = 0; i < render_thread_->sink().message_count(); ++i) { | 318 for (size_t i = 0; i < render_thread_->sink().message_count(); ++i) { |
319 const IPC::Message* msg = render_thread_->sink().GetMessageAt(i); | 319 const IPC::Message* msg = render_thread_->sink().GetMessageAt(i); |
320 if (msg->type() == ChromeViewHostMsg_ContentBlocked::ID) | 320 if (msg->type() == ChromeViewHostMsg_ContentBlocked::ID) |
321 was_blocked = true; | 321 was_blocked = true; |
322 } | 322 } |
323 EXPECT_FALSE(was_blocked); | 323 EXPECT_FALSE(was_blocked); |
324 } | 324 } |
325 | |
326 TEST_F(ChromeRenderViewTest, ContentSettingsInterstitialPages) { | |
327 MockContentSettingsObserver mock_observer(view_); | |
328 // Block scripts. | |
329 RendererContentSettingRules content_setting_rules; | |
330 ContentSettingsForOneType& script_setting_rules = | |
331 content_setting_rules.script_rules; | |
332 script_setting_rules.push_back( | |
333 ContentSettingPatternSource( | |
334 ContentSettingsPattern::Wildcard(), | |
335 ContentSettingsPattern::Wildcard(), | |
336 CONTENT_SETTING_BLOCK, "", false)); | |
337 // Block images. | |
338 ContentSettingsForOneType& image_setting_rules = | |
339 content_setting_rules.image_rules; | |
340 image_setting_rules.push_back( | |
341 ContentSettingPatternSource( | |
342 ContentSettingsPattern::Wildcard(), | |
343 ContentSettingsPattern::Wildcard(), | |
344 CONTENT_SETTING_BLOCK, "", false)); | |
345 | |
346 ContentSettingsObserver* observer = ContentSettingsObserver::Get(view_); | |
347 observer->SetContentSettingRules(&content_setting_rules); | |
348 observer->SetAsInterstitial(); | |
349 | |
350 // Load a page which contains a script. | |
351 std::string html = "<html>" | |
352 "<head>" | |
353 "<script src='data:foo'></script>" | |
354 "</head>" | |
355 "<body>" | |
356 "</body>" | |
357 "</html>"; | |
358 LoadHTML(html.c_str()); | |
359 | |
360 // Verify that the script was allowed. | |
361 bool was_blocked = false; | |
362 for (size_t i = 0; i < render_thread_->sink().message_count(); ++i) { | |
363 const IPC::Message* msg = render_thread_->sink().GetMessageAt(i); | |
364 if (msg->type() == ChromeViewHostMsg_ContentBlocked::ID) | |
365 was_blocked = true; | |
366 } | |
367 EXPECT_FALSE(was_blocked); | |
368 | |
369 // Verify that images are allowed. | |
370 EXPECT_CALL( | |
371 mock_observer, | |
372 OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, std::string())).Times(0); | |
373 EXPECT_TRUE(observer->AllowImage(GetMainFrame(), true, | |
374 mock_observer.image_url_)); | |
375 ::testing::Mock::VerifyAndClearExpectations(&observer); | |
376 } | |
OLD | NEW |