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

Side by Side Diff: chrome/browser/autofill/autofill_download_unittest.cc

Issue 10581012: Move test_url_fetcher_factory.* from content/ to net/url_request (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove export annotations Created 8 years, 6 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 #include <list> 5 #include <list>
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/test/test_timeouts.h" 9 #include "base/test/test_timeouts.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/autofill/autofill_download.h" 11 #include "chrome/browser/autofill/autofill_download.h"
12 #include "chrome/browser/autofill/autofill_field.h" 12 #include "chrome/browser/autofill/autofill_field.h"
13 #include "chrome/browser/autofill/autofill_metrics.h" 13 #include "chrome/browser/autofill/autofill_metrics.h"
14 #include "chrome/browser/autofill/autofill_type.h" 14 #include "chrome/browser/autofill/autofill_type.h"
15 #include "chrome/browser/autofill/form_structure.h" 15 #include "chrome/browser/autofill/form_structure.h"
16 #include "chrome/test/base/testing_browser_process.h" 16 #include "chrome/test/base/testing_browser_process.h"
17 #include "chrome/test/base/testing_profile.h" 17 #include "chrome/test/base/testing_profile.h"
18 #include "content/public/test/test_browser_thread.h" 18 #include "content/public/test/test_browser_thread.h"
19 #include "content/public/test/test_url_fetcher_factory.h" 19 #include "net/url_request/test_url_fetcher_factory.h"
20 #include "net/url_request/url_request_status.h" 20 #include "net/url_request/url_request_status.h"
21 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputElement.h" 23 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputElement.h"
24 #include "webkit/forms/form_data.h" 24 #include "webkit/forms/form_data.h"
25 25
26 using content::BrowserThread; 26 using content::BrowserThread;
27 using webkit::forms::FormData; 27 using webkit::forms::FormData;
28 using webkit::forms::FormField; 28 using webkit::forms::FormField;
29 using WebKit::WebInputElement; 29 using WebKit::WebInputElement;
30 30
31 namespace { 31 namespace {
32 32
33 class MockAutofillMetrics : public AutofillMetrics { 33 class MockAutofillMetrics : public AutofillMetrics {
34 public: 34 public:
35 MockAutofillMetrics() {} 35 MockAutofillMetrics() {}
36 MOCK_CONST_METHOD1(LogServerQueryMetric, void(ServerQueryMetric metric)); 36 MOCK_CONST_METHOD1(LogServerQueryMetric, void(ServerQueryMetric metric));
37 37
38 private: 38 private:
39 DISALLOW_COPY_AND_ASSIGN(MockAutofillMetrics); 39 DISALLOW_COPY_AND_ASSIGN(MockAutofillMetrics);
40 }; 40 };
41 41
42 // Call |fetcher->OnURLFetchComplete()| as the URLFetcher would when 42 // Call |fetcher->OnURLFetchComplete()| as the URLFetcher would when
43 // a response is received. Params allow caller to set fake status. 43 // a response is received. Params allow caller to set fake status.
44 void FakeOnURLFetchComplete(TestURLFetcher* fetcher, 44 void FakeOnURLFetchComplete(net::TestURLFetcher* fetcher,
45 int response_code, 45 int response_code,
46 const std::string& response_body) { 46 const std::string& response_body) {
47 fetcher->set_url(GURL()); 47 fetcher->set_url(GURL());
48 fetcher->set_status(net::URLRequestStatus()); 48 fetcher->set_status(net::URLRequestStatus());
49 fetcher->set_response_code(response_code); 49 fetcher->set_response_code(response_code);
50 fetcher->SetResponseString(response_body); 50 fetcher->SetResponseString(response_body);
51 51
52 fetcher->delegate()->OnURLFetchComplete(fetcher); 52 fetcher->delegate()->OnURLFetchComplete(fetcher);
53 } 53 }
54 54
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 AutofillDownloadManager download_manager_; 133 AutofillDownloadManager download_manager_;
134 134
135 private: 135 private:
136 // The profile's request context must be released on the IO thread. 136 // The profile's request context must be released on the IO thread.
137 content::TestBrowserThread io_thread_; 137 content::TestBrowserThread io_thread_;
138 }; 138 };
139 139
140 TEST_F(AutofillDownloadTest, QueryAndUploadTest) { 140 TEST_F(AutofillDownloadTest, QueryAndUploadTest) {
141 MessageLoopForUI message_loop; 141 MessageLoopForUI message_loop;
142 // Create and register factory. 142 // Create and register factory.
143 TestURLFetcherFactory factory; 143 net::TestURLFetcherFactory factory;
144 144
145 FormData form; 145 FormData form;
146 form.method = ASCIIToUTF16("post"); 146 form.method = ASCIIToUTF16("post");
147 147
148 FormField field; 148 FormField field;
149 field.label = ASCIIToUTF16("username"); 149 field.label = ASCIIToUTF16("username");
150 field.name = ASCIIToUTF16("username"); 150 field.name = ASCIIToUTF16("username");
151 field.form_control_type = ASCIIToUTF16("text"); 151 field.form_control_type = ASCIIToUTF16("text");
152 form.fields.push_back(field); 152 form.fields.push_back(field);
153 153
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 "<field autofilltype=\"30\" />" 236 "<field autofilltype=\"30\" />"
237 "<field autofilltype=\"31\" />" 237 "<field autofilltype=\"31\" />"
238 "<field autofilltype=\"33\" />" 238 "<field autofilltype=\"33\" />"
239 "</autofillqueryresponse>", 239 "</autofillqueryresponse>",
240 "<autofilluploadresponse positiveuploadrate=\"0.5\" " 240 "<autofilluploadresponse positiveuploadrate=\"0.5\" "
241 "negativeuploadrate=\"0.3\"/>", 241 "negativeuploadrate=\"0.3\"/>",
242 "<html></html>", 242 "<html></html>",
243 }; 243 };
244 244
245 // Return them out of sequence. 245 // Return them out of sequence.
246 TestURLFetcher* fetcher = factory.GetFetcherByID(1); 246 net::TestURLFetcher* fetcher = factory.GetFetcherByID(1);
247 ASSERT_TRUE(fetcher); 247 ASSERT_TRUE(fetcher);
248 FakeOnURLFetchComplete(fetcher, 200, std::string(responses[1])); 248 FakeOnURLFetchComplete(fetcher, 200, std::string(responses[1]));
249 249
250 // After that upload rates would be adjusted to 0.5/0.3 250 // After that upload rates would be adjusted to 0.5/0.3
251 EXPECT_DOUBLE_EQ(0.5, download_manager_.GetPositiveUploadRate()); 251 EXPECT_DOUBLE_EQ(0.5, download_manager_.GetPositiveUploadRate());
252 EXPECT_DOUBLE_EQ(0.3, download_manager_.GetNegativeUploadRate()); 252 EXPECT_DOUBLE_EQ(0.3, download_manager_.GetNegativeUploadRate());
253 253
254 fetcher = factory.GetFetcherByID(2); 254 fetcher = factory.GetFetcherByID(2);
255 ASSERT_TRUE(fetcher); 255 ASSERT_TRUE(fetcher);
256 FakeOnURLFetchComplete(fetcher, 404, std::string(responses[2])); 256 FakeOnURLFetchComplete(fetcher, 404, std::string(responses[2]));
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 // Upload requests should be ignored for the next 10 seconds. 347 // Upload requests should be ignored for the next 10 seconds.
348 EXPECT_FALSE(download_manager_.StartUploadRequest( 348 EXPECT_FALSE(download_manager_.StartUploadRequest(
349 *(form_structures[0]), true, FieldTypeSet())); 349 *(form_structures[0]), true, FieldTypeSet()));
350 fetcher = factory.GetFetcherByID(5); 350 fetcher = factory.GetFetcherByID(5);
351 EXPECT_EQ(NULL, fetcher); 351 EXPECT_EQ(NULL, fetcher);
352 } 352 }
353 353
354 TEST_F(AutofillDownloadTest, CacheQueryTest) { 354 TEST_F(AutofillDownloadTest, CacheQueryTest) {
355 MessageLoopForUI message_loop; 355 MessageLoopForUI message_loop;
356 // Create and register factory. 356 // Create and register factory.
357 TestURLFetcherFactory factory; 357 net::TestURLFetcherFactory factory;
358 358
359 FormData form; 359 FormData form;
360 form.method = ASCIIToUTF16("post"); 360 form.method = ASCIIToUTF16("post");
361 361
362 FormField field; 362 FormField field;
363 field.form_control_type = ASCIIToUTF16("text"); 363 field.form_control_type = ASCIIToUTF16("text");
364 364
365 field.label = ASCIIToUTF16("username"); 365 field.label = ASCIIToUTF16("username");
366 field.name = ASCIIToUTF16("username"); 366 field.name = ASCIIToUTF16("username");
367 form.fields.push_back(field); 367 form.fields.push_back(field);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 421
422 // Request with id 0. 422 // Request with id 0.
423 MockAutofillMetrics mock_metric_logger; 423 MockAutofillMetrics mock_metric_logger;
424 EXPECT_CALL(mock_metric_logger, 424 EXPECT_CALL(mock_metric_logger,
425 LogServerQueryMetric(AutofillMetrics::QUERY_SENT)).Times(1); 425 LogServerQueryMetric(AutofillMetrics::QUERY_SENT)).Times(1);
426 EXPECT_TRUE(download_manager_.StartQueryRequest(form_structures0.get(), 426 EXPECT_TRUE(download_manager_.StartQueryRequest(form_structures0.get(),
427 mock_metric_logger)); 427 mock_metric_logger));
428 // No responses yet 428 // No responses yet
429 EXPECT_EQ(static_cast<size_t>(0), responses_.size()); 429 EXPECT_EQ(static_cast<size_t>(0), responses_.size());
430 430
431 TestURLFetcher* fetcher = factory.GetFetcherByID(0); 431 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
432 ASSERT_TRUE(fetcher); 432 ASSERT_TRUE(fetcher);
433 FakeOnURLFetchComplete(fetcher, 200, std::string(responses[0])); 433 FakeOnURLFetchComplete(fetcher, 200, std::string(responses[0]));
434 ASSERT_EQ(static_cast<size_t>(1), responses_.size()); 434 ASSERT_EQ(static_cast<size_t>(1), responses_.size());
435 EXPECT_EQ(responses[0], responses_.front().response); 435 EXPECT_EQ(responses[0], responses_.front().response);
436 436
437 responses_.clear(); 437 responses_.clear();
438 438
439 // No actual request - should be a cache hit. 439 // No actual request - should be a cache hit.
440 EXPECT_CALL(mock_metric_logger, 440 EXPECT_CALL(mock_metric_logger,
441 LogServerQueryMetric(AutofillMetrics::QUERY_SENT)).Times(1); 441 LogServerQueryMetric(AutofillMetrics::QUERY_SENT)).Times(1);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 mock_metric_logger)); 500 mock_metric_logger));
501 // No responses yet 501 // No responses yet
502 EXPECT_EQ(static_cast<size_t>(0), responses_.size()); 502 EXPECT_EQ(static_cast<size_t>(0), responses_.size());
503 503
504 fetcher = factory.GetFetcherByID(3); 504 fetcher = factory.GetFetcherByID(3);
505 ASSERT_TRUE(fetcher); 505 ASSERT_TRUE(fetcher);
506 FakeOnURLFetchComplete(fetcher, 200, std::string(responses[0])); 506 FakeOnURLFetchComplete(fetcher, 200, std::string(responses[0]));
507 ASSERT_EQ(static_cast<size_t>(1), responses_.size()); 507 ASSERT_EQ(static_cast<size_t>(1), responses_.size());
508 EXPECT_EQ(responses[0], responses_.front().response); 508 EXPECT_EQ(responses[0], responses_.front().response);
509 } 509 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_browsertest.cc ('k') | chrome/browser/captive_portal/captive_portal_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698