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

Side by Side Diff: components/autofill/browser/autofill_metrics_unittest.cc

Issue 12476031: Refactor notifications of chrome/browser/webdata (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 9 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 <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 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 274
275 protected: 275 protected:
276 scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate( 276 scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate(
277 MockAutofillMetrics* metric_logger); 277 MockAutofillMetrics* metric_logger);
278 278
279 content::TestBrowserThread ui_thread_; 279 content::TestBrowserThread ui_thread_;
280 content::TestBrowserThread file_thread_; 280 content::TestBrowserThread file_thread_;
281 content::TestBrowserThread io_thread_; 281 content::TestBrowserThread io_thread_;
282 282
283 scoped_ptr<TestAutofillManager> autofill_manager_; 283 scoped_ptr<TestAutofillManager> autofill_manager_;
284 TestPersonalDataManager personal_data_; 284 scoped_ptr<TestPersonalDataManager> personal_data_;
285 285
286 private: 286 private:
287 DISALLOW_COPY_AND_ASSIGN(AutofillMetricsTest); 287 DISALLOW_COPY_AND_ASSIGN(AutofillMetricsTest);
288 }; 288 };
289 289
290 AutofillMetricsTest::AutofillMetricsTest() 290 AutofillMetricsTest::AutofillMetricsTest()
291 : ChromeRenderViewHostTestHarness(), 291 : ChromeRenderViewHostTestHarness(),
292 ui_thread_(BrowserThread::UI, &message_loop_), 292 ui_thread_(BrowserThread::UI, &message_loop_),
293 file_thread_(BrowserThread::FILE), 293 file_thread_(BrowserThread::FILE),
294 io_thread_(BrowserThread::IO) { 294 io_thread_(BrowserThread::IO) {
295 } 295 }
296 296
297 AutofillMetricsTest::~AutofillMetricsTest() { 297 AutofillMetricsTest::~AutofillMetricsTest() {
298 // Order of destruction is important as AutofillManager relies on 298 // Order of destruction is important as AutofillManager relies on
299 // PersonalDataManager to be around when it gets destroyed. 299 // PersonalDataManager to be around when it gets destroyed.
300 autofill_manager_.reset(); 300 autofill_manager_.reset();
301 } 301 }
302 302
303 void AutofillMetricsTest::SetUp() { 303 void AutofillMetricsTest::SetUp() {
304 TestingProfile* profile = new TestingProfile(); 304 TestingProfile* profile = new TestingProfile();
305 profile->CreateRequestContext(); 305 profile->CreateRequestContext();
306 browser_context_.reset(profile); 306 browser_context_.reset(profile);
307 PersonalDataManagerFactory::GetInstance()->SetTestingFactory(profile, NULL); 307 PersonalDataManagerFactory::GetInstance()->SetTestingFactory(profile, NULL);
308 308
309 ChromeRenderViewHostTestHarness::SetUp(); 309 ChromeRenderViewHostTestHarness::SetUp();
310 io_thread_.StartIOThread(); 310 io_thread_.StartIOThread();
311 autofill::TabAutofillManagerDelegate::CreateForWebContents(web_contents()); 311 autofill::TabAutofillManagerDelegate::CreateForWebContents(web_contents());
312 personal_data_.SetBrowserContext(profile); 312
313 personal_data_.reset(new TestPersonalDataManager());
314 personal_data_->SetBrowserContext(profile);
313 autofill_manager_.reset(new TestAutofillManager( 315 autofill_manager_.reset(new TestAutofillManager(
314 web_contents(), 316 web_contents(),
315 autofill::TabAutofillManagerDelegate::FromWebContents(web_contents()), 317 autofill::TabAutofillManagerDelegate::FromWebContents(web_contents()),
316 &personal_data_)); 318 personal_data_.get()));
317 319
318 file_thread_.Start(); 320 file_thread_.Start();
319 } 321 }
320 322
321 void AutofillMetricsTest::TearDown() { 323 void AutofillMetricsTest::TearDown() {
322 // Order of destruction is important as AutofillManager relies on 324 // Order of destruction is important as AutofillManager relies on
323 // PersonalDataManager to be around when it gets destroyed. Also, a real 325 // PersonalDataManager to be around when it gets destroyed. Also, a real
324 // AutofillManager is tied to the lifetime of the WebContents, so it must 326 // AutofillManager is tied to the lifetime of the WebContents, so it must
325 // be destroyed at the destruction of the WebContents. 327 // be destroyed at the destruction of the WebContents.
326 autofill_manager_.reset(); 328 autofill_manager_.reset();
329 personal_data_.reset();
327 profile()->ResetRequestContext(); 330 profile()->ResetRequestContext();
328 file_thread_.Stop(); 331 file_thread_.Stop();
329 ChromeRenderViewHostTestHarness::TearDown(); 332 ChromeRenderViewHostTestHarness::TearDown();
330 io_thread_.Stop(); 333 io_thread_.Stop();
331 } 334 }
332 335
333 scoped_ptr<ConfirmInfoBarDelegate> AutofillMetricsTest::CreateDelegate( 336 scoped_ptr<ConfirmInfoBarDelegate> AutofillMetricsTest::CreateDelegate(
334 MockAutofillMetrics* metric_logger) { 337 MockAutofillMetrics* metric_logger) {
335 EXPECT_CALL(*metric_logger, 338 EXPECT_CALL(*metric_logger,
336 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); 339 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN));
337 340
338 CreditCard credit_card; 341 CreditCard credit_card;
339 return AutofillCCInfoBarDelegate::CreateForTesting( 342 return AutofillCCInfoBarDelegate::CreateForTesting(
340 metric_logger, 343 metric_logger,
341 base::Bind(&TestPersonalDataManager::SaveImportedCreditCard, 344 base::Bind(&TestPersonalDataManager::SaveImportedCreditCard,
342 base::Unretained(&personal_data_), credit_card)); 345 base::Unretained(personal_data_.get()), credit_card));
343 } 346 }
344 347
345 // Test that we log quality metrics appropriately. 348 // Test that we log quality metrics appropriately.
346 TEST_F(AutofillMetricsTest, QualityMetrics) { 349 TEST_F(AutofillMetricsTest, QualityMetrics) {
347 // Set up our form data. 350 // Set up our form data.
348 FormData form; 351 FormData form;
349 form.name = ASCIIToUTF16("TestForm"); 352 form.name = ASCIIToUTF16("TestForm");
350 form.method = ASCIIToUTF16("POST"); 353 form.method = ASCIIToUTF16("POST");
351 form.origin = GURL("http://example.com/form.html"); 354 form.origin = GURL("http://example.com/form.html");
352 form.action = GURL("http://example.com/submit.html"); 355 form.action = GURL("http://example.com/submit.html");
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
1006 ADDRESS_HOME_COUNTRY, experiment_id)); 1009 ADDRESS_HOME_COUNTRY, experiment_id));
1007 1010
1008 // Simulate form submission. 1011 // Simulate form submission.
1009 EXPECT_NO_FATAL_FAILURE(autofill_manager_->FormSubmitted(form, 1012 EXPECT_NO_FATAL_FAILURE(autofill_manager_->FormSubmitted(form,
1010 TimeTicks::Now())); 1013 TimeTicks::Now()));
1011 } 1014 }
1012 1015
1013 // Test that the profile count is logged correctly. 1016 // Test that the profile count is logged correctly.
1014 TEST_F(AutofillMetricsTest, StoredProfileCount) { 1017 TEST_F(AutofillMetricsTest, StoredProfileCount) {
1015 // The metric should be logged when the profiles are first loaded. 1018 // The metric should be logged when the profiles are first loaded.
1016 EXPECT_CALL(*personal_data_.metric_logger(), 1019 EXPECT_CALL(*personal_data_->metric_logger(),
1017 LogStoredProfileCount(2)).Times(1); 1020 LogStoredProfileCount(2)).Times(1);
1018 personal_data_.LoadProfiles(); 1021 personal_data_->LoadProfiles();
1019 1022
1020 // The metric should only be logged once. 1023 // The metric should only be logged once.
1021 EXPECT_CALL(*personal_data_.metric_logger(), 1024 EXPECT_CALL(*personal_data_->metric_logger(),
1022 LogStoredProfileCount(::testing::_)).Times(0); 1025 LogStoredProfileCount(::testing::_)).Times(0);
1023 personal_data_.LoadProfiles(); 1026 personal_data_->LoadProfiles();
1024 } 1027 }
1025 1028
1026 // Test that we correctly log when Autofill is enabled. 1029 // Test that we correctly log when Autofill is enabled.
1027 TEST_F(AutofillMetricsTest, AutofillIsEnabledAtStartup) { 1030 TEST_F(AutofillMetricsTest, AutofillIsEnabledAtStartup) {
1028 personal_data_.set_autofill_enabled(true); 1031 personal_data_->set_autofill_enabled(true);
1029 EXPECT_CALL(*personal_data_.metric_logger(), 1032 EXPECT_CALL(*personal_data_->metric_logger(),
1030 LogIsAutofillEnabledAtStartup(true)).Times(1); 1033 LogIsAutofillEnabledAtStartup(true)).Times(1);
1031 personal_data_.Init(profile()); 1034 personal_data_->Init(profile());
1032 } 1035 }
1033 1036
1034 // Test that we correctly log when Autofill is disabled. 1037 // Test that we correctly log when Autofill is disabled.
1035 TEST_F(AutofillMetricsTest, AutofillIsDisabledAtStartup) { 1038 TEST_F(AutofillMetricsTest, AutofillIsDisabledAtStartup) {
1036 personal_data_.set_autofill_enabled(false); 1039 personal_data_->set_autofill_enabled(false);
1037 EXPECT_CALL(*personal_data_.metric_logger(), 1040 EXPECT_CALL(*personal_data_->metric_logger(),
1038 LogIsAutofillEnabledAtStartup(false)).Times(1); 1041 LogIsAutofillEnabledAtStartup(false)).Times(1);
1039 personal_data_.Init(profile()); 1042 personal_data_->Init(profile());
1040 } 1043 }
1041 1044
1042 // Test that we log the number of Autofill suggestions when filling a form. 1045 // Test that we log the number of Autofill suggestions when filling a form.
1043 TEST_F(AutofillMetricsTest, AddressSuggestionsCount) { 1046 TEST_F(AutofillMetricsTest, AddressSuggestionsCount) {
1044 // Set up our form data. 1047 // Set up our form data.
1045 FormData form; 1048 FormData form;
1046 form.name = ASCIIToUTF16("TestForm"); 1049 form.name = ASCIIToUTF16("TestForm");
1047 form.method = ASCIIToUTF16("POST"); 1050 form.method = ASCIIToUTF16("POST");
1048 form.origin = GURL("http://example.com/form.html"); 1051 form.origin = GURL("http://example.com/form.html");
1049 form.action = GURL("http://example.com/submit.html"); 1052 form.action = GURL("http://example.com/submit.html");
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 1135
1133 // Test that credit card infobar metrics are logged correctly. 1136 // Test that credit card infobar metrics are logged correctly.
1134 TEST_F(AutofillMetricsTest, CreditCardInfoBar) { 1137 TEST_F(AutofillMetricsTest, CreditCardInfoBar) {
1135 testing::NiceMock<MockAutofillMetrics> metric_logger; 1138 testing::NiceMock<MockAutofillMetrics> metric_logger;
1136 ::testing::InSequence dummy; 1139 ::testing::InSequence dummy;
1137 1140
1138 // Accept the infobar. 1141 // Accept the infobar.
1139 { 1142 {
1140 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger)); 1143 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger));
1141 ASSERT_TRUE(infobar); 1144 ASSERT_TRUE(infobar);
1142 EXPECT_CALL(personal_data_, SaveImportedCreditCard(_)); 1145 EXPECT_CALL(*personal_data_, SaveImportedCreditCard(_));
1143 EXPECT_CALL(metric_logger, 1146 EXPECT_CALL(metric_logger,
1144 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)).Times(1); 1147 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)).Times(1);
1145 EXPECT_CALL(metric_logger, 1148 EXPECT_CALL(metric_logger,
1146 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); 1149 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0);
1147 EXPECT_TRUE(infobar->Accept()); 1150 EXPECT_TRUE(infobar->Accept());
1148 } 1151 }
1149 1152
1150 // Cancel the infobar. 1153 // Cancel the infobar.
1151 { 1154 {
1152 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger)); 1155 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger));
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 forms, TimeTicks::FromInternalValue(1), false); 1566 forms, TimeTicks::FromInternalValue(1), false);
1564 autofill_manager_->OnDidFillAutofillFormData( 1567 autofill_manager_->OnDidFillAutofillFormData(
1565 TimeTicks::FromInternalValue(5)); 1568 TimeTicks::FromInternalValue(5));
1566 autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), 1569 autofill_manager_->OnTextFieldDidChange(form, form.fields.front(),
1567 TimeTicks::FromInternalValue(3)); 1570 TimeTicks::FromInternalValue(3));
1568 autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17)); 1571 autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17));
1569 autofill_manager_->Reset(); 1572 autofill_manager_->Reset();
1570 Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger()); 1573 Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
1571 } 1574 }
1572 } 1575 }
OLDNEW
« no previous file with comments | « components/autofill/browser/autofill_manager_unittest.cc ('k') | components/autofill/browser/personal_data_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698