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" |
11 #include "chrome/browser/api/infobars/infobar_service.h" | |
12 #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h" | 11 #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h" |
13 #include "chrome/browser/autofill/autofill_common_test.h" | 12 #include "chrome/browser/autofill/autofill_common_test.h" |
14 #include "chrome/browser/autofill/autofill_manager.h" | 13 #include "chrome/browser/autofill/autofill_manager.h" |
15 #include "chrome/browser/autofill/autofill_manager_delegate.h" | 14 #include "chrome/browser/autofill/autofill_manager_delegate.h" |
16 #include "chrome/browser/autofill/autofill_metrics.h" | 15 #include "chrome/browser/autofill/autofill_metrics.h" |
17 #include "chrome/browser/autofill/personal_data_manager.h" | 16 #include "chrome/browser/autofill/personal_data_manager.h" |
18 #include "chrome/browser/autofill/personal_data_manager_factory.h" | 17 #include "chrome/browser/autofill/personal_data_manager_factory.h" |
19 #include "chrome/browser/ui/autofill/tab_autofill_manager_delegate.h" | 18 #include "chrome/browser/ui/autofill/tab_autofill_manager_delegate.h" |
20 #include "chrome/browser/webdata/web_data_service.h" | 19 #include "chrome/browser/webdata/web_data_service.h" |
21 #include "chrome/common/form_data.h" | 20 #include "chrome/common/form_data.h" |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 | 261 |
263 class AutofillMetricsTest : public ChromeRenderViewHostTestHarness { | 262 class AutofillMetricsTest : public ChromeRenderViewHostTestHarness { |
264 public: | 263 public: |
265 AutofillMetricsTest(); | 264 AutofillMetricsTest(); |
266 virtual ~AutofillMetricsTest(); | 265 virtual ~AutofillMetricsTest(); |
267 | 266 |
268 virtual void SetUp() OVERRIDE; | 267 virtual void SetUp() OVERRIDE; |
269 virtual void TearDown() OVERRIDE; | 268 virtual void TearDown() OVERRIDE; |
270 | 269 |
271 protected: | 270 protected: |
272 AutofillCCInfoBarDelegate* CreateDelegate(MockAutofillMetrics* metric_logger, | 271 scoped_ptr<ConfirmInfoBarDelegate> CreateDelegate( |
273 CreditCard** created_card); | 272 MockAutofillMetrics* metric_logger, |
| 273 CreditCard** created_card); |
274 | 274 |
275 content::TestBrowserThread ui_thread_; | 275 content::TestBrowserThread ui_thread_; |
276 content::TestBrowserThread file_thread_; | 276 content::TestBrowserThread file_thread_; |
277 | 277 |
278 scoped_refptr<TestAutofillManager> autofill_manager_; | 278 scoped_refptr<TestAutofillManager> autofill_manager_; |
279 TestPersonalDataManager personal_data_; | 279 TestPersonalDataManager personal_data_; |
280 | 280 |
281 private: | 281 private: |
282 std::string default_gmock_verbosity_level_; | 282 std::string default_gmock_verbosity_level_; |
283 | 283 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 | 327 |
328 // Order of destruction is important as AutofillManager relies on | 328 // Order of destruction is important as AutofillManager relies on |
329 // PersonalDataManager to be around when it gets destroyed. Also, a real | 329 // PersonalDataManager to be around when it gets destroyed. Also, a real |
330 // AutofillManager is tied to the lifetime of the WebContents, so it must | 330 // AutofillManager is tied to the lifetime of the WebContents, so it must |
331 // be destroyed at the destruction of the WebContents. | 331 // be destroyed at the destruction of the WebContents. |
332 autofill_manager_ = NULL; | 332 autofill_manager_ = NULL; |
333 file_thread_.Stop(); | 333 file_thread_.Stop(); |
334 ChromeRenderViewHostTestHarness::TearDown(); | 334 ChromeRenderViewHostTestHarness::TearDown(); |
335 } | 335 } |
336 | 336 |
337 AutofillCCInfoBarDelegate* AutofillMetricsTest::CreateDelegate( | 337 scoped_ptr<ConfirmInfoBarDelegate> AutofillMetricsTest::CreateDelegate( |
338 MockAutofillMetrics* metric_logger, | 338 MockAutofillMetrics* metric_logger, |
339 CreditCard** created_card) { | 339 CreditCard** created_card) { |
340 EXPECT_CALL(*metric_logger, | 340 EXPECT_CALL(*metric_logger, |
341 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); | 341 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); |
342 // The delegate created below will take ownership of this object. | 342 // The delegate created below will take ownership of this object. |
343 CreditCard* credit_card = new CreditCard(); | 343 CreditCard* credit_card = new CreditCard(); |
344 if (created_card) | 344 if (created_card) |
345 *created_card = credit_card; | 345 *created_card = credit_card; |
346 return new AutofillCCInfoBarDelegate( | 346 return AutofillCCInfoBarDelegate::Create(credit_card, &personal_data_, |
347 InfoBarService::FromWebContents(web_contents()), | 347 metric_logger); |
348 credit_card, | |
349 &personal_data_, | |
350 metric_logger); | |
351 } | 348 } |
352 | 349 |
353 // Test that we log quality metrics appropriately. | 350 // Test that we log quality metrics appropriately. |
354 TEST_F(AutofillMetricsTest, QualityMetrics) { | 351 TEST_F(AutofillMetricsTest, QualityMetrics) { |
355 // Set up our form data. | 352 // Set up our form data. |
356 FormData form; | 353 FormData form; |
357 form.name = ASCIIToUTF16("TestForm"); | 354 form.name = ASCIIToUTF16("TestForm"); |
358 form.method = ASCIIToUTF16("POST"); | 355 form.method = ASCIIToUTF16("POST"); |
359 form.origin = GURL("http://example.com/form.html"); | 356 form.origin = GURL("http://example.com/form.html"); |
360 form.action = GURL("http://example.com/submit.html"); | 357 form.action = GURL("http://example.com/submit.html"); |
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1131 // Establish our expectations. | 1128 // Establish our expectations. |
1132 EXPECT_CALL(*autofill_manager_->metric_logger(), | 1129 EXPECT_CALL(*autofill_manager_->metric_logger(), |
1133 LogIsAutofillEnabledAtPageLoad(false)).Times(1); | 1130 LogIsAutofillEnabledAtPageLoad(false)).Times(1); |
1134 | 1131 |
1135 autofill_manager_->set_autofill_enabled(false); | 1132 autofill_manager_->set_autofill_enabled(false); |
1136 autofill_manager_->OnFormsSeen(std::vector<FormData>(), TimeTicks()); | 1133 autofill_manager_->OnFormsSeen(std::vector<FormData>(), TimeTicks()); |
1137 } | 1134 } |
1138 | 1135 |
1139 // Test that credit card infobar metrics are logged correctly. | 1136 // Test that credit card infobar metrics are logged correctly. |
1140 TEST_F(AutofillMetricsTest, CreditCardInfoBar) { | 1137 TEST_F(AutofillMetricsTest, CreditCardInfoBar) { |
1141 InfoBarService::CreateForWebContents(web_contents()); | |
1142 | |
1143 MockAutofillMetrics metric_logger; | 1138 MockAutofillMetrics metric_logger; |
1144 ::testing::InSequence dummy; | 1139 ::testing::InSequence dummy; |
1145 | 1140 |
1146 // Accept the infobar. | 1141 // Accept the infobar. |
1147 { | 1142 { |
1148 CreditCard* credit_card; | 1143 CreditCard* credit_card; |
1149 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, | 1144 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger, |
1150 &credit_card)); | 1145 &credit_card)); |
| 1146 ASSERT_TRUE(infobar); |
1151 EXPECT_CALL(personal_data_, SaveImportedCreditCard(*credit_card)); | 1147 EXPECT_CALL(personal_data_, SaveImportedCreditCard(*credit_card)); |
1152 EXPECT_CALL(metric_logger, | 1148 EXPECT_CALL(metric_logger, |
1153 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)).Times(1); | 1149 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)).Times(1); |
1154 EXPECT_CALL(metric_logger, | 1150 EXPECT_CALL(metric_logger, |
1155 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); | 1151 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
1156 EXPECT_TRUE(static_cast<ConfirmInfoBarDelegate*>(infobar.get())->Accept()); | 1152 EXPECT_TRUE(infobar->Accept()); |
1157 } | 1153 } |
1158 | 1154 |
1159 // Cancel the infobar. | 1155 // Cancel the infobar. |
1160 { | 1156 { |
1161 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); | 1157 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger, |
| 1158 NULL)); |
| 1159 ASSERT_TRUE(infobar); |
1162 EXPECT_CALL(metric_logger, | 1160 EXPECT_CALL(metric_logger, |
1163 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); | 1161 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); |
1164 EXPECT_CALL(metric_logger, | 1162 EXPECT_CALL(metric_logger, |
1165 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); | 1163 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
1166 EXPECT_TRUE(static_cast<ConfirmInfoBarDelegate*>(infobar.get())->Cancel()); | 1164 EXPECT_TRUE(infobar->Cancel()); |
1167 } | 1165 } |
1168 | 1166 |
1169 // Dismiss the infobar. | 1167 // Dismiss the infobar. |
1170 { | 1168 { |
1171 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); | 1169 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger, |
| 1170 NULL)); |
| 1171 ASSERT_TRUE(infobar); |
1172 EXPECT_CALL(metric_logger, | 1172 EXPECT_CALL(metric_logger, |
1173 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); | 1173 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); |
1174 EXPECT_CALL(metric_logger, | 1174 EXPECT_CALL(metric_logger, |
1175 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); | 1175 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
1176 infobar->InfoBarDismissed(); | 1176 infobar->InfoBarDismissed(); |
1177 } | 1177 } |
1178 | 1178 |
1179 // Ignore the infobar. | 1179 // Ignore the infobar. |
1180 { | 1180 { |
1181 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); | 1181 scoped_ptr<ConfirmInfoBarDelegate> infobar(CreateDelegate(&metric_logger, |
| 1182 NULL)); |
| 1183 ASSERT_TRUE(infobar); |
1182 EXPECT_CALL(metric_logger, | 1184 EXPECT_CALL(metric_logger, |
1183 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(1); | 1185 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(1); |
1184 } | 1186 } |
1185 } | 1187 } |
1186 | 1188 |
1187 // Test that server query response experiment id metrics are logged correctly. | 1189 // Test that server query response experiment id metrics are logged correctly. |
1188 TEST_F(AutofillMetricsTest, ServerQueryExperimentIdForQuery) { | 1190 TEST_F(AutofillMetricsTest, ServerQueryExperimentIdForQuery) { |
1189 MockAutofillMetrics metric_logger; | 1191 MockAutofillMetrics metric_logger; |
1190 ::testing::InSequence dummy; | 1192 ::testing::InSequence dummy; |
1191 | 1193 |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1560 autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); | 1562 autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); |
1561 autofill_manager_->OnDidFillAutofillFormData( | 1563 autofill_manager_->OnDidFillAutofillFormData( |
1562 TimeTicks::FromInternalValue(5)); | 1564 TimeTicks::FromInternalValue(5)); |
1563 autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), | 1565 autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), |
1564 TimeTicks::FromInternalValue(3)); | 1566 TimeTicks::FromInternalValue(3)); |
1565 autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17)); | 1567 autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17)); |
1566 autofill_manager_->Reset(); | 1568 autofill_manager_->Reset(); |
1567 Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger()); | 1569 Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger()); |
1568 } | 1570 } |
1569 } | 1571 } |
OLD | NEW |