OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/browser/renderer_host/test/test_render_view_host.h" | 5 #include "chrome/browser/renderer_host/test/test_render_view_host.h" |
6 | 6 |
7 #include "chrome/browser/browser_thread.h" | 7 #include "chrome/browser/browser_thread.h" |
8 #include "chrome/browser/prefs/pref_service.h" | |
9 #include "chrome/browser/profile.h" | |
8 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" | 10 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" |
9 #include "chrome/browser/tab_contents/navigation_entry.h" | 11 #include "chrome/browser/tab_contents/navigation_entry.h" |
10 #include "chrome/browser/tab_contents/test_tab_contents.h" | 12 #include "chrome/browser/tab_contents/test_tab_contents.h" |
13 #include "chrome/common/pref_names.h" | |
11 #include "chrome/common/render_messages.h" | 14 #include "chrome/common/render_messages.h" |
12 #include "chrome/common/render_messages_params.h" | 15 #include "chrome/common/render_messages_params.h" |
13 | 16 |
14 static const char* kGoogleURL = "http://www.google.com/"; | 17 static const char* kGoogleURL = "http://www.google.com/"; |
15 static const char* kGoodURL = "http://www.goodguys.com/"; | 18 static const char* kGoodURL = "http://www.goodguys.com/"; |
16 static const char* kBadURL = "http://www.badguys.com/"; | 19 static const char* kBadURL = "http://www.badguys.com/"; |
17 static const char* kBadURL2 = "http://www.badguys2.com/"; | 20 static const char* kBadURL2 = "http://www.badguys2.com/"; |
18 static const char* kBadURL3 = "http://www.badguys3.com/"; | 21 static const char* kBadURL3 = "http://www.badguys3.com/"; |
19 | 22 |
20 // A SafeBrowingBlockingPage class that does not create windows. | 23 // A SafeBrowingBlockingPage class that does not create windows. |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
383 | 386 |
384 // Let's proceed and make sure everything is OK (bug 17627). | 387 // Let's proceed and make sure everything is OK (bug 17627). |
385 ProceedThroughInterstitial(sb_interstitial); | 388 ProceedThroughInterstitial(sb_interstitial); |
386 Navigate(kBadURL, 2); // Commit the navigation. | 389 Navigate(kBadURL, 2); // Commit the navigation. |
387 sb_interstitial = GetSafeBrowsingBlockingPage(); | 390 sb_interstitial = GetSafeBrowsingBlockingPage(); |
388 ASSERT_FALSE(sb_interstitial); | 391 ASSERT_FALSE(sb_interstitial); |
389 ASSERT_EQ(2, controller().entry_count()); | 392 ASSERT_EQ(2, controller().entry_count()); |
390 EXPECT_EQ(kBadURL, controller().GetActiveEntry()->url().spec()); | 393 EXPECT_EQ(kBadURL, controller().GetActiveEntry()->url().spec()); |
391 } | 394 } |
392 | 395 |
393 // Tests that calling "don't proceed" after "proceed" has been called doesn't | 396 // |
394 // cause problems. http://crbug.com/30079 | |
395 TEST_F(SafeBrowsingBlockingPageTest, ProceedThenDontProceed) { | 397 TEST_F(SafeBrowsingBlockingPageTest, ProceedThenDontProceed) { |
396 // Start a load. | 398 // Start a load. |
397 controller().LoadURL(GURL(kBadURL), GURL(), PageTransition::TYPED); | 399 controller().LoadURL(GURL(kBadURL), GURL(), PageTransition::TYPED); |
398 | 400 |
399 // Simulate the load causing a safe browsing interstitial to be shown. | 401 // Simulate the load causing a safe browsing interstitial to be shown. |
400 ShowInterstitial(ResourceType::MAIN_FRAME, kBadURL); | 402 ShowInterstitial(ResourceType::MAIN_FRAME, kBadURL); |
401 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); | 403 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); |
402 ASSERT_TRUE(sb_interstitial); | 404 ASSERT_TRUE(sb_interstitial); |
403 | 405 |
404 MessageLoop::current()->RunAllPending(); | 406 MessageLoop::current()->RunAllPending(); |
405 | 407 |
406 // Simulate the user clicking "proceed" then "don't proceed" (before the | 408 // Simulate the user clicking "proceed" then "don't proceed" (before the |
407 // interstitial is shown). | 409 // interstitial is shown). |
408 sb_interstitial->Proceed(); | 410 sb_interstitial->Proceed(); |
409 sb_interstitial->DontProceed(); | 411 sb_interstitial->DontProceed(); |
410 // Proceed() and DontProceed() post a task to update the | 412 // Proceed() and DontProceed() post a task to update the |
411 // SafeBrowsingService::Client. | 413 // SafeBrowsingService::Client. |
412 MessageLoop::current()->RunAllPending(); | 414 MessageLoop::current()->RunAllPending(); |
413 | 415 |
414 // The interstitial should be gone. | 416 // The interstitial should be gone. |
415 EXPECT_EQ(OK, user_response()); | 417 EXPECT_EQ(OK, user_response()); |
416 EXPECT_FALSE(GetSafeBrowsingBlockingPage()); | 418 EXPECT_FALSE(GetSafeBrowsingBlockingPage()); |
417 } | 419 } |
420 | |
lzheng
2010/11/19 18:50:47
I've pinged Panayiotis that we should have a Brows
kewang
2010/11/20 00:45:51
Yes, Panos and I worked on it this afternoon and h
| |
421 // Test setting the malware report preferance | |
422 TEST_F(SafeBrowsingBlockingPageTest, MalwareReports) { | |
423 // Disable malware reports. | |
424 contents()->profile()->GetPrefs()->SetBoolean( | |
425 prefs::kSafeBrowsingReportingEnabled, false); | |
426 | |
427 // Start a load. | |
428 controller().LoadURL(GURL(kBadURL), GURL(), PageTransition::TYPED); | |
429 | |
430 // Simulate the load causing a safe browsing interstitial to be shown. | |
431 ShowInterstitial(ResourceType::MAIN_FRAME, kBadURL); | |
432 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); | |
433 ASSERT_TRUE(sb_interstitial); | |
434 | |
435 MessageLoop::current()->RunAllPending(); | |
436 | |
437 EXPECT_FALSE(contents()->profile()->GetPrefs()->GetBoolean( | |
438 prefs::kSafeBrowsingReportingEnabled)); | |
439 | |
440 // Simulate the user check the report agreement checkbox. | |
441 sb_interstitial->SetReportingPreference(true); | |
442 | |
443 EXPECT_TRUE(contents()->profile()->GetPrefs()->GetBoolean( | |
444 prefs::kSafeBrowsingReportingEnabled)); | |
445 | |
446 // Simulate the user uncheck the report agreement checkbox. | |
447 sb_interstitial->SetReportingPreference(false); | |
448 | |
449 EXPECT_FALSE(contents()->profile()->GetPrefs()->GetBoolean( | |
450 prefs::kSafeBrowsingReportingEnabled)); | |
451 } | |
OLD | NEW |