| 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 "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
| 7 #include "base/memory/scoped_vector.h" | 7 #include "base/memory/scoped_vector.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/test/test_simple_task_runner.h" | 9 #include "base/test/test_simple_task_runner.h" |
| 10 #include "base/thread_task_runner_handle.h" | 10 #include "base/thread_task_runner_handle.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 '\x08', // field 1, wire format varint | 57 '\x08', // field 1, wire format varint |
| 58 '\x05', // chunk_number varint 5 | 58 '\x05', // chunk_number varint 5 |
| 59 '\x22', // field 4, wire format length-delimited | 59 '\x22', // field 4, wire format length-delimited |
| 60 '\x04', // varint length 4 | 60 '\x04', // varint length 4 |
| 61 'e', 'f', 'g', 'h' // 4-byte prefix | 61 'e', 'f', 'g', 'h' // 4-byte prefix |
| 62 }; | 62 }; |
| 63 const std::string kChunkPayload2(kRawChunkPayload2, sizeof(kRawChunkPayload2)); | 63 const std::string kChunkPayload2(kRawChunkPayload2, sizeof(kRawChunkPayload2)); |
| 64 | 64 |
| 65 } // namespace | 65 } // namespace |
| 66 | 66 |
| 67 namespace safe_browsing { |
| 68 |
| 67 class SafeBrowsingProtocolManagerTest : public testing::Test { | 69 class SafeBrowsingProtocolManagerTest : public testing::Test { |
| 68 protected: | 70 protected: |
| 69 std::string key_param_; | 71 std::string key_param_; |
| 70 | 72 |
| 71 void SetUp() override { | 73 void SetUp() override { |
| 72 std::string key = google_apis::GetAPIKey(); | 74 std::string key = google_apis::GetAPIKey(); |
| 73 if (!key.empty()) { | 75 if (!key.empty()) { |
| 74 key_param_ = base::StringPrintf( | 76 key_param_ = base::StringPrintf( |
| 75 "&key=%s", | 77 "&key=%s", |
| 76 net::EscapeQueryParamValue(key, true).c_str()); | 78 net::EscapeQueryParamValue(key, true).c_str()); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 | 173 |
| 172 TEST_F(SafeBrowsingProtocolManagerTest, TestChunkStrings) { | 174 TEST_F(SafeBrowsingProtocolManagerTest, TestChunkStrings) { |
| 173 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); | 175 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); |
| 174 | 176 |
| 175 // Add and Sub chunks. | 177 // Add and Sub chunks. |
| 176 SBListChunkRanges phish(kDefaultPhishList); | 178 SBListChunkRanges phish(kDefaultPhishList); |
| 177 phish.adds = "1,4,6,8-20,99"; | 179 phish.adds = "1,4,6,8-20,99"; |
| 178 phish.subs = "16,32,64-96"; | 180 phish.subs = "16,32,64-96"; |
| 179 EXPECT_EQ(base::StringPrintf("%s;a:1,4,6,8-20,99:s:16,32,64-96\n", | 181 EXPECT_EQ(base::StringPrintf("%s;a:1,4,6,8-20,99:s:16,32,64-96\n", |
| 180 kDefaultPhishList), | 182 kDefaultPhishList), |
| 181 safe_browsing::FormatList(phish)); | 183 FormatList(phish)); |
| 182 | 184 |
| 183 // Add chunks only. | 185 // Add chunks only. |
| 184 phish.subs = ""; | 186 phish.subs = ""; |
| 185 EXPECT_EQ(base::StringPrintf("%s;a:1,4,6,8-20,99\n", | 187 EXPECT_EQ(base::StringPrintf("%s;a:1,4,6,8-20,99\n", kDefaultPhishList), |
| 186 kDefaultPhishList), | 188 FormatList(phish)); |
| 187 safe_browsing::FormatList(phish)); | |
| 188 | 189 |
| 189 // Sub chunks only. | 190 // Sub chunks only. |
| 190 phish.adds = ""; | 191 phish.adds = ""; |
| 191 phish.subs = "16,32,64-96"; | 192 phish.subs = "16,32,64-96"; |
| 192 EXPECT_EQ(base::StringPrintf("%s;s:16,32,64-96\n", | 193 EXPECT_EQ(base::StringPrintf("%s;s:16,32,64-96\n", kDefaultPhishList), |
| 193 kDefaultPhishList), | 194 FormatList(phish)); |
| 194 safe_browsing::FormatList(phish)); | |
| 195 | 195 |
| 196 // No chunks of either type. | 196 // No chunks of either type. |
| 197 phish.adds = ""; | 197 phish.adds = ""; |
| 198 phish.subs = ""; | 198 phish.subs = ""; |
| 199 EXPECT_EQ(base::StringPrintf("%s;\n", kDefaultPhishList), | 199 EXPECT_EQ(base::StringPrintf("%s;\n", kDefaultPhishList), FormatList(phish)); |
| 200 safe_browsing::FormatList(phish)); | |
| 201 } | 200 } |
| 202 | 201 |
| 203 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashBackOffTimes) { | 202 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashBackOffTimes) { |
| 204 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); | 203 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); |
| 205 | 204 |
| 206 // No errors or back off time yet. | 205 // No errors or back off time yet. |
| 207 EXPECT_EQ(0U, pm->gethash_error_count_); | 206 EXPECT_EQ(0U, pm->gethash_error_count_); |
| 208 EXPECT_TRUE(pm->next_gethash_time_.is_null()); | 207 EXPECT_TRUE(pm->next_gethash_time_.is_null()); |
| 209 | 208 |
| 210 Time now = Time::Now(); | 209 Time now = Time::Now(); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 // Tests the contents of the POST body when there are contents in the | 400 // Tests the contents of the POST body when there are contents in the |
| 402 // local database. This is not exhaustive, as the actual list formatting | 401 // local database. This is not exhaustive, as the actual list formatting |
| 403 // is covered by SafeBrowsingProtocolManagerTest.TestChunkStrings. | 402 // is covered by SafeBrowsingProtocolManagerTest.TestChunkStrings. |
| 404 TEST_F(SafeBrowsingProtocolManagerTest, ExistingDatabase) { | 403 TEST_F(SafeBrowsingProtocolManagerTest, ExistingDatabase) { |
| 405 scoped_refptr<base::TestSimpleTaskRunner> runner( | 404 scoped_refptr<base::TestSimpleTaskRunner> runner( |
| 406 new base::TestSimpleTaskRunner()); | 405 new base::TestSimpleTaskRunner()); |
| 407 base::ThreadTaskRunnerHandle runner_handler(runner); | 406 base::ThreadTaskRunnerHandle runner_handler(runner); |
| 408 net::TestURLFetcherFactory url_fetcher_factory; | 407 net::TestURLFetcherFactory url_fetcher_factory; |
| 409 | 408 |
| 410 std::vector<SBListChunkRanges> ranges; | 409 std::vector<SBListChunkRanges> ranges; |
| 411 SBListChunkRanges range_phish(safe_browsing::kPhishingList); | 410 SBListChunkRanges range_phish(kPhishingList); |
| 412 range_phish.adds = "adds_phish"; | 411 range_phish.adds = "adds_phish"; |
| 413 range_phish.subs = "subs_phish"; | 412 range_phish.subs = "subs_phish"; |
| 414 ranges.push_back(range_phish); | 413 ranges.push_back(range_phish); |
| 415 | 414 |
| 416 SBListChunkRanges range_unknown("unknown_list"); | 415 SBListChunkRanges range_unknown("unknown_list"); |
| 417 range_unknown.adds = "adds_unknown"; | 416 range_unknown.adds = "adds_unknown"; |
| 418 range_unknown.subs = "subs_unknown"; | 417 range_unknown.subs = "subs_unknown"; |
| 419 ranges.push_back(range_unknown); | 418 ranges.push_back(range_unknown); |
| 420 | 419 |
| 421 testing::StrictMock<MockProtocolDelegate> test_delegate; | 420 testing::StrictMock<MockProtocolDelegate> test_delegate; |
| (...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1124 second_chunk_url_fetcher->delegate()->OnURLFetchComplete( | 1123 second_chunk_url_fetcher->delegate()->OnURLFetchComplete( |
| 1125 second_chunk_url_fetcher); | 1124 second_chunk_url_fetcher); |
| 1126 | 1125 |
| 1127 EXPECT_FALSE(pm->IsUpdateScheduled()); | 1126 EXPECT_FALSE(pm->IsUpdateScheduled()); |
| 1128 | 1127 |
| 1129 // Invoke the AddChunksCallback to finish the update. | 1128 // Invoke the AddChunksCallback to finish the update. |
| 1130 runner->RunPendingTasks(); | 1129 runner->RunPendingTasks(); |
| 1131 | 1130 |
| 1132 EXPECT_TRUE(pm->IsUpdateScheduled()); | 1131 EXPECT_TRUE(pm->IsUpdateScheduled()); |
| 1133 } | 1132 } |
| 1133 |
| 1134 } // namespace safe_browsing |
| OLD | NEW |