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

Side by Side Diff: chrome/browser/safe_browsing/malware_details_unittest.cc

Issue 6880285: SafeBrowsing Opt-in Malware Reports: Collect remote ip:port pairs for requests that were not fetc... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 months 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/browser/safe_browsing/malware_details_cache.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) 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 <algorithm> 5 #include <algorithm>
6 6
7 #include "base/pickle.h" 7 #include "base/pickle.h"
8 #include "base/time.h" 8 #include "base/time.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/safe_browsing/malware_details.h" 10 #include "chrome/browser/safe_browsing/malware_details.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 static const char* kLandingData = "<iframe src='http://www.malware.com'>"; 49 static const char* kLandingData = "<iframe src='http://www.malware.com'>";
50 50
51 using safe_browsing::ClientMalwareReportRequest; 51 using safe_browsing::ClientMalwareReportRequest;
52 52
53 namespace { 53 namespace {
54 54
55 void WriteHeaders(disk_cache::Entry* entry, const std::string headers) { 55 void WriteHeaders(disk_cache::Entry* entry, const std::string headers) {
56 net::HttpResponseInfo responseinfo; 56 net::HttpResponseInfo responseinfo;
57 std::string raw_headers = net::HttpUtil::AssembleRawHeaders( 57 std::string raw_headers = net::HttpUtil::AssembleRawHeaders(
58 headers.c_str(), headers.size()); 58 headers.c_str(), headers.size());
59 responseinfo.socket_address = net::HostPortPair("1.2.3.4", 80);
59 responseinfo.headers = new net::HttpResponseHeaders(raw_headers); 60 responseinfo.headers = new net::HttpResponseHeaders(raw_headers);
60 61
61 Pickle pickle; 62 Pickle pickle;
62 responseinfo.Persist(&pickle, false, false); 63 responseinfo.Persist(&pickle, false, false);
63 64
64 scoped_refptr<net::WrappedIOBuffer> buf(new net::WrappedIOBuffer( 65 scoped_refptr<net::WrappedIOBuffer> buf(new net::WrappedIOBuffer(
65 reinterpret_cast<const char*>(pickle.data()))); 66 reinterpret_cast<const char*>(pickle.data())));
66 int len = static_cast<int>(pickle.size()); 67 int len = static_cast<int>(pickle.size());
67 68
68 TestCompletionCallback cb; 69 TestCompletionCallback cb;
(...skipping 20 matching lines...) Expand all
89 disk_cache::Entry* entry; 90 disk_cache::Entry* entry;
90 int rv = cache->CreateEntry(key, &entry, &cb); 91 int rv = cache->CreateEntry(key, &entry, &cb);
91 rv = cb.GetResult(rv); 92 rv = cb.GetResult(rv);
92 if (rv != net::OK) { 93 if (rv != net::OK) {
93 rv = cache->OpenEntry(key, &entry, &cb); 94 rv = cache->OpenEntry(key, &entry, &cb);
94 ASSERT_EQ(net::OK, cb.GetResult(rv)); 95 ASSERT_EQ(net::OK, cb.GetResult(rv));
95 } 96 }
96 97
97 WriteHeaders(entry, headers); 98 WriteHeaders(entry, headers);
98 WriteData(entry, data); 99 WriteData(entry, data);
99
100 entry->Close(); 100 entry->Close();
101 } 101 }
102 102
103 void FillCache(net::URLRequestContext* context) { 103 void FillCache(net::URLRequestContext* context) {
104 TestCompletionCallback cb; 104 TestCompletionCallback cb;
105 disk_cache::Backend* cache; 105 disk_cache::Backend* cache;
106 int rv = 106 int rv =
107 context->http_transaction_factory()->GetCache()->GetBackend(&cache, &cb); 107 context->http_transaction_factory()->GetCache()->GetBackend(&cache, &cb);
108 ASSERT_EQ(net::OK, cb.GetResult(rv)); 108 ASSERT_EQ(net::OK, cb.GetResult(rv));
109 109
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 EXPECT_EQ(expected->response().headers(i).value(), 269 EXPECT_EQ(expected->response().headers(i).value(),
270 resource->response().headers(i).value()); 270 resource->response().headers(i).value());
271 } 271 }
272 272
273 EXPECT_EQ(expected->response().body(), resource->response().body()); 273 EXPECT_EQ(expected->response().body(), resource->response().body());
274 EXPECT_EQ(expected->response().bodylength(), 274 EXPECT_EQ(expected->response().bodylength(),
275 resource->response().bodylength()); 275 resource->response().bodylength());
276 EXPECT_EQ(expected->response().bodydigest(), 276 EXPECT_EQ(expected->response().bodydigest(),
277 resource->response().bodydigest()); 277 resource->response().bodydigest());
278 } 278 }
279
280 // Verify IP:port pair
281 EXPECT_EQ(expected->response().remote_ip(),
282 resource->response().remote_ip());
279 } 283 }
280 284
281 BrowserThread ui_thread_; 285 BrowserThread ui_thread_;
282 BrowserThread io_thread_; 286 BrowserThread io_thread_;
283 scoped_refptr<MockSafeBrowsingService> sb_service_; 287 scoped_refptr<MockSafeBrowsingService> sb_service_;
284 }; 288 };
285 289
286 // Tests creating a simple malware report. 290 // Tests creating a simple malware report.
287 TEST_F(MalwareDetailsTest, MalwareSubResource) { 291 TEST_F(MalwareDetailsTest, MalwareSubResource) {
288 // Start a load. 292 // Start a load.
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 pb_header->set_value("text/html"); 531 pb_header->set_value("text/html");
528 pb_header = pb_response->add_headers(); 532 pb_header = pb_response->add_headers();
529 pb_header->set_name("Content-Length"); 533 pb_header->set_name("Content-Length");
530 pb_header->set_value("1024"); 534 pb_header->set_value("1024");
531 pb_header = pb_response->add_headers(); 535 pb_header = pb_response->add_headers();
532 pb_header->set_name("Set-Cookie"); 536 pb_header->set_name("Set-Cookie");
533 pb_header->set_value(""); // The cookie is dropped. 537 pb_header->set_value(""); // The cookie is dropped.
534 pb_response->set_body(kLandingData); 538 pb_response->set_body(kLandingData);
535 pb_response->set_bodylength(37); 539 pb_response->set_bodylength(37);
536 pb_response->set_bodydigest("9ca97475598a79bc1e8fc9bd6c72cd35"); 540 pb_response->set_bodydigest("9ca97475598a79bc1e8fc9bd6c72cd35");
541 pb_response->set_remote_ip("1.2.3.4:80");
537 542
538 pb_resource = expected.add_resources(); 543 pb_resource = expected.add_resources();
539 pb_resource->set_id(1); 544 pb_resource->set_id(1);
540 pb_resource->set_url(kMalwareURL); 545 pb_resource->set_url(kMalwareURL);
541 pb_response = pb_resource->mutable_response(); 546 pb_response = pb_resource->mutable_response();
542 pb_response->mutable_firstline()->set_code(200); 547 pb_response->mutable_firstline()->set_code(200);
543 pb_header = pb_response->add_headers(); 548 pb_header = pb_response->add_headers();
544 pb_header->set_name("Content-Type"); 549 pb_header->set_name("Content-Type");
545 pb_header->set_value("image/jpeg"); 550 pb_header->set_value("image/jpeg");
546 pb_response->set_body(kMalwareData); 551 pb_response->set_body(kMalwareData);
547 pb_response->set_bodylength(10); 552 pb_response->set_bodylength(10);
548 pb_response->set_bodydigest("581373551c43d4cf33bfb3b26838ff95"); 553 pb_response->set_bodydigest("581373551c43d4cf33bfb3b26838ff95");
554 pb_response->set_remote_ip("1.2.3.4:80");
549 expected.set_complete(true); 555 expected.set_complete(true);
550 556
551 VerifyResults(actual, expected); 557 VerifyResults(actual, expected);
552 } 558 }
553 559
554 // Tests the interaction with the HTTP cache (where the cache is empty). 560 // Tests the interaction with the HTTP cache (where the cache is empty).
555 TEST_F(MalwareDetailsTest, HTTPCacheNoEntries) { 561 TEST_F(MalwareDetailsTest, HTTPCacheNoEntries) {
556 controller().LoadURL(GURL(kLandingURL), GURL(), PageTransition::TYPED); 562 controller().LoadURL(GURL(kLandingURL), GURL(), PageTransition::TYPED);
557 563
558 SafeBrowsingService::UnsafeResource resource; 564 SafeBrowsingService::UnsafeResource resource;
(...skipping 26 matching lines...) Expand all
585 ClientMalwareReportRequest::Resource* pb_resource = expected.add_resources(); 591 ClientMalwareReportRequest::Resource* pb_resource = expected.add_resources();
586 pb_resource->set_id(0); 592 pb_resource->set_id(0);
587 pb_resource->set_url(kLandingURL); 593 pb_resource->set_url(kLandingURL);
588 pb_resource = expected.add_resources(); 594 pb_resource = expected.add_resources();
589 pb_resource->set_id(1); 595 pb_resource->set_id(1);
590 pb_resource->set_url(kMalwareURL); 596 pb_resource->set_url(kMalwareURL);
591 expected.set_complete(true); 597 expected.set_complete(true);
592 598
593 VerifyResults(actual, expected); 599 VerifyResults(actual, expected);
594 } 600 }
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/malware_details_cache.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698