| OLD | NEW |
| 1 // Copyright (c) 2010 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 <list> | 5 #include <list> |
| 6 | 6 |
| 7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "base/test/test_timeouts.h" | 8 #include "base/test/test_timeouts.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/autofill/autofill_download.h" | 10 #include "chrome/browser/autofill/autofill_download.h" |
| 11 #include "chrome/browser/autofill/autofill_metrics.h" | 11 #include "chrome/browser/autofill/autofill_metrics.h" |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 "<field autofilltype=\"33\" />" | 212 "<field autofilltype=\"33\" />" |
| 213 "</autofillqueryresponse>", | 213 "</autofillqueryresponse>", |
| 214 "<autofilluploadresponse positiveuploadrate=\"0.5\" " | 214 "<autofilluploadresponse positiveuploadrate=\"0.5\" " |
| 215 "negativeuploadrate=\"0.3\"/>", | 215 "negativeuploadrate=\"0.3\"/>", |
| 216 "<html></html>", | 216 "<html></html>", |
| 217 }; | 217 }; |
| 218 | 218 |
| 219 // Return them out of sequence. | 219 // Return them out of sequence. |
| 220 TestURLFetcher* fetcher = factory.GetFetcherByID(1); | 220 TestURLFetcher* fetcher = factory.GetFetcherByID(1); |
| 221 ASSERT_TRUE(fetcher); | 221 ASSERT_TRUE(fetcher); |
| 222 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), URLRequestStatus(), | 222 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), |
| 223 net::URLRequestStatus(), |
| 223 200, ResponseCookies(), | 224 200, ResponseCookies(), |
| 224 std::string(responses[1])); | 225 std::string(responses[1])); |
| 225 // After that upload rates would be adjusted to 0.5/0.3 | 226 // After that upload rates would be adjusted to 0.5/0.3 |
| 226 EXPECT_DOUBLE_EQ(0.5, helper.download_manager.GetPositiveUploadRate()); | 227 EXPECT_DOUBLE_EQ(0.5, helper.download_manager.GetPositiveUploadRate()); |
| 227 EXPECT_DOUBLE_EQ(0.3, helper.download_manager.GetNegativeUploadRate()); | 228 EXPECT_DOUBLE_EQ(0.3, helper.download_manager.GetNegativeUploadRate()); |
| 228 | 229 |
| 229 fetcher = factory.GetFetcherByID(2); | 230 fetcher = factory.GetFetcherByID(2); |
| 230 ASSERT_TRUE(fetcher); | 231 ASSERT_TRUE(fetcher); |
| 231 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), URLRequestStatus(), | 232 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), |
| 233 net::URLRequestStatus(), |
| 232 404, ResponseCookies(), | 234 404, ResponseCookies(), |
| 233 std::string(responses[2])); | 235 std::string(responses[2])); |
| 234 fetcher = factory.GetFetcherByID(0); | 236 fetcher = factory.GetFetcherByID(0); |
| 235 ASSERT_TRUE(fetcher); | 237 ASSERT_TRUE(fetcher); |
| 236 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), URLRequestStatus(), | 238 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), |
| 239 net::URLRequestStatus(), |
| 237 200, ResponseCookies(), | 240 200, ResponseCookies(), |
| 238 std::string(responses[0])); | 241 std::string(responses[0])); |
| 239 EXPECT_EQ(static_cast<size_t>(3), helper.responses_.size()); | 242 EXPECT_EQ(static_cast<size_t>(3), helper.responses_.size()); |
| 240 | 243 |
| 241 EXPECT_EQ(AutoFillDownloadTestHelper::UPLOAD_SUCCESSFULL, | 244 EXPECT_EQ(AutoFillDownloadTestHelper::UPLOAD_SUCCESSFULL, |
| 242 helper.responses_.front().type_of_response); | 245 helper.responses_.front().type_of_response); |
| 243 EXPECT_EQ(0, helper.responses_.front().error); | 246 EXPECT_EQ(0, helper.responses_.front().error); |
| 244 EXPECT_EQ(std::string(), helper.responses_.front().signature); | 247 EXPECT_EQ(std::string(), helper.responses_.front().signature); |
| 245 // Expected response on non-query request is an empty string. | 248 // Expected response on non-query request is an empty string. |
| 246 EXPECT_EQ(std::string(), helper.responses_.front().response); | 249 EXPECT_EQ(std::string(), helper.responses_.front().response); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 274 EXPECT_EQ(NULL, fetcher); | 277 EXPECT_EQ(NULL, fetcher); |
| 275 | 278 |
| 276 // Request with id 3. | 279 // Request with id 3. |
| 277 EXPECT_CALL(mock_metric_logger, Log(AutoFillMetrics::QUERY_SENT)).Times(1); | 280 EXPECT_CALL(mock_metric_logger, Log(AutoFillMetrics::QUERY_SENT)).Times(1); |
| 278 EXPECT_TRUE(helper.download_manager.StartQueryRequest(form_structures, | 281 EXPECT_TRUE(helper.download_manager.StartQueryRequest(form_structures, |
| 279 mock_metric_logger)); | 282 mock_metric_logger)); |
| 280 fetcher = factory.GetFetcherByID(3); | 283 fetcher = factory.GetFetcherByID(3); |
| 281 ASSERT_TRUE(fetcher); | 284 ASSERT_TRUE(fetcher); |
| 282 fetcher->set_backoff_delay( | 285 fetcher->set_backoff_delay( |
| 283 base::TimeDelta::FromMilliseconds(TestTimeouts::action_max_timeout_ms())); | 286 base::TimeDelta::FromMilliseconds(TestTimeouts::action_max_timeout_ms())); |
| 284 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), URLRequestStatus(), | 287 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), |
| 288 net::URLRequestStatus(), |
| 285 500, ResponseCookies(), | 289 500, ResponseCookies(), |
| 286 std::string(responses[0])); | 290 std::string(responses[0])); |
| 287 EXPECT_EQ(AutoFillDownloadTestHelper::REQUEST_QUERY_FAILED, | 291 EXPECT_EQ(AutoFillDownloadTestHelper::REQUEST_QUERY_FAILED, |
| 288 helper.responses_.front().type_of_response); | 292 helper.responses_.front().type_of_response); |
| 289 EXPECT_EQ(500, helper.responses_.front().error); | 293 EXPECT_EQ(500, helper.responses_.front().error); |
| 290 // Expected response on non-query request is an empty string. | 294 // Expected response on non-query request is an empty string. |
| 291 EXPECT_EQ(std::string(), helper.responses_.front().response); | 295 EXPECT_EQ(std::string(), helper.responses_.front().response); |
| 292 helper.responses_.pop_front(); | 296 helper.responses_.pop_front(); |
| 293 | 297 |
| 294 // Query requests should be ignored for the next 10 seconds. | 298 // Query requests should be ignored for the next 10 seconds. |
| 295 EXPECT_CALL(mock_metric_logger, Log(AutoFillMetrics::QUERY_SENT)).Times(0); | 299 EXPECT_CALL(mock_metric_logger, Log(AutoFillMetrics::QUERY_SENT)).Times(0); |
| 296 EXPECT_FALSE(helper.download_manager.StartQueryRequest(form_structures, | 300 EXPECT_FALSE(helper.download_manager.StartQueryRequest(form_structures, |
| 297 mock_metric_logger)); | 301 mock_metric_logger)); |
| 298 fetcher = factory.GetFetcherByID(4); | 302 fetcher = factory.GetFetcherByID(4); |
| 299 EXPECT_EQ(NULL, fetcher); | 303 EXPECT_EQ(NULL, fetcher); |
| 300 | 304 |
| 301 // Set upload to 100% so requests happen. | 305 // Set upload to 100% so requests happen. |
| 302 helper.download_manager.SetPositiveUploadRate(1.0); | 306 helper.download_manager.SetPositiveUploadRate(1.0); |
| 303 // Request with id 4. | 307 // Request with id 4. |
| 304 EXPECT_TRUE(helper.download_manager.StartUploadRequest(*(form_structures[0]), | 308 EXPECT_TRUE(helper.download_manager.StartUploadRequest(*(form_structures[0]), |
| 305 true)); | 309 true)); |
| 306 fetcher = factory.GetFetcherByID(4); | 310 fetcher = factory.GetFetcherByID(4); |
| 307 ASSERT_TRUE(fetcher); | 311 ASSERT_TRUE(fetcher); |
| 308 fetcher->set_backoff_delay( | 312 fetcher->set_backoff_delay( |
| 309 base::TimeDelta::FromMilliseconds(TestTimeouts::action_max_timeout_ms())); | 313 base::TimeDelta::FromMilliseconds(TestTimeouts::action_max_timeout_ms())); |
| 310 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), URLRequestStatus(), | 314 fetcher->delegate()->OnURLFetchComplete(fetcher, GURL(), |
| 315 net::URLRequestStatus(), |
| 311 503, ResponseCookies(), | 316 503, ResponseCookies(), |
| 312 std::string(responses[2])); | 317 std::string(responses[2])); |
| 313 EXPECT_EQ(AutoFillDownloadTestHelper::REQUEST_UPLOAD_FAILED, | 318 EXPECT_EQ(AutoFillDownloadTestHelper::REQUEST_UPLOAD_FAILED, |
| 314 helper.responses_.front().type_of_response); | 319 helper.responses_.front().type_of_response); |
| 315 EXPECT_EQ(503, helper.responses_.front().error); | 320 EXPECT_EQ(503, helper.responses_.front().error); |
| 316 helper.responses_.pop_front(); | 321 helper.responses_.pop_front(); |
| 317 | 322 |
| 318 // Upload requests should be ignored for the next 10 seconds. | 323 // Upload requests should be ignored for the next 10 seconds. |
| 319 EXPECT_FALSE(helper.download_manager.StartUploadRequest(*(form_structures[0]), | 324 EXPECT_FALSE(helper.download_manager.StartUploadRequest(*(form_structures[0]), |
| 320 true)); | 325 true)); |
| 321 fetcher = factory.GetFetcherByID(5); | 326 fetcher = factory.GetFetcherByID(5); |
| 322 EXPECT_EQ(NULL, fetcher); | 327 EXPECT_EQ(NULL, fetcher); |
| 323 | 328 |
| 324 // Make sure consumer of URLFetcher does the right thing. | 329 // Make sure consumer of URLFetcher does the right thing. |
| 325 URLFetcher::set_factory(NULL); | 330 URLFetcher::set_factory(NULL); |
| 326 } | 331 } |
| OLD | NEW |