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

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

Issue 392373002: [safe browsing] Mobile requests different malware and phishing lists. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Change hard-coded default lists for Android tests. Created 6 years, 5 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
OLDNEW
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 18 matching lines...) Expand all
29 namespace { 29 namespace {
30 30
31 const char kUrlPrefix[] = "https://prefix.com/foo"; 31 const char kUrlPrefix[] = "https://prefix.com/foo";
32 const char kBackupConnectUrlPrefix[] = "https://alt1-prefix.com/foo"; 32 const char kBackupConnectUrlPrefix[] = "https://alt1-prefix.com/foo";
33 const char kBackupHttpUrlPrefix[] = "https://alt2-prefix.com/foo"; 33 const char kBackupHttpUrlPrefix[] = "https://alt2-prefix.com/foo";
34 const char kBackupNetworkUrlPrefix[] = "https://alt3-prefix.com/foo"; 34 const char kBackupNetworkUrlPrefix[] = "https://alt3-prefix.com/foo";
35 const char kClient[] = "unittest"; 35 const char kClient[] = "unittest";
36 const char kAppVer[] = "1.0"; 36 const char kAppVer[] = "1.0";
37 const char kAdditionalQuery[] = "additional_query"; 37 const char kAdditionalQuery[] = "additional_query";
38 38
39 #if defined(OS_ANDROID)
40 const char kDefaultPhishList[] = "goog-mobilephish-shavar";
41 const char kDefaultMalwareList[] = "goog-mobilemalware-shavar";
42 #else
43 const char kDefaultPhishList[] = "goog-phish-shavar";
44 const char kDefaultMalwareList[] = "goog-malware-shavar";
45 #endif
46
39 // Add-prefix chunk with single prefix. 47 // Add-prefix chunk with single prefix.
40 const char kRawChunkPayload1[] = { 48 const char kRawChunkPayload1[] = {
41 '\0', '\0', '\0', '\x08', // 32-bit payload length in network byte order. 49 '\0', '\0', '\0', '\x08', // 32-bit payload length in network byte order.
42 '\x08', // field 1, wire format varint 50 '\x08', // field 1, wire format varint
43 '\x03', // chunk_number varint 3 51 '\x03', // chunk_number varint 3
44 '\x22', // field 4, wire format length-delimited 52 '\x22', // field 4, wire format length-delimited
45 '\x04', // varint 4 length 53 '\x04', // varint 4 length
46 'a', 'b', 'c', 'd' // 4-byte prefix 54 'a', 'b', 'c', 'd' // 4-byte prefix
47 }; 55 };
48 const std::string kChunkPayload1(kRawChunkPayload1, sizeof(kRawChunkPayload1)); 56 const std::string kChunkPayload1(kRawChunkPayload1, sizeof(kRawChunkPayload1));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 #endif 95 #endif
88 return scoped_ptr<SafeBrowsingProtocolManager>( 96 return scoped_ptr<SafeBrowsingProtocolManager>(
89 SafeBrowsingProtocolManager::Create(delegate, NULL, config)); 97 SafeBrowsingProtocolManager::Create(delegate, NULL, config));
90 } 98 }
91 99
92 void ValidateUpdateFetcherRequest( 100 void ValidateUpdateFetcherRequest(
93 const net::TestURLFetcher* url_fetcher, 101 const net::TestURLFetcher* url_fetcher,
94 const std::string& expected_prefix) { 102 const std::string& expected_prefix) {
95 ASSERT_TRUE(url_fetcher); 103 ASSERT_TRUE(url_fetcher);
96 EXPECT_EQ(net::LOAD_DISABLE_CACHE, url_fetcher->GetLoadFlags()); 104 EXPECT_EQ(net::LOAD_DISABLE_CACHE, url_fetcher->GetLoadFlags());
97 EXPECT_EQ("goog-phish-shavar;\ngoog-malware-shavar;\n", 105
98 url_fetcher->upload_data()); 106 std::string expected_lists(base::StringPrintf("%s;\n%s;\n",
107 kDefaultPhishList,
108 kDefaultMalwareList));
109 EXPECT_EQ(expected_lists, url_fetcher->upload_data());
99 EXPECT_EQ(GURL(expected_prefix + "/downloads?client=unittest&appver=1.0" 110 EXPECT_EQ(GURL(expected_prefix + "/downloads?client=unittest&appver=1.0"
100 "&pver=3.0" + key_param_), 111 "&pver=3.0" + key_param_),
101 url_fetcher->GetOriginalURL()); 112 url_fetcher->GetOriginalURL());
102 } 113 }
103 114
104 void ValidateUpdateFetcherRequest(const net::TestURLFetcher* url_fetcher) { 115 void ValidateUpdateFetcherRequest(const net::TestURLFetcher* url_fetcher) {
105 ValidateUpdateFetcherRequest(url_fetcher, kUrlPrefix); 116 ValidateUpdateFetcherRequest(url_fetcher, kUrlPrefix);
106 } 117 }
107 118
108 void ValidateRedirectFetcherRequest(const net::TestURLFetcher* url_fetcher, 119 void ValidateRedirectFetcherRequest(const net::TestURLFetcher* url_fetcher,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 172
162 // Received a successful response. 173 // Received a successful response.
163 next = pm->GetNextUpdateInterval(false); 174 next = pm->GetNextUpdateInterval(false);
164 EXPECT_EQ(next, TimeDelta::FromSeconds(1800)); 175 EXPECT_EQ(next, TimeDelta::FromSeconds(1800));
165 } 176 }
166 177
167 TEST_F(SafeBrowsingProtocolManagerTest, TestChunkStrings) { 178 TEST_F(SafeBrowsingProtocolManagerTest, TestChunkStrings) {
168 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); 179 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL));
169 180
170 // Add and Sub chunks. 181 // Add and Sub chunks.
171 SBListChunkRanges phish("goog-phish-shavar"); 182 SBListChunkRanges phish(kDefaultPhishList);
172 phish.adds = "1,4,6,8-20,99"; 183 phish.adds = "1,4,6,8-20,99";
173 phish.subs = "16,32,64-96"; 184 phish.subs = "16,32,64-96";
174 EXPECT_EQ("goog-phish-shavar;a:1,4,6,8-20,99:s:16,32,64-96\n", 185 EXPECT_EQ(base::StringPrintf("%s;a:1,4,6,8-20,99:s:16,32,64-96\n",
186 kDefaultPhishList),
175 safe_browsing::FormatList(phish)); 187 safe_browsing::FormatList(phish));
176 188
177 // Add chunks only. 189 // Add chunks only.
178 phish.subs = ""; 190 phish.subs = "";
179 EXPECT_EQ("goog-phish-shavar;a:1,4,6,8-20,99\n", 191 EXPECT_EQ(base::StringPrintf("%s;a:1,4,6,8-20,99\n",
192 kDefaultPhishList),
180 safe_browsing::FormatList(phish)); 193 safe_browsing::FormatList(phish));
181 194
182 // Sub chunks only. 195 // Sub chunks only.
183 phish.adds = ""; 196 phish.adds = "";
184 phish.subs = "16,32,64-96"; 197 phish.subs = "16,32,64-96";
185 EXPECT_EQ("goog-phish-shavar;s:16,32,64-96\n", 198 EXPECT_EQ(base::StringPrintf("%s;s:16,32,64-96\n",
199 kDefaultPhishList),
186 safe_browsing::FormatList(phish)); 200 safe_browsing::FormatList(phish));
187 201
188 // No chunks of either type. 202 // No chunks of either type.
189 phish.adds = ""; 203 phish.adds = "";
190 phish.subs = ""; 204 phish.subs = "";
191 EXPECT_EQ("goog-phish-shavar;\n", safe_browsing::FormatList(phish)); 205 EXPECT_EQ(base::StringPrintf("%s;\n", kDefaultPhishList),
206 safe_browsing::FormatList(phish));
192 } 207 }
193 208
194 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashBackOffTimes) { 209 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashBackOffTimes) {
195 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); 210 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL));
196 211
197 // No errors or back off time yet. 212 // No errors or back off time yet.
198 EXPECT_EQ(0U, pm->gethash_error_count_); 213 EXPECT_EQ(0U, pm->gethash_error_count_);
199 EXPECT_TRUE(pm->next_gethash_time_.is_null()); 214 EXPECT_TRUE(pm->next_gethash_time_.is_null());
200 215
201 Time now = Time::Now(); 216 Time now = Time::Now();
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 CreateProtocolManager(&test_delegate)); 426 CreateProtocolManager(&test_delegate));
412 427
413 // Kick off initialization. This returns chunks from the DB synchronously. 428 // Kick off initialization. This returns chunks from the DB synchronously.
414 pm->ForceScheduleNextUpdate(TimeDelta()); 429 pm->ForceScheduleNextUpdate(TimeDelta());
415 runner->RunPendingTasks(); 430 runner->RunPendingTasks();
416 431
417 // We should have an URLFetcher at this point in time. 432 // We should have an URLFetcher at this point in time.
418 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0); 433 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0);
419 ASSERT_TRUE(url_fetcher); 434 ASSERT_TRUE(url_fetcher);
420 EXPECT_EQ(net::LOAD_DISABLE_CACHE, url_fetcher->GetLoadFlags()); 435 EXPECT_EQ(net::LOAD_DISABLE_CACHE, url_fetcher->GetLoadFlags());
421 EXPECT_EQ("goog-phish-shavar;a:adds_phish:s:subs_phish\n" 436 EXPECT_EQ(base::StringPrintf("%s;a:adds_phish:s:subs_phish\n"
422 "unknown_list;a:adds_unknown:s:subs_unknown\n" 437 "unknown_list;a:adds_unknown:s:subs_unknown\n"
423 "goog-malware-shavar;\n", 438 "%s;\n",
439 kDefaultPhishList, kDefaultMalwareList),
424 url_fetcher->upload_data()); 440 url_fetcher->upload_data());
425 EXPECT_EQ(GURL("https://prefix.com/foo/downloads?client=unittest&appver=1.0" 441 EXPECT_EQ(GURL("https://prefix.com/foo/downloads?client=unittest&appver=1.0"
426 "&pver=3.0" + key_param_), 442 "&pver=3.0" + key_param_),
427 url_fetcher->GetOriginalURL()); 443 url_fetcher->GetOriginalURL());
428 444
429 url_fetcher->set_status(net::URLRequestStatus()); 445 url_fetcher->set_status(net::URLRequestStatus());
430 url_fetcher->set_response_code(200); 446 url_fetcher->set_response_code(200);
431 url_fetcher->SetResponseString(std::string()); 447 url_fetcher->SetResponseString(std::string());
432 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); 448 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
433 449
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 // Kick off initialization. This returns chunks from the DB synchronously. 936 // Kick off initialization. This returns chunks from the DB synchronously.
921 pm->ForceScheduleNextUpdate(TimeDelta()); 937 pm->ForceScheduleNextUpdate(TimeDelta());
922 runner->RunPendingTasks(); 938 runner->RunPendingTasks();
923 939
924 // The update response contains a single redirect command. 940 // The update response contains a single redirect command.
925 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0); 941 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0);
926 ValidateUpdateFetcherRequest(url_fetcher); 942 ValidateUpdateFetcherRequest(url_fetcher);
927 url_fetcher->set_status(net::URLRequestStatus()); 943 url_fetcher->set_status(net::URLRequestStatus());
928 url_fetcher->set_response_code(200); 944 url_fetcher->set_response_code(200);
929 url_fetcher->SetResponseString( 945 url_fetcher->SetResponseString(
930 "i:goog-phish-shavar\n" 946 base::StringPrintf("i:%s\n"
931 "u:redirect-server.example.com/path\n"); 947 "u:redirect-server.example.com/path\n",
948 kDefaultPhishList));
932 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); 949 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
933 950
934 // The redirect response contains an empty body. 951 // The redirect response contains an empty body.
935 net::TestURLFetcher* chunk_url_fetcher = 952 net::TestURLFetcher* chunk_url_fetcher =
936 url_fetcher_factory.GetFetcherByID(1); 953 url_fetcher_factory.GetFetcherByID(1);
937 ValidateRedirectFetcherRequest( 954 ValidateRedirectFetcherRequest(
938 chunk_url_fetcher, "https://redirect-server.example.com/path"); 955 chunk_url_fetcher, "https://redirect-server.example.com/path");
939 chunk_url_fetcher->set_status(net::URLRequestStatus()); 956 chunk_url_fetcher->set_status(net::URLRequestStatus());
940 chunk_url_fetcher->set_response_code(200); 957 chunk_url_fetcher->set_response_code(200);
941 chunk_url_fetcher->SetResponseString(std::string()); 958 chunk_url_fetcher->SetResponseString(std::string());
(...skipping 24 matching lines...) Expand all
966 // Kick off initialization. This returns chunks from the DB synchronously. 983 // Kick off initialization. This returns chunks from the DB synchronously.
967 pm->ForceScheduleNextUpdate(TimeDelta()); 984 pm->ForceScheduleNextUpdate(TimeDelta());
968 runner->RunPendingTasks(); 985 runner->RunPendingTasks();
969 986
970 // The update response contains a single redirect command. 987 // The update response contains a single redirect command.
971 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0); 988 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0);
972 ValidateUpdateFetcherRequest(url_fetcher); 989 ValidateUpdateFetcherRequest(url_fetcher);
973 url_fetcher->set_status(net::URLRequestStatus()); 990 url_fetcher->set_status(net::URLRequestStatus());
974 url_fetcher->set_response_code(200); 991 url_fetcher->set_response_code(200);
975 url_fetcher->SetResponseString( 992 url_fetcher->SetResponseString(
976 "i:goog-phish-shavar\n" 993 base::StringPrintf("i:%s\n"
977 "u:redirect-server.example.com/path\n"); 994 "u:redirect-server.example.com/path\n",
995 kDefaultPhishList));
978 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); 996 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
979 997
980 // The redirect response contains an invalid body. 998 // The redirect response contains an invalid body.
981 net::TestURLFetcher* chunk_url_fetcher = 999 net::TestURLFetcher* chunk_url_fetcher =
982 url_fetcher_factory.GetFetcherByID(1); 1000 url_fetcher_factory.GetFetcherByID(1);
983 ValidateRedirectFetcherRequest( 1001 ValidateRedirectFetcherRequest(
984 chunk_url_fetcher, "https://redirect-server.example.com/path"); 1002 chunk_url_fetcher, "https://redirect-server.example.com/path");
985 chunk_url_fetcher->set_status(net::URLRequestStatus()); 1003 chunk_url_fetcher->set_status(net::URLRequestStatus());
986 chunk_url_fetcher->set_response_code(200); 1004 chunk_url_fetcher->set_response_code(200);
987 chunk_url_fetcher->SetResponseString("THIS IS AN INVALID RESPONSE"); 1005 chunk_url_fetcher->SetResponseString("THIS IS AN INVALID RESPONSE");
988 chunk_url_fetcher->delegate()->OnURLFetchComplete(chunk_url_fetcher); 1006 chunk_url_fetcher->delegate()->OnURLFetchComplete(chunk_url_fetcher);
989 1007
990 EXPECT_TRUE(pm->IsUpdateScheduled()); 1008 EXPECT_TRUE(pm->IsUpdateScheduled());
991 } 1009 }
992 1010
993 // Tests a single valid update response, followed by a single redirect response 1011 // Tests a single valid update response, followed by a single redirect response
994 // containing chunks. 1012 // containing chunks.
995 TEST_F(SafeBrowsingProtocolManagerTest, SingleRedirectResponseWithChunks) { 1013 TEST_F(SafeBrowsingProtocolManagerTest, SingleRedirectResponseWithChunks) {
996 scoped_refptr<base::TestSimpleTaskRunner> runner( 1014 scoped_refptr<base::TestSimpleTaskRunner> runner(
997 new base::TestSimpleTaskRunner()); 1015 new base::TestSimpleTaskRunner());
998 base::ThreadTaskRunnerHandle runner_handler(runner); 1016 base::ThreadTaskRunnerHandle runner_handler(runner);
999 net::TestURLFetcherFactory url_fetcher_factory; 1017 net::TestURLFetcherFactory url_fetcher_factory;
1000 1018
1001 testing::StrictMock<MockProtocolDelegate> test_delegate; 1019 testing::StrictMock<MockProtocolDelegate> test_delegate;
1002 EXPECT_CALL(test_delegate, UpdateStarted()).Times(1); 1020 EXPECT_CALL(test_delegate, UpdateStarted()).Times(1);
1003 EXPECT_CALL(test_delegate, GetChunks(_)).WillOnce( 1021 EXPECT_CALL(test_delegate, GetChunks(_)).WillOnce(
1004 Invoke(testing::CreateFunctor(InvokeGetChunksCallback, 1022 Invoke(testing::CreateFunctor(InvokeGetChunksCallback,
1005 std::vector<SBListChunkRanges>(), 1023 std::vector<SBListChunkRanges>(),
1006 false))); 1024 false)));
1007 EXPECT_CALL(test_delegate, AddChunksRaw("goog-phish-shavar", _, _)).WillOnce( 1025 EXPECT_CALL(test_delegate, AddChunksRaw(kDefaultPhishList, _, _)).WillOnce(
1008 Invoke(HandleAddChunks)); 1026 Invoke(HandleAddChunks));
1009 EXPECT_CALL(test_delegate, UpdateFinished(true)).Times(1); 1027 EXPECT_CALL(test_delegate, UpdateFinished(true)).Times(1);
1010 1028
1011 scoped_ptr<SafeBrowsingProtocolManager> pm( 1029 scoped_ptr<SafeBrowsingProtocolManager> pm(
1012 CreateProtocolManager(&test_delegate)); 1030 CreateProtocolManager(&test_delegate));
1013 1031
1014 // Kick off initialization. This returns chunks from the DB synchronously. 1032 // Kick off initialization. This returns chunks from the DB synchronously.
1015 pm->ForceScheduleNextUpdate(TimeDelta()); 1033 pm->ForceScheduleNextUpdate(TimeDelta());
1016 runner->RunPendingTasks(); 1034 runner->RunPendingTasks();
1017 1035
1018 // The update response contains a single redirect command. 1036 // The update response contains a single redirect command.
1019 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0); 1037 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0);
1020 ValidateUpdateFetcherRequest(url_fetcher); 1038 ValidateUpdateFetcherRequest(url_fetcher);
1021 url_fetcher->set_status(net::URLRequestStatus()); 1039 url_fetcher->set_status(net::URLRequestStatus());
1022 url_fetcher->set_response_code(200); 1040 url_fetcher->set_response_code(200);
1023 url_fetcher->SetResponseString( 1041 url_fetcher->SetResponseString(
1024 "i:goog-phish-shavar\n" 1042 base::StringPrintf("i:%s\n"
1025 "u:redirect-server.example.com/path\n"); 1043 "u:redirect-server.example.com/path\n",
1044 kDefaultPhishList));
1026 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); 1045 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
1027 1046
1028 // The redirect response contains a single chunk. 1047 // The redirect response contains a single chunk.
1029 net::TestURLFetcher* chunk_url_fetcher = 1048 net::TestURLFetcher* chunk_url_fetcher =
1030 url_fetcher_factory.GetFetcherByID(1); 1049 url_fetcher_factory.GetFetcherByID(1);
1031 ValidateRedirectFetcherRequest( 1050 ValidateRedirectFetcherRequest(
1032 chunk_url_fetcher, "https://redirect-server.example.com/path"); 1051 chunk_url_fetcher, "https://redirect-server.example.com/path");
1033 chunk_url_fetcher->set_status(net::URLRequestStatus()); 1052 chunk_url_fetcher->set_status(net::URLRequestStatus());
1034 chunk_url_fetcher->set_response_code(200); 1053 chunk_url_fetcher->set_response_code(200);
1035 chunk_url_fetcher->SetResponseString(kChunkPayload1); 1054 chunk_url_fetcher->SetResponseString(kChunkPayload1);
(...skipping 14 matching lines...) Expand all
1050 new base::TestSimpleTaskRunner()); 1069 new base::TestSimpleTaskRunner());
1051 base::ThreadTaskRunnerHandle runner_handler(runner); 1070 base::ThreadTaskRunnerHandle runner_handler(runner);
1052 net::TestURLFetcherFactory url_fetcher_factory; 1071 net::TestURLFetcherFactory url_fetcher_factory;
1053 1072
1054 testing::StrictMock<MockProtocolDelegate> test_delegate; 1073 testing::StrictMock<MockProtocolDelegate> test_delegate;
1055 EXPECT_CALL(test_delegate, UpdateStarted()).Times(1); 1074 EXPECT_CALL(test_delegate, UpdateStarted()).Times(1);
1056 EXPECT_CALL(test_delegate, GetChunks(_)).WillOnce( 1075 EXPECT_CALL(test_delegate, GetChunks(_)).WillOnce(
1057 Invoke(testing::CreateFunctor(InvokeGetChunksCallback, 1076 Invoke(testing::CreateFunctor(InvokeGetChunksCallback,
1058 std::vector<SBListChunkRanges>(), 1077 std::vector<SBListChunkRanges>(),
1059 false))); 1078 false)));
1060 EXPECT_CALL(test_delegate, AddChunksRaw("goog-phish-shavar", _, _)). 1079 EXPECT_CALL(test_delegate, AddChunksRaw(kDefaultPhishList, _, _)).
1061 WillRepeatedly(Invoke(HandleAddChunks)); 1080 WillRepeatedly(Invoke(HandleAddChunks));
1062 EXPECT_CALL(test_delegate, UpdateFinished(true)).Times(1); 1081 EXPECT_CALL(test_delegate, UpdateFinished(true)).Times(1);
1063 1082
1064 scoped_ptr<SafeBrowsingProtocolManager> pm( 1083 scoped_ptr<SafeBrowsingProtocolManager> pm(
1065 CreateProtocolManager(&test_delegate)); 1084 CreateProtocolManager(&test_delegate));
1066 1085
1067 // Kick off initialization. This returns chunks from the DB synchronously. 1086 // Kick off initialization. This returns chunks from the DB synchronously.
1068 pm->ForceScheduleNextUpdate(TimeDelta()); 1087 pm->ForceScheduleNextUpdate(TimeDelta());
1069 runner->RunPendingTasks(); 1088 runner->RunPendingTasks();
1070 1089
1071 // The update response contains multiple redirect commands. 1090 // The update response contains multiple redirect commands.
1072 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0); 1091 net::TestURLFetcher* url_fetcher = url_fetcher_factory.GetFetcherByID(0);
1073 ValidateUpdateFetcherRequest(url_fetcher); 1092 ValidateUpdateFetcherRequest(url_fetcher);
1074 url_fetcher->set_status(net::URLRequestStatus()); 1093 url_fetcher->set_status(net::URLRequestStatus());
1075 url_fetcher->set_response_code(200); 1094 url_fetcher->set_response_code(200);
1076 url_fetcher->SetResponseString( 1095 url_fetcher->SetResponseString(
1077 "i:goog-phish-shavar\n" 1096 base::StringPrintf("i:%s\n"
1078 "u:redirect-server.example.com/one\n" 1097 "u:redirect-server.example.com/one\n"
1079 "u:redirect-server.example.com/two\n"); 1098 "u:redirect-server.example.com/two\n",
1099 kDefaultPhishList));
1080 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); 1100 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
1081 1101
1082 // The first redirect response contains a single chunk. 1102 // The first redirect response contains a single chunk.
1083 net::TestURLFetcher* first_chunk_url_fetcher = 1103 net::TestURLFetcher* first_chunk_url_fetcher =
1084 url_fetcher_factory.GetFetcherByID(1); 1104 url_fetcher_factory.GetFetcherByID(1);
1085 ValidateRedirectFetcherRequest( 1105 ValidateRedirectFetcherRequest(
1086 first_chunk_url_fetcher, "https://redirect-server.example.com/one"); 1106 first_chunk_url_fetcher, "https://redirect-server.example.com/one");
1087 first_chunk_url_fetcher->set_status(net::URLRequestStatus()); 1107 first_chunk_url_fetcher->set_status(net::URLRequestStatus());
1088 first_chunk_url_fetcher->set_response_code(200); 1108 first_chunk_url_fetcher->set_response_code(200);
1089 first_chunk_url_fetcher->SetResponseString(kChunkPayload1); 1109 first_chunk_url_fetcher->SetResponseString(kChunkPayload1);
(...skipping 16 matching lines...) Expand all
1106 second_chunk_url_fetcher->delegate()->OnURLFetchComplete( 1126 second_chunk_url_fetcher->delegate()->OnURLFetchComplete(
1107 second_chunk_url_fetcher); 1127 second_chunk_url_fetcher);
1108 1128
1109 EXPECT_FALSE(pm->IsUpdateScheduled()); 1129 EXPECT_FALSE(pm->IsUpdateScheduled());
1110 1130
1111 // Invoke the AddChunksCallback to finish the update. 1131 // Invoke the AddChunksCallback to finish the update.
1112 runner->RunPendingTasks(); 1132 runner->RunPendingTasks();
1113 1133
1114 EXPECT_TRUE(pm->IsUpdateScheduled()); 1134 EXPECT_TRUE(pm->IsUpdateScheduled());
1115 } 1135 }
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/database_manager.cc ('k') | chrome/browser/safe_browsing/protocol_parser_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698