OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 5 |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/base64.h" | |
8 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
9 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
10 #include "base/test/test_simple_task_runner.h" | 11 #include "base/test/test_simple_task_runner.h" |
11 #include "base/thread_task_runner_handle.h" | 12 #include "base/thread_task_runner_handle.h" |
12 #include "base/time/time.h" | 13 #include "base/time/time.h" |
13 #include "chrome/browser/safe_browsing/chunk.pb.h" | 14 #include "chrome/browser/safe_browsing/chunk.pb.h" |
14 #include "chrome/browser/safe_browsing/protocol_manager.h" | 15 #include "chrome/browser/safe_browsing/protocol_manager.h" |
15 #include "chrome/browser/safe_browsing/safe_browsing_util.h" | 16 #include "chrome/browser/safe_browsing/safe_browsing_util.h" |
17 #include "components/safe_browsing_db/safebrowsing.pb.h" | |
16 #include "google_apis/google_api_keys.h" | 18 #include "google_apis/google_api_keys.h" |
17 #include "net/base/escape.h" | 19 #include "net/base/escape.h" |
18 #include "net/base/load_flags.h" | 20 #include "net/base/load_flags.h" |
19 #include "net/base/net_errors.h" | 21 #include "net/base/net_errors.h" |
20 #include "net/url_request/test_url_fetcher_factory.h" | 22 #include "net/url_request/test_url_fetcher_factory.h" |
21 #include "testing/gmock/include/gmock/gmock.h" | 23 #include "testing/gmock/include/gmock/gmock.h" |
22 #include "testing/gmock_mutant.h" | 24 #include "testing/gmock_mutant.h" |
23 #include "testing/gtest/include/gtest/gtest.h" | 25 #include "testing/gtest/include/gtest/gtest.h" |
24 | 26 |
25 using base::Time; | 27 using base::Time; |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
262 pm->GetHashUrl(false).spec()); | 264 pm->GetHashUrl(false).spec()); |
263 | 265 |
264 pm->set_additional_query(kAdditionalQuery); | 266 pm->set_additional_query(kAdditionalQuery); |
265 EXPECT_EQ( | 267 EXPECT_EQ( |
266 "https://prefix.com/foo/gethash?client=unittest&appver=1.0&" | 268 "https://prefix.com/foo/gethash?client=unittest&appver=1.0&" |
267 "pver=3.0" + | 269 "pver=3.0" + |
268 key_param_ + "&additional_query&ext=1", | 270 key_param_ + "&additional_query&ext=1", |
269 pm->GetHashUrl(true).spec()); | 271 pm->GetHashUrl(true).spec()); |
270 } | 272 } |
271 | 273 |
274 TEST_F(SafeBrowsingProtocolManagerTest, TestGetV4HashUrl) { | |
275 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); | |
276 | |
277 EXPECT_EQ( | |
278 "https://safebrowsing.googleapis.com/v4/encodedFullHashes/request_base64?" | |
279 "alt=proto&client_id=unittest&client_version=1.0" + key_param_, | |
280 pm->GetV4HashUrl("request_base64").spec()); | |
281 | |
282 // Additional query has no effect. | |
283 pm->set_additional_query(kAdditionalQuery); | |
284 EXPECT_EQ( | |
285 "https://safebrowsing.googleapis.com/v4/encodedFullHashes/request_base64?" | |
286 "alt=proto&client_id=unittest&client_version=1.0" + key_param_, | |
287 pm->GetV4HashUrl("request_base64").spec()); | |
288 } | |
289 | |
290 TEST_F(SafeBrowsingProtocolManagerTest, TestGetV4HashRequest) { | |
291 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); | |
292 | |
293 FindFullHashesRequest req; | |
294 ThreatInfo* info = req.mutable_threat_info(); | |
295 info->add_threat_types(API_ABUSE); | |
296 info->add_platform_types(CHROME_PLATFORM); | |
297 info->add_threat_entry_types(URL_EXPRESSION); | |
298 | |
299 SBPrefix one = 1u; | |
300 SBPrefix two = 2u; | |
301 SBPrefix three = 3u; | |
302 std::string hash; | |
303 hash.append(reinterpret_cast<const char*>(&one), sizeof(SBPrefix)); | |
Nathan Parker
2016/01/05 22:44:00
nit: hash = std::string(ptr, size)
kcarattini
2016/01/05 23:30:57
Done.
| |
304 info->add_threat_entries()->set_hash(hash); | |
305 hash.clear(); | |
306 hash.append(reinterpret_cast<const char*>(&two), sizeof(SBPrefix)); | |
307 info->add_threat_entries()->set_hash(hash); | |
308 hash.clear(); | |
309 hash.append(reinterpret_cast<const char*>(&three), sizeof(SBPrefix)); | |
310 info->add_threat_entries()->set_hash(hash); | |
311 | |
312 // Serialize and Base64 encode. | |
313 std::string req_data, req_base64; | |
314 req.SerializeToString(&req_data); | |
315 base::Base64Encode(req_data, &req_base64); | |
316 | |
317 std::vector<SBPrefix> prefixes; | |
318 prefixes.push_back(one); | |
319 prefixes.push_back(two); | |
320 prefixes.push_back(three); | |
321 EXPECT_EQ( | |
322 req_base64, | |
323 pm->GetV4HashRequest(prefixes, API_ABUSE)); | |
324 } | |
325 | |
272 TEST_F(SafeBrowsingProtocolManagerTest, TestUpdateUrl) { | 326 TEST_F(SafeBrowsingProtocolManagerTest, TestUpdateUrl) { |
273 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); | 327 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); |
274 | 328 |
275 EXPECT_EQ( | 329 EXPECT_EQ( |
276 "https://prefix.com/foo/downloads?client=unittest&appver=1.0&" | 330 "https://prefix.com/foo/downloads?client=unittest&appver=1.0&" |
277 "pver=3.0" + | 331 "pver=3.0" + |
278 key_param_ + "&ext=1", | 332 key_param_ + "&ext=1", |
279 pm->UpdateUrl(true).spec()); | 333 pm->UpdateUrl(true).spec()); |
280 | 334 |
281 pm->set_additional_query(kAdditionalQuery); | 335 pm->set_additional_query(kAdditionalQuery); |
(...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1127 | 1181 |
1128 EXPECT_FALSE(pm->IsUpdateScheduled()); | 1182 EXPECT_FALSE(pm->IsUpdateScheduled()); |
1129 | 1183 |
1130 // Invoke the AddChunksCallback to finish the update. | 1184 // Invoke the AddChunksCallback to finish the update. |
1131 runner->RunPendingTasks(); | 1185 runner->RunPendingTasks(); |
1132 | 1186 |
1133 EXPECT_TRUE(pm->IsUpdateScheduled()); | 1187 EXPECT_TRUE(pm->IsUpdateScheduled()); |
1134 } | 1188 } |
1135 | 1189 |
1136 } // namespace safe_browsing | 1190 } // namespace safe_browsing |
OLD | NEW |