OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/string16.h" | 9 #include "base/string16.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
175 | 175 |
176 private: | 176 private: |
177 std::string server_experiment_id_; | 177 std::string server_experiment_id_; |
178 DISALLOW_COPY_AND_ASSIGN(TestFormStructure); | 178 DISALLOW_COPY_AND_ASSIGN(TestFormStructure); |
179 }; | 179 }; |
180 | 180 |
181 } // namespace | 181 } // namespace |
182 | 182 |
183 class AutofillMetricsTest : public TabContentsWrapperTestHarness { | 183 class AutofillMetricsTest : public TabContentsWrapperTestHarness { |
184 public: | 184 public: |
185 AutofillMetricsTest() {} | 185 AutofillMetricsTest(); |
186 virtual ~AutofillMetricsTest() { | 186 virtual ~AutofillMetricsTest(); |
187 // Order of destruction is important as AutofillManager relies on | |
188 // PersonalDataManager to be around when it gets destroyed. | |
189 autofill_manager_.reset(NULL); | |
190 test_personal_data_ = NULL; | |
191 } | |
192 | 187 |
193 virtual void SetUp() { | 188 virtual void SetUp(); |
194 TabContentsWrapperTestHarness::SetUp(); | |
195 test_personal_data_ = new TestPersonalDataManager(); | |
196 autofill_manager_.reset(new TestAutofillManager(contents(), | |
197 test_personal_data_.get())); | |
198 } | |
199 | 189 |
200 protected: | 190 protected: |
191 AutofillCCInfoBarDelegate* CreateDelegate(MockAutofillMetrics* metric_logger, | |
192 CreditCard** created_card); | |
193 | |
201 scoped_ptr<TestAutofillManager> autofill_manager_; | 194 scoped_ptr<TestAutofillManager> autofill_manager_; |
202 scoped_refptr<TestPersonalDataManager> test_personal_data_; | 195 scoped_refptr<TestPersonalDataManager> test_personal_data_; |
203 | 196 |
204 private: | 197 private: |
205 DISALLOW_COPY_AND_ASSIGN(AutofillMetricsTest); | 198 DISALLOW_COPY_AND_ASSIGN(AutofillMetricsTest); |
206 }; | 199 }; |
207 | 200 |
201 AutofillMetricsTest::AutofillMetricsTest() { | |
202 } | |
203 | |
204 AutofillMetricsTest::~AutofillMetricsTest() { | |
205 // Order of destruction is important as AutofillManager relies on | |
206 // PersonalDataManager to be around when it gets destroyed. | |
207 autofill_manager_.reset(NULL); | |
208 test_personal_data_ = NULL; | |
209 } | |
210 | |
211 void AutofillMetricsTest::SetUp() { | |
212 TabContentsWrapperTestHarness::SetUp(); | |
213 test_personal_data_ = new TestPersonalDataManager(); | |
214 autofill_manager_.reset(new TestAutofillManager(contents(), | |
215 test_personal_data_.get())); | |
216 } | |
217 | |
218 AutofillCCInfoBarDelegate* AutofillMetricsTest::CreateDelegate( | |
219 MockAutofillMetrics* metric_logger, | |
220 CreditCard** created_card) { | |
221 EXPECT_CALL(*metric_logger, | |
222 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); | |
223 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.
| |
224 if (created_card) | |
225 *created_card = credit_card; | |
226 return new AutofillCCInfoBarDelegate(contents(), credit_card, | |
227 test_personal_data_.get(), metric_logger); | |
228 } | |
229 | |
208 // Test that we log quality metrics appropriately. | 230 // Test that we log quality metrics appropriately. |
209 TEST_F(AutofillMetricsTest, QualityMetrics) { | 231 TEST_F(AutofillMetricsTest, QualityMetrics) { |
210 // Set up our form data. | 232 // Set up our form data. |
211 FormData form; | 233 FormData form; |
212 form.name = ASCIIToUTF16("TestForm"); | 234 form.name = ASCIIToUTF16("TestForm"); |
213 form.method = ASCIIToUTF16("POST"); | 235 form.method = ASCIIToUTF16("POST"); |
214 form.origin = GURL("http://example.com/form.html"); | 236 form.origin = GURL("http://example.com/form.html"); |
215 form.action = GURL("http://example.com/submit.html"); | 237 form.action = GURL("http://example.com/submit.html"); |
216 form.user_submitted = true; | 238 form.user_submitted = true; |
217 | 239 |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
886 EXPECT_CALL(*autofill_manager_->metric_logger(), | 908 EXPECT_CALL(*autofill_manager_->metric_logger(), |
887 LogIsAutofillEnabledAtPageLoad(false)).Times(1); | 909 LogIsAutofillEnabledAtPageLoad(false)).Times(1); |
888 | 910 |
889 autofill_manager_->set_autofill_enabled(false); | 911 autofill_manager_->set_autofill_enabled(false); |
890 autofill_manager_->OnFormsSeen(std::vector<FormData>()); | 912 autofill_manager_->OnFormsSeen(std::vector<FormData>()); |
891 } | 913 } |
892 | 914 |
893 // Test that credit card infobar metrics are logged correctly. | 915 // Test that credit card infobar metrics are logged correctly. |
894 TEST_F(AutofillMetricsTest, CreditCardInfoBar) { | 916 TEST_F(AutofillMetricsTest, CreditCardInfoBar) { |
895 MockAutofillMetrics metric_logger; | 917 MockAutofillMetrics metric_logger; |
896 CreditCard* credit_card; | |
897 AutofillCCInfoBarDelegate* infobar; | |
898 ::testing::InSequence dummy; | 918 ::testing::InSequence dummy; |
899 | 919 |
900 // Accept the infobar. | 920 // Accept the infobar. |
901 EXPECT_CALL(metric_logger, | 921 { |
902 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); | 922 CreditCard* credit_card; |
903 credit_card = new CreditCard(); | 923 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, |
904 infobar = new AutofillCCInfoBarDelegate(contents(), | 924 &credit_card)); |
905 credit_card, | 925 EXPECT_CALL(*test_personal_data_.get(), |
906 test_personal_data_.get(), | 926 SaveImportedCreditCard(*credit_card)); |
907 &metric_logger); | 927 EXPECT_CALL(metric_logger, |
908 | 928 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)).Times(1); |
909 EXPECT_CALL(*test_personal_data_.get(), SaveImportedCreditCard(*credit_card)); | 929 EXPECT_CALL(metric_logger, |
910 EXPECT_CALL(metric_logger, | 930 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
911 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_ACCEPTED)) | 931 EXPECT_TRUE(static_cast<ConfirmInfoBarDelegate*>(infobar.get())->Accept()); |
912 .Times(1); | 932 } |
913 EXPECT_CALL(metric_logger, | |
914 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) | |
915 .Times(0); | |
916 EXPECT_TRUE(infobar->Accept()); | |
917 infobar->InfoBarClosed(); | |
918 | 933 |
919 // Cancel the infobar. | 934 // Cancel the infobar. |
920 EXPECT_CALL(metric_logger, | 935 { |
921 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); | 936 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); |
922 credit_card = new CreditCard(); | 937 EXPECT_CALL(metric_logger, |
923 infobar = new AutofillCCInfoBarDelegate(contents(), | 938 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); |
924 credit_card, | 939 EXPECT_CALL(metric_logger, |
925 test_personal_data_.get(), | 940 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
926 &metric_logger); | 941 EXPECT_TRUE(static_cast<ConfirmInfoBarDelegate*>(infobar.get())->Cancel()); |
927 | 942 } |
928 EXPECT_CALL(metric_logger, | |
929 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)) | |
930 .Times(1); | |
931 EXPECT_CALL(metric_logger, | |
932 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) | |
933 .Times(0); | |
934 EXPECT_TRUE(infobar->Cancel()); | |
935 infobar->InfoBarClosed(); | |
936 | 943 |
937 // Dismiss the infobar. | 944 // Dismiss the infobar. |
938 EXPECT_CALL(metric_logger, | 945 { |
939 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); | 946 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); |
940 credit_card = new CreditCard(); | 947 EXPECT_CALL(metric_logger, |
941 infobar = new AutofillCCInfoBarDelegate(contents(), | 948 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)).Times(1); |
942 credit_card, | 949 EXPECT_CALL(metric_logger, |
943 test_personal_data_.get(), | 950 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(0); |
944 &metric_logger); | 951 infobar->InfoBarDismissed(); |
945 | 952 } |
946 EXPECT_CALL(metric_logger, | |
947 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_DENIED)) | |
948 .Times(1); | |
949 EXPECT_CALL(metric_logger, | |
950 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) | |
951 .Times(0); | |
952 infobar->InfoBarDismissed(); | |
953 infobar->InfoBarClosed(); | |
954 | 953 |
955 // Ignore the infobar. | 954 // Ignore the infobar. |
956 EXPECT_CALL(metric_logger, | 955 { |
957 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_SHOWN)); | 956 scoped_ptr<InfoBarDelegate> infobar(CreateDelegate(&metric_logger, NULL)); |
958 credit_card = new CreditCard(); | 957 EXPECT_CALL(metric_logger, |
959 infobar = new AutofillCCInfoBarDelegate(contents(), | 958 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)).Times(1); |
960 credit_card, | 959 } |
961 test_personal_data_.get(), | |
962 &metric_logger); | |
963 | |
964 EXPECT_CALL(metric_logger, | |
965 LogCreditCardInfoBarMetric(AutofillMetrics::INFOBAR_IGNORED)) | |
966 .Times(1); | |
967 infobar->InfoBarClosed(); | |
968 } | 960 } |
OLD | NEW |