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

Unified Diff: chrome/browser/autofill/autofill_cc_infobar_delegate_unittest.cc

Issue 790543002: Revert of Don't deref stale AutofillMetrics pointer in AutofillCCInfoBarDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/autofill/autofill_cc_infobar_delegate_unittest.cc
diff --git a/chrome/browser/autofill/autofill_cc_infobar_delegate_unittest.cc b/chrome/browser/autofill/autofill_cc_infobar_delegate_unittest.cc
index 3aa5b178449d7503d7cf225f2853ed89f39d2816..2b5e9a47e5693c9924a47871e97c3771627ce818 100644
--- a/chrome/browser/autofill/autofill_cc_infobar_delegate_unittest.cc
+++ b/chrome/browser/autofill/autofill_cc_infobar_delegate_unittest.cc
@@ -5,11 +5,11 @@
#include "chrome/browser/autofill/autofill_cc_infobar_delegate.h"
#include "base/memory/scoped_ptr.h"
-#include "base/test/histogram_tester.h"
#include "chrome/browser/autofill/personal_data_manager_factory.h"
#include "chrome/browser/ui/autofill/chrome_autofill_client.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/autofill/core/browser/autofill_metrics.h"
#include "components/autofill/core/browser/autofill_test_utils.h"
#include "components/autofill/core/browser/personal_data_manager.h"
#include "testing/gmock/include/gmock/gmock.h"
@@ -20,6 +20,15 @@
namespace autofill {
namespace {
+
+class MockAutofillMetrics : public AutofillMetrics {
+ public:
+ MockAutofillMetrics() {}
+ MOCK_CONST_METHOD1(LogCreditCardInfoBarMetric, void(InfoBarMetric metric));
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MockAutofillMetrics);
+};
class TestPersonalDataManager : public PersonalDataManager {
public:
@@ -49,7 +58,8 @@
void TearDown() override;
protected:
- scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate();
+ scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate(
+ MockAutofillMetrics* metric_logger);
scoped_ptr<TestPersonalDataManager> personal_data_;
};
@@ -79,61 +89,72 @@
}
scoped_ptr<ConfirmInfoBarDelegate>
-AutofillCCInfobarDelegateTest::CreateDelegate() {
- base::HistogramTester histogram_tester;
+AutofillCCInfobarDelegateTest::CreateDelegate(
+ MockAutofillMetrics* metric_logger) {
+ EXPECT_CALL(*metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN));
+
CreditCard credit_card;
- scoped_ptr<ConfirmInfoBarDelegate> delegate(
- AutofillCCInfoBarDelegate::Create(base::Bind(
+ return AutofillCCInfoBarDelegate::Create(
+ metric_logger,
+ base::Bind(
base::IgnoreResult(&TestPersonalDataManager::SaveImportedCreditCard),
- base::Unretained(personal_data_.get()), credit_card)));
- histogram_tester.ExpectUniqueSample("Autofill.CreditCardInfoBar",
- AutofillMetrics::INFOBAR_SHOWN, 1);
- return delegate.Pass();
+ base::Unretained(personal_data_.get()),
+ credit_card));
}
// Test that credit card infobar metrics are logged correctly.
TEST_F(AutofillCCInfobarDelegateTest, Metrics) {
+ MockAutofillMetrics metric_logger;
::testing::InSequence dummy;
// Accept the infobar.
{
- scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate());
+ scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger));
+ ASSERT_TRUE(infobar);
EXPECT_CALL(*personal_data_, SaveImportedCreditCard(_));
+ EXPECT_CALL(metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED));
- base::HistogramTester histogram_tester;
+ EXPECT_CALL(metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED))
+ .Times(0);
EXPECT_TRUE(infobar->Accept());
- histogram_tester.ExpectUniqueSample("Autofill.CreditCardInfoBar",
- AutofillMetrics::INFOBAR_ACCEPTED, 1);
}
// Cancel the infobar.
{
- scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate());
-
- base::HistogramTester histogram_tester;
+ scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger));
+ ASSERT_TRUE(infobar);
+ EXPECT_CALL(metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED))
+ .Times(1);
+ EXPECT_CALL(metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED))
+ .Times(0);
EXPECT_TRUE(infobar->Cancel());
- histogram_tester.ExpectUniqueSample("Autofill.CreditCardInfoBar",
- AutofillMetrics::INFOBAR_DENIED, 1);
}
// Dismiss the infobar.
{
- scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate());
-
- base::HistogramTester histogram_tester;
+ scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger));
+ ASSERT_TRUE(infobar);
+ EXPECT_CALL(metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED))
+ .Times(1);
+ EXPECT_CALL(metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED))
+ .Times(0);
infobar->InfoBarDismissed();
- histogram_tester.ExpectUniqueSample("Autofill.CreditCardInfoBar",
- AutofillMetrics::INFOBAR_DENIED, 1);
}
// Ignore the infobar.
{
- scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate());
-
- base::HistogramTester histogram_tester;
- infobar.reset();
- histogram_tester.ExpectUniqueSample("Autofill.CreditCardInfoBar",
- AutofillMetrics::INFOBAR_IGNORED, 1);
+ scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger));
+ ASSERT_TRUE(infobar);
+ EXPECT_CALL(metric_logger,
+ LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED))
+ .Times(1);
}
}
« no previous file with comments | « chrome/browser/autofill/autofill_cc_infobar_delegate.cc ('k') | chrome/browser/ui/autofill/chrome_autofill_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698