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

Unified Diff: components/autofill/core/browser/autofill_external_delegate_unittest.cc

Issue 785953004: Add histogram for "scan credit card" usage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge 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: components/autofill/core/browser/autofill_external_delegate_unittest.cc
diff --git a/components/autofill/core/browser/autofill_external_delegate_unittest.cc b/components/autofill/core/browser/autofill_external_delegate_unittest.cc
index 251d738d0b11009e956083f87a0000f1f51d2514..7b078a6a2c2d67a94af6a924b39ebe841ef8abab 100644
--- a/components/autofill/core/browser/autofill_external_delegate_unittest.cc
+++ b/components/autofill/core/browser/autofill_external_delegate_unittest.cc
@@ -9,6 +9,7 @@
#include "base/message_loop/message_loop.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/test/histogram_tester.h"
#include "components/autofill/core/browser/autofill_manager.h"
#include "components/autofill/core/browser/popup_item_ids.h"
#include "components/autofill/core/browser/test_autofill_client.h"
@@ -85,6 +86,9 @@ class MockAutofillManager : public AutofillManager {
: AutofillManager(driver, client, NULL) {}
virtual ~MockAutofillManager() {}
+ MOCK_METHOD2(ShouldShowScanCreditCard,
+ bool(const FormData& form, const FormFieldData& field));
+
MOCK_METHOD5(FillOrPreviewForm,
void(AutofillDriver::RendererFormDataAction action,
int query_id,
@@ -107,7 +111,7 @@ class MockAutofillManager : public AutofillManager {
class AutofillExternalDelegateUnitTest : public testing::Test {
protected:
void SetUp() override {
- autofill_driver_.reset(new MockAutofillDriver());
+ autofill_driver_.reset(new testing::NiceMock<MockAutofillDriver>());
autofill_manager_.reset(
new MockAutofillManager(autofill_driver_.get(), &autofill_client_));
external_delegate_.reset(
@@ -134,8 +138,17 @@ class AutofillExternalDelegateUnitTest : public testing::Test {
external_delegate_->OnQuery(query_id, form, field, element_bounds, true);
}
- MockAutofillClient autofill_client_;
- scoped_ptr<MockAutofillDriver> autofill_driver_;
+ void IssueOnSuggestionsReturned() {
+ std::vector<base::string16> autofill_item;
+ autofill_item.push_back(base::string16());
+ std::vector<int> autofill_ids;
+ autofill_ids.push_back(kAutofillProfileId);
+ external_delegate_->OnSuggestionsReturned(
+ kQueryId, autofill_item, autofill_item, autofill_item, autofill_ids);
+ }
+
+ testing::NiceMock<MockAutofillClient> autofill_client_;
+ scoped_ptr<testing::NiceMock<MockAutofillDriver>> autofill_driver_;
scoped_ptr<MockAutofillManager> autofill_manager_;
scoped_ptr<AutofillExternalDelegate> external_delegate_;
@@ -447,6 +460,65 @@ TEST_F(AutofillExternalDelegateUnitTest, ScanCreditCardMenuItem) {
POPUP_ITEM_ID_SCAN_CREDIT_CARD);
}
+TEST_F(AutofillExternalDelegateUnitTest, ScanCreditCardPromptMetricsTest) {
+ // Log that the scan card item was shown, although nothing was selected.
+ {
+ EXPECT_CALL(*autofill_manager_, ShouldShowScanCreditCard(_, _))
+ .WillOnce(testing::Return(true));
+ base::HistogramTester histogram;
+ IssueOnQuery(kQueryId);
+ IssueOnSuggestionsReturned();
+ external_delegate_->OnPopupHidden();
+ histogram.ExpectUniqueSample("Autofill.ScanCreditCardPrompt",
+ AutofillMetrics::SCAN_CARD_ITEM_SHOWN, 1);
+ }
+ // Log that the scan card item was selected.
+ {
+ EXPECT_CALL(*autofill_manager_, ShouldShowScanCreditCard(_, _))
+ .WillOnce(testing::Return(true));
+ base::HistogramTester histogram;
+ IssueOnQuery(kQueryId);
+ IssueOnSuggestionsReturned();
+ external_delegate_->DidAcceptSuggestion(base::string16(),
+ POPUP_ITEM_ID_SCAN_CREDIT_CARD);
+ histogram.ExpectBucketCount("Autofill.ScanCreditCardPrompt",
+ AutofillMetrics::SCAN_CARD_ITEM_SHOWN, 1);
+ histogram.ExpectBucketCount("Autofill.ScanCreditCardPrompt",
+ AutofillMetrics::SCAN_CARD_ITEM_SELECTED, 1);
+ histogram.ExpectBucketCount("Autofill.ScanCreditCardPrompt",
+ AutofillMetrics::SCAN_CARD_OTHER_ITEM_SELECTED,
+ 0);
+ }
+ // Log that something else was selected.
+ {
+ EXPECT_CALL(*autofill_manager_, ShouldShowScanCreditCard(_, _))
+ .WillOnce(testing::Return(true));
+ base::HistogramTester histogram;
+ IssueOnQuery(kQueryId);
+ IssueOnSuggestionsReturned();
+ external_delegate_->DidAcceptSuggestion(base::string16(),
+ POPUP_ITEM_ID_CLEAR_FORM);
+ histogram.ExpectBucketCount("Autofill.ScanCreditCardPrompt",
+ AutofillMetrics::SCAN_CARD_ITEM_SHOWN, 1);
+ histogram.ExpectBucketCount("Autofill.ScanCreditCardPrompt",
+ AutofillMetrics::SCAN_CARD_ITEM_SELECTED, 0);
+ histogram.ExpectBucketCount("Autofill.ScanCreditCardPrompt",
+ AutofillMetrics::SCAN_CARD_OTHER_ITEM_SELECTED,
+ 1);
+ }
+ // Nothing is logged when the item isn't shown.
+ {
+ EXPECT_CALL(*autofill_manager_, ShouldShowScanCreditCard(_, _))
+ .WillOnce(testing::Return(false));
+ base::HistogramTester histogram;
+ IssueOnQuery(kQueryId);
+ IssueOnSuggestionsReturned();
+ external_delegate_->DidAcceptSuggestion(base::string16(),
+ POPUP_ITEM_ID_CLEAR_FORM);
+ histogram.ExpectTotalCount("Autofill.ScanCreditCardPrompt", 0);
+ }
+}
+
// Test that autofill manager will fill the credit card form after user scans a
// credit card.
TEST_F(AutofillExternalDelegateUnitTest, FillCreditCardForm) {

Powered by Google App Engine
This is Rietveld 408576698