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 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/string16.h" | 8 #include "base/string16.h" |
9 #include "base/time.h" | 9 #include "base/time.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 profiles->push_back(profile); | 140 profiles->push_back(profile); |
141 } | 141 } |
142 | 142 |
143 bool autofill_enabled_; | 143 bool autofill_enabled_; |
144 | 144 |
145 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager); | 145 DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager); |
146 }; | 146 }; |
147 | 147 |
148 class TestFormStructure : public FormStructure { | 148 class TestFormStructure : public FormStructure { |
149 public: | 149 public: |
150 explicit TestFormStructure(const FormData& form) : FormStructure(form) {} | 150 explicit TestFormStructure(const FormData& form) |
| 151 : FormStructure(form, std::string()) {} |
151 virtual ~TestFormStructure() {} | 152 virtual ~TestFormStructure() {} |
152 | 153 |
153 void SetFieldTypes(const std::vector<AutofillFieldType>& heuristic_types, | 154 void SetFieldTypes(const std::vector<AutofillFieldType>& heuristic_types, |
154 const std::vector<AutofillFieldType>& server_types) { | 155 const std::vector<AutofillFieldType>& server_types) { |
155 ASSERT_EQ(field_count(), heuristic_types.size()); | 156 ASSERT_EQ(field_count(), heuristic_types.size()); |
156 ASSERT_EQ(field_count(), server_types.size()); | 157 ASSERT_EQ(field_count(), server_types.size()); |
157 | 158 |
158 for (size_t i = 0; i < field_count(); ++i) { | 159 for (size_t i = 0; i < field_count(); ++i) { |
159 AutofillField* form_field = field(i); | 160 AutofillField* form_field = field(i); |
160 ASSERT_TRUE(form_field); | 161 ASSERT_TRUE(form_field); |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 protected: | 293 protected: |
293 scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate( | 294 scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate( |
294 MockAutofillMetrics* metric_logger, | 295 MockAutofillMetrics* metric_logger, |
295 CreditCard** created_card); | 296 CreditCard** created_card); |
296 | 297 |
297 scoped_ptr<ConfirmInfoBarDelegate> CreateAutocheckoutDelegate( | 298 scoped_ptr<ConfirmInfoBarDelegate> CreateAutocheckoutDelegate( |
298 MockAutofillMetrics* metric_logger); | 299 MockAutofillMetrics* metric_logger); |
299 | 300 |
300 content::TestBrowserThread ui_thread_; | 301 content::TestBrowserThread ui_thread_; |
301 content::TestBrowserThread file_thread_; | 302 content::TestBrowserThread file_thread_; |
| 303 content::TestBrowserThread io_thread_; |
302 | 304 |
303 scoped_refptr<TestAutofillManager> autofill_manager_; | 305 scoped_refptr<TestAutofillManager> autofill_manager_; |
304 TestAutocheckoutManager autocheckout_manager_; | 306 TestAutocheckoutManager autocheckout_manager_; |
305 TestPersonalDataManager personal_data_; | 307 TestPersonalDataManager personal_data_; |
306 | 308 |
307 private: | 309 private: |
308 std::string default_gmock_verbosity_level_; | 310 std::string default_gmock_verbosity_level_; |
309 | 311 |
310 DISALLOW_COPY_AND_ASSIGN(AutofillMetricsTest); | 312 DISALLOW_COPY_AND_ASSIGN(AutofillMetricsTest); |
311 }; | 313 }; |
312 | 314 |
313 AutofillMetricsTest::AutofillMetricsTest() | 315 AutofillMetricsTest::AutofillMetricsTest() |
314 : ChromeRenderViewHostTestHarness(), | 316 : ChromeRenderViewHostTestHarness(), |
315 ui_thread_(BrowserThread::UI, &message_loop_), | 317 ui_thread_(BrowserThread::UI, &message_loop_), |
316 file_thread_(BrowserThread::FILE), | 318 file_thread_(BrowserThread::FILE), |
| 319 io_thread_(BrowserThread::IO), |
317 autocheckout_manager_(NULL) { | 320 autocheckout_manager_(NULL) { |
318 } | 321 } |
319 | 322 |
320 AutofillMetricsTest::~AutofillMetricsTest() { | 323 AutofillMetricsTest::~AutofillMetricsTest() { |
321 // Order of destruction is important as AutofillManager relies on | 324 // Order of destruction is important as AutofillManager relies on |
322 // PersonalDataManager to be around when it gets destroyed. | 325 // PersonalDataManager to be around when it gets destroyed. |
323 autofill_manager_ = NULL; | 326 autofill_manager_ = NULL; |
324 } | 327 } |
325 | 328 |
326 void AutofillMetricsTest::SetUp() { | 329 void AutofillMetricsTest::SetUp() { |
327 Profile* profile = new TestingProfile(); | 330 TestingProfile* profile = new TestingProfile(); |
| 331 profile->CreateRequestContext(); |
328 browser_context_.reset(profile); | 332 browser_context_.reset(profile); |
329 PersonalDataManagerFactory::GetInstance()->SetTestingFactory(profile, NULL); | 333 PersonalDataManagerFactory::GetInstance()->SetTestingFactory(profile, NULL); |
330 | 334 |
331 ChromeRenderViewHostTestHarness::SetUp(); | 335 ChromeRenderViewHostTestHarness::SetUp(); |
| 336 io_thread_.StartIOThread(); |
332 TabAutofillManagerDelegate::CreateForWebContents(web_contents()); | 337 TabAutofillManagerDelegate::CreateForWebContents(web_contents()); |
333 personal_data_.SetBrowserContext(profile); | 338 personal_data_.SetBrowserContext(profile); |
334 autofill_manager_ = new TestAutofillManager( | 339 autofill_manager_ = new TestAutofillManager( |
335 web_contents(), | 340 web_contents(), |
336 TabAutofillManagerDelegate::FromWebContents(web_contents()), | 341 TabAutofillManagerDelegate::FromWebContents(web_contents()), |
337 &personal_data_); | 342 &personal_data_); |
338 | 343 |
339 file_thread_.Start(); | 344 file_thread_.Start(); |
340 | 345 |
341 // Ignore any metrics that we haven't explicitly set expectations for. | 346 // Ignore any metrics that we haven't explicitly set expectations for. |
342 // If we don't override the verbosity level, we'll get lots of log spew from | 347 // If we don't override the verbosity level, we'll get lots of log spew from |
343 // mocked functions that aren't relevant to a test but happen to be called | 348 // mocked functions that aren't relevant to a test but happen to be called |
344 // during the test's execution. | 349 // during the test's execution. |
345 // CAUTION: This is a global variable. So as to not affect other tests, this | 350 // CAUTION: This is a global variable. So as to not affect other tests, this |
346 // _must_ be restored to its original value at the end of the test. | 351 // _must_ be restored to its original value at the end of the test. |
347 default_gmock_verbosity_level_ = ::testing::FLAGS_gmock_verbose; | 352 default_gmock_verbosity_level_ = ::testing::FLAGS_gmock_verbose; |
348 ::testing::FLAGS_gmock_verbose = "error"; | 353 ::testing::FLAGS_gmock_verbose = "error"; |
349 } | 354 } |
350 | 355 |
351 void AutofillMetricsTest::TearDown() { | 356 void AutofillMetricsTest::TearDown() { |
352 // Restore the global Gmock verbosity level to its default value. | 357 // Restore the global Gmock verbosity level to its default value. |
353 ::testing::FLAGS_gmock_verbose = default_gmock_verbosity_level_; | 358 ::testing::FLAGS_gmock_verbose = default_gmock_verbosity_level_; |
354 | 359 |
355 // Order of destruction is important as AutofillManager relies on | 360 // Order of destruction is important as AutofillManager relies on |
356 // PersonalDataManager to be around when it gets destroyed. Also, a real | 361 // PersonalDataManager to be around when it gets destroyed. Also, a real |
357 // AutofillManager is tied to the lifetime of the WebContents, so it must | 362 // AutofillManager is tied to the lifetime of the WebContents, so it must |
358 // be destroyed at the destruction of the WebContents. | 363 // be destroyed at the destruction of the WebContents. |
359 autofill_manager_ = NULL; | 364 autofill_manager_ = NULL; |
| 365 profile()->ResetRequestContext(); |
360 file_thread_.Stop(); | 366 file_thread_.Stop(); |
361 ChromeRenderViewHostTestHarness::TearDown(); | 367 ChromeRenderViewHostTestHarness::TearDown(); |
| 368 io_thread_.Stop(); |
362 } | 369 } |
363 | 370 |
364 scoped_ptr<ConfirmInfoBarDelegate> AutofillMetricsTest::CreateDelegate( | 371 scoped_ptr<ConfirmInfoBarDelegate> AutofillMetricsTest::CreateDelegate( |
365 MockAutofillMetrics* metric_logger, | 372 MockAutofillMetrics* metric_logger, |
366 CreditCard** created_card) { | 373 CreditCard** created_card) { |
367 EXPECT_CALL(*metric_logger, | 374 EXPECT_CALL(*metric_logger, |
368 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); | 375 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); |
369 // The delegate created below will take ownership of this object. | 376 // The delegate created below will take ownership of this object. |
370 CreditCard* credit_card = new CreditCard(); | 377 CreditCard* credit_card = new CreditCard(); |
371 if (created_card) | 378 if (created_card) |
(...skipping 1290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1662 autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); | 1669 autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); |
1663 autofill_manager_->OnDidFillAutofillFormData( | 1670 autofill_manager_->OnDidFillAutofillFormData( |
1664 TimeTicks::FromInternalValue(5)); | 1671 TimeTicks::FromInternalValue(5)); |
1665 autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), | 1672 autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), |
1666 TimeTicks::FromInternalValue(3)); | 1673 TimeTicks::FromInternalValue(3)); |
1667 autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17)); | 1674 autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17)); |
1668 autofill_manager_->Reset(); | 1675 autofill_manager_->Reset(); |
1669 Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger()); | 1676 Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger()); |
1670 } | 1677 } |
1671 } | 1678 } |
OLD | NEW |