OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/chrome_thread.h" |
7 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" | 8 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" |
8 #include "chrome/browser/tab_contents/navigation_entry.h" | 9 #include "chrome/browser/tab_contents/navigation_entry.h" |
9 #include "chrome/common/render_messages.h" | 10 #include "chrome/common/render_messages.h" |
10 | 11 |
11 using webkit_glue::PasswordForm; | 12 using webkit_glue::PasswordForm; |
12 | 13 |
13 static const char* kGoogleURL = "http://www.google.com/"; | 14 static const char* kGoogleURL = "http://www.google.com/"; |
14 static const char* kGoodURL = "http://www.goodguys.com/"; | 15 static const char* kGoodURL = "http://www.goodguys.com/"; |
15 static const char* kBadURL = "http://www.badguys.com/"; | 16 static const char* kBadURL = "http://www.badguys.com/"; |
16 static const char* kBadURL2 = "http://www.badguys2.com/"; | 17 static const char* kBadURL2 = "http://www.badguys2.com/"; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 class SafeBrowsingBlockingPageTest : public RenderViewHostTestHarness, | 67 class SafeBrowsingBlockingPageTest : public RenderViewHostTestHarness, |
67 public SafeBrowsingService::Client { | 68 public SafeBrowsingService::Client { |
68 public: | 69 public: |
69 // The decision the user made. | 70 // The decision the user made. |
70 enum UserResponse { | 71 enum UserResponse { |
71 PENDING, | 72 PENDING, |
72 OK, | 73 OK, |
73 CANCEL | 74 CANCEL |
74 }; | 75 }; |
75 | 76 |
76 SafeBrowsingBlockingPageTest() { | 77 SafeBrowsingBlockingPageTest() |
| 78 : io_thread_(ChromeThread::IO, MessageLoop::current()) { |
77 ResetUserResponse(); | 79 ResetUserResponse(); |
78 service_ = new SafeBrowsingService(); | 80 service_ = new SafeBrowsingService(); |
79 } | 81 } |
80 | 82 |
81 virtual void SetUp() { | 83 virtual void SetUp() { |
82 RenderViewHostTestHarness::SetUp(); | 84 RenderViewHostTestHarness::SetUp(); |
83 SafeBrowsingBlockingPage::RegisterFactory(&factory_); | 85 SafeBrowsingBlockingPage::RegisterFactory(&factory_); |
84 ResetUserResponse(); | 86 ResetUserResponse(); |
85 } | 87 } |
86 | 88 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 resource->url = url; | 152 resource->url = url; |
151 resource->resource_type = resource_type; | 153 resource->resource_type = resource_type; |
152 resource->threat_type = SafeBrowsingService::URL_MALWARE; | 154 resource->threat_type = SafeBrowsingService::URL_MALWARE; |
153 resource->render_process_host_id = contents_->process()->id(); | 155 resource->render_process_host_id = contents_->process()->id(); |
154 resource->render_view_id = contents_->render_view_host()->routing_id(); | 156 resource->render_view_id = contents_->render_view_host()->routing_id(); |
155 } | 157 } |
156 | 158 |
157 UserResponse user_response_; | 159 UserResponse user_response_; |
158 scoped_refptr<SafeBrowsingService> service_; | 160 scoped_refptr<SafeBrowsingService> service_; |
159 TestSafeBrowsingBlockingPageFactory factory_; | 161 TestSafeBrowsingBlockingPageFactory factory_; |
| 162 ChromeThread io_thread_; |
160 }; | 163 }; |
161 | 164 |
162 // Tests showing a blocking page for a malware page and not proceeding. | 165 // Tests showing a blocking page for a malware page and not proceeding. |
163 TEST_F(SafeBrowsingBlockingPageTest, MalwarePageDontProceed) { | 166 TEST_F(SafeBrowsingBlockingPageTest, MalwarePageDontProceed) { |
164 // Start a load. | 167 // Start a load. |
165 controller().LoadURL(GURL(kBadURL), GURL(), PageTransition::TYPED); | 168 controller().LoadURL(GURL(kBadURL), GURL(), PageTransition::TYPED); |
166 | 169 |
167 // Simulate the load causing a safe browsing interstitial to be shown. | 170 // Simulate the load causing a safe browsing interstitial to be shown. |
168 ShowInterstitial(ResourceType::MAIN_FRAME, kBadURL); | 171 ShowInterstitial(ResourceType::MAIN_FRAME, kBadURL); |
169 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); | 172 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); |
170 ASSERT_TRUE(sb_interstitial); | 173 ASSERT_TRUE(sb_interstitial); |
171 | 174 |
| 175 MessageLoop::current()->RunAllPending(); |
| 176 |
172 // Simulate the user clicking "don't proceed". | 177 // Simulate the user clicking "don't proceed". |
173 DontProceedThroughInterstitial(sb_interstitial); | 178 DontProceedThroughInterstitial(sb_interstitial); |
174 | 179 |
175 // The interstitial should be gone. | 180 // The interstitial should be gone. |
176 EXPECT_EQ(CANCEL, user_response()); | 181 EXPECT_EQ(CANCEL, user_response()); |
177 EXPECT_FALSE(GetSafeBrowsingBlockingPage()); | 182 EXPECT_FALSE(GetSafeBrowsingBlockingPage()); |
178 | 183 |
179 // We did not proceed, the pending entry should be gone. | 184 // We did not proceed, the pending entry should be gone. |
180 EXPECT_FALSE(controller().pending_entry()); | 185 EXPECT_FALSE(controller().pending_entry()); |
181 } | 186 } |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 ASSERT_TRUE(sb_interstitial); | 397 ASSERT_TRUE(sb_interstitial); |
393 | 398 |
394 // Let's proceed and make sure everything is OK (bug 17627). | 399 // Let's proceed and make sure everything is OK (bug 17627). |
395 ProceedThroughInterstitial(sb_interstitial); | 400 ProceedThroughInterstitial(sb_interstitial); |
396 Navigate(kBadURL, 2); // Commit the navigation. | 401 Navigate(kBadURL, 2); // Commit the navigation. |
397 sb_interstitial = GetSafeBrowsingBlockingPage(); | 402 sb_interstitial = GetSafeBrowsingBlockingPage(); |
398 ASSERT_FALSE(sb_interstitial); | 403 ASSERT_FALSE(sb_interstitial); |
399 ASSERT_EQ(2, controller().entry_count()); | 404 ASSERT_EQ(2, controller().entry_count()); |
400 EXPECT_EQ(kBadURL, controller().GetActiveEntry()->url().spec()); | 405 EXPECT_EQ(kBadURL, controller().GetActiveEntry()->url().spec()); |
401 } | 406 } |
OLD | NEW |