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

Side by Side Diff: chrome/browser/download/download_safe_browsing_client_unittest.cc

Issue 8536041: This CL integrates the new SafeBrowsing download service class (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fix unit-tests Created 9 years, 1 month 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/message_loop.h"
6 #include "chrome/browser/download/download_safe_browsing_client.h"
7 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
8 #include "content/test/test_browser_thread.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 using content::BrowserThread;
13
14 namespace {
15
16 const char* kUrl1 = "http://127.0.0.1/";
17 const char* kUrl2 = "http://127.0.0.1/two";
18 const char* kUrl3 = "http://127.0.0.1/three";
19 const char* kRefUrl = "http://127.0.0.1/referrer";
20
21 class MockSafeBrowsingService : public SafeBrowsingService {
22 public:
23 MockSafeBrowsingService() {}
24 virtual ~MockSafeBrowsingService() {}
25
26 MOCK_METHOD6(ReportSafeBrowsingHit,
27 void(const GURL&, const GURL&, const GURL&, bool, UrlCheckResult,
28 const std::string&));
29
30 private:
31 DISALLOW_COPY_AND_ASSIGN(MockSafeBrowsingService);
32 };
33
34 } // namespace
35
36 class DownloadSBClientTest : public testing::Test {
37 public:
38 DownloadSBClientTest() :
39 ui_thread_(BrowserThread::UI, &loop_) {
40 }
41
42 private:
43 MessageLoop loop_;
44
45 // UI thread to satisfy debug checks in DownloadSBClient.
46 content::TestBrowserThread ui_thread_;
47 };
48
49 TEST_F(DownloadSBClientTest, UrlHit) {
50 std::string expected_post =
51 std::string(kUrl1) + "\n" + kUrl2 + "\n" + kUrl3 + "\n";
52 scoped_refptr<MockSafeBrowsingService> sb_service(
53 new MockSafeBrowsingService);
54 EXPECT_CALL(*sb_service.get(),
55 ReportSafeBrowsingHit(GURL(kUrl3), GURL(kUrl1), GURL(kRefUrl), true,
56 SafeBrowsingService::BINARY_MALWARE_URL,
57 expected_post));
58 std::vector<GURL> url_chain;
59 url_chain.push_back(GURL(kUrl1));
60 url_chain.push_back(GURL(kUrl2));
61 url_chain.push_back(GURL(kUrl3));
62
63 scoped_refptr<DownloadSBClient> client(
64 new DownloadSBClient(1, url_chain, GURL(kRefUrl), true));
65 client->SetSBService(sb_service.get());
66
67 client->ReportMalware(SafeBrowsingService::BINARY_MALWARE_URL, "");
68 }
69
70 TEST_F(DownloadSBClientTest, DigestHit) {
71 std::string hash_data = "\xDE\xAD\xBE\xEF";
72 std::string hash_string = "DEADBEEF";
73 std::string expected_post =
74 hash_string + "\n" + kUrl1 + "\n" + kUrl2 + "\n" + kUrl3 + "\n";
75 scoped_refptr<MockSafeBrowsingService> sb_service(
76 new MockSafeBrowsingService);
77 EXPECT_CALL(*sb_service.get(),
78 ReportSafeBrowsingHit(GURL(kUrl3), GURL(kUrl1), GURL(kRefUrl), true,
79 SafeBrowsingService::BINARY_MALWARE_HASH,
80 expected_post));
81 std::vector<GURL> url_chain;
82 url_chain.push_back(GURL(kUrl1));
83 url_chain.push_back(GURL(kUrl2));
84 url_chain.push_back(GURL(kUrl3));
85
86 scoped_refptr<DownloadSBClient> client(
87 new DownloadSBClient(1, url_chain, GURL(kRefUrl), true));
88 client->SetSBService(sb_service.get());
89
90 client->ReportMalware(SafeBrowsingService::BINARY_MALWARE_HASH, hash_data);
91 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698