Chromium Code Reviews| Index: chrome/browser/autofill/autofill_metrics_unittest.cc |
| =================================================================== |
| --- chrome/browser/autofill/autofill_metrics_unittest.cc (revision 84698) |
| +++ chrome/browser/autofill/autofill_metrics_unittest.cc (working copy) |
| @@ -182,22 +182,15 @@ |
| class AutofillMetricsTest : public TabContentsWrapperTestHarness { |
| public: |
| - AutofillMetricsTest() {} |
| - virtual ~AutofillMetricsTest() { |
| - // Order of destruction is important as AutofillManager relies on |
| - // PersonalDataManager to be around when it gets destroyed. |
| - autofill_manager_.reset(NULL); |
| - test_personal_data_ = NULL; |
| - } |
| + AutofillMetricsTest(); |
| + virtual ~AutofillMetricsTest(); |
| - virtual void SetUp() { |
| - TabContentsWrapperTestHarness::SetUp(); |
| - test_personal_data_ = new TestPersonalDataManager(); |
| - autofill_manager_.reset(new TestAutofillManager(contents(), |
| - test_personal_data_.get())); |
| - } |
| + virtual void SetUp(); |
| protected: |
| + AutofillCCInfoBarDelegate* CreateDelegate(MockAutofillMetrics* metric_logger, |
| + CreditCard** created_card); |
| + |
| scoped_ptr<TestAutofillManager> autofill_manager_; |
| scoped_refptr<TestPersonalDataManager> test_personal_data_; |
| @@ -205,6 +198,35 @@ |
| DISALLOW_COPY_AND_ASSIGN(AutofillMetricsTest); |
| }; |
| +AutofillMetricsTest::AutofillMetricsTest() { |
| +} |
| + |
| +AutofillMetricsTest::~AutofillMetricsTest() { |
| + // Order of destruction is important as AutofillManager relies on |
| + // PersonalDataManager to be around when it gets destroyed. |
| + autofill_manager_.reset(NULL); |
| + test_personal_data_ = NULL; |
| +} |
| + |
| +void AutofillMetricsTest::SetUp() { |
| + TabContentsWrapperTestHarness::SetUp(); |
| + test_personal_data_ = new TestPersonalDataManager(); |
| + autofill_manager_.reset(new TestAutofillManager(contents(), |
| + test_personal_data_.get())); |
| +} |
| + |
| +AutofillCCInfoBarDelegate* AutofillMetricsTest::CreateDelegate( |
| + MockAutofillMetrics* metric_logger, |
| + CreditCard** created_card) { |
| + EXPECT_CALL(*metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); |
| + CreditCard* credit_card = new CreditCard(); |
|
sky
2011/05/09 22:56:39
How about a comment about ownership of CreditCard?
Peter Kasting
2011/05/09 23:23:33
Sure.
|
| + if (created_card) |
| + *created_card = credit_card; |
| + return new AutofillCCInfoBarDelegate(contents(), credit_card, |
| + test_personal_data_.get(), metric_logger); |
| +} |
| + |
| // Test that we log quality metrics appropriately. |
| TEST_F(AutofillMetricsTest, QualityMetrics) { |
| // Set up our form data. |
| @@ -893,76 +915,46 @@ |
| // Test that credit card infobar metrics are logged correctly. |
| TEST_F(AutofillMetricsTest, CreditCardInfoBar) { |
| MockAutofillMetrics metric_logger; |
| - CreditCard* credit_card; |
| - AutofillCCInfoBarDelegate* infobar; |
| ::testing::InSequence dummy; |
| // Accept the infobar. |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); |
| - credit_card = new CreditCard(); |
| - infobar = new AutofillCCInfoBarDelegate(contents(), |
| - credit_card, |
| - test_personal_data_.get(), |
| - &metric_logger); |
| + { |
| + CreditCard* credit_card; |
| + scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, |
| + &credit_card)); |
| + EXPECT_CALL(*test_personal_data_.get(), |
| + SaveImportedCreditCard(*credit_card)); |
| + EXPECT_CALL(metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)).Times(1); |
| + EXPECT_CALL(metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
| + EXPECT_TRUE(static_cast<ConfirmInfoBarDelegate*>(infobar.get())->Accept()); |
| + } |
| - EXPECT_CALL(*test_personal_data_.get(), SaveImportedCreditCard(*credit_card)); |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)) |
| - .Times(1); |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) |
| - .Times(0); |
| - EXPECT_TRUE(infobar->Accept()); |
| - infobar->InfoBarClosed(); |
| - |
| // Cancel the infobar. |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); |
| - credit_card = new CreditCard(); |
| - infobar = new AutofillCCInfoBarDelegate(contents(), |
| - credit_card, |
| - test_personal_data_.get(), |
| - &metric_logger); |
| + { |
| + scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); |
| + EXPECT_CALL(metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); |
| + EXPECT_CALL(metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
| + EXPECT_TRUE(static_cast<ConfirmInfoBarDelegate*>(infobar.get())->Cancel()); |
| + } |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)) |
| - .Times(1); |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) |
| - .Times(0); |
| - EXPECT_TRUE(infobar->Cancel()); |
| - infobar->InfoBarClosed(); |
| - |
| // Dismiss the infobar. |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); |
| - credit_card = new CreditCard(); |
| - infobar = new AutofillCCInfoBarDelegate(contents(), |
| - credit_card, |
| - test_personal_data_.get(), |
| - &metric_logger); |
| + { |
| + scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); |
| + EXPECT_CALL(metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); |
| + EXPECT_CALL(metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
| + infobar->InfoBarDismissed(); |
| + } |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)) |
| - .Times(1); |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) |
| - .Times(0); |
| - infobar->InfoBarDismissed(); |
| - infobar->InfoBarClosed(); |
| - |
| // Ignore the infobar. |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); |
| - credit_card = new CreditCard(); |
| - infobar = new AutofillCCInfoBarDelegate(contents(), |
| - credit_card, |
| - test_personal_data_.get(), |
| - &metric_logger); |
| - |
| - EXPECT_CALL(metric_logger, |
| - LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) |
| - .Times(1); |
| - infobar->InfoBarClosed(); |
| + { |
| + scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); |
| + EXPECT_CALL(metric_logger, |
| + LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(1); |
| + } |
| } |