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

Side by Side Diff: components/autofill/core/browser/autofill_metrics_unittest.cc

Issue 964563002: Replace SetAuthenticatedUsername with SetAuthenticatedAccountId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@priv
Patch Set: rebased Created 5 years, 8 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/autofill/core/browser/autofill_metrics.h" 5 #include "components/autofill/core/browser/autofill_metrics.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "base/test/histogram_tester.h" 14 #include "base/test/histogram_tester.h"
15 #include "base/time/time.h" 15 #include "base/time/time.h"
16 #include "components/autofill/core/browser/autofill_external_delegate.h" 16 #include "components/autofill/core/browser/autofill_external_delegate.h"
17 #include "components/autofill/core/browser/autofill_manager.h" 17 #include "components/autofill/core/browser/autofill_manager.h"
18 #include "components/autofill/core/browser/autofill_test_utils.h" 18 #include "components/autofill/core/browser/autofill_test_utils.h"
19 #include "components/autofill/core/browser/personal_data_manager.h" 19 #include "components/autofill/core/browser/personal_data_manager.h"
20 #include "components/autofill/core/browser/test_autofill_client.h" 20 #include "components/autofill/core/browser/test_autofill_client.h"
21 #include "components/autofill/core/browser/test_autofill_driver.h" 21 #include "components/autofill/core/browser/test_autofill_driver.h"
22 #include "components/autofill/core/browser/wallet/real_pan_wallet_client.h" 22 #include "components/autofill/core/browser/wallet/real_pan_wallet_client.h"
23 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" 23 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
24 #include "components/autofill/core/common/autofill_pref_names.h" 24 #include "components/autofill/core/common/autofill_pref_names.h"
25 #include "components/autofill/core/common/form_data.h" 25 #include "components/autofill/core/common/form_data.h"
26 #include "components/autofill/core/common/form_field_data.h" 26 #include "components/autofill/core/common/form_field_data.h"
27 #include "components/rappor/test_rappor_service.h" 27 #include "components/rappor/test_rappor_service.h"
28 #include "components/signin/core/browser/account_tracker_service.h"
29 #include "components/signin/core/browser/test_signin_client.h"
28 #include "components/signin/core/common/signin_pref_names.h" 30 #include "components/signin/core/common/signin_pref_names.h"
29 #include "components/webdata/common/web_data_results.h" 31 #include "components/webdata/common/web_data_results.h"
30 #include "testing/gtest/include/gtest/gtest.h" 32 #include "testing/gtest/include/gtest/gtest.h"
31 #include "ui/gfx/geometry/rect.h" 33 #include "ui/gfx/geometry/rect.h"
32 #include "url/gurl.h" 34 #include "url/gurl.h"
33 35
34 using base::ASCIIToUTF16; 36 using base::ASCIIToUTF16;
35 using base::TimeTicks; 37 using base::TimeTicks;
36 38
37 namespace autofill { 39 namespace autofill {
38 namespace { 40 namespace {
39 41
40 class TestPersonalDataManager : public PersonalDataManager { 42 class TestPersonalDataManager : public PersonalDataManager {
41 public: 43 public:
42 TestPersonalDataManager() 44 TestPersonalDataManager()
43 : PersonalDataManager("en-US"), 45 : PersonalDataManager("en-US"),
44 autofill_enabled_(true) { 46 autofill_enabled_(true) {
45 CreateTestAutofillProfiles(&web_profiles_); 47 CreateTestAutofillProfiles(&web_profiles_);
46 } 48 }
47 49
50 using PersonalDataManager::set_account_tracker;
48 using PersonalDataManager::set_database; 51 using PersonalDataManager::set_database;
49 using PersonalDataManager::SetPrefService; 52 using PersonalDataManager::SetPrefService;
50 53
51 // Overridden to avoid a trip to the database. This should be a no-op except 54 // Overridden to avoid a trip to the database. This should be a no-op except
52 // for the side-effect of logging the profile count. 55 // for the side-effect of logging the profile count.
53 void LoadProfiles() override { 56 void LoadProfiles() override {
54 { 57 {
55 std::vector<AutofillProfile*> profiles; 58 std::vector<AutofillProfile*> profiles;
56 web_profiles_.release(&profiles); 59 web_profiles_.release(&profiles);
57 WDResult<std::vector<AutofillProfile*> > result(AUTOFILL_PROFILES_RESULT, 60 WDResult<std::vector<AutofillProfile*> > result(AUTOFILL_PROFILES_RESULT,
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 ~AutofillMetricsTest() override; 280 ~AutofillMetricsTest() override;
278 281
279 void SetUp() override; 282 void SetUp() override;
280 void TearDown() override; 283 void TearDown() override;
281 284
282 protected: 285 protected:
283 void EnableWalletSync(); 286 void EnableWalletSync();
284 287
285 base::MessageLoop message_loop_; 288 base::MessageLoop message_loop_;
286 TestAutofillClient autofill_client_; 289 TestAutofillClient autofill_client_;
290 scoped_ptr<AccountTrackerService> account_tracker_;
291 scoped_ptr<TestSigninClient> signin_client_;
287 scoped_ptr<TestAutofillDriver> autofill_driver_; 292 scoped_ptr<TestAutofillDriver> autofill_driver_;
288 scoped_ptr<TestAutofillManager> autofill_manager_; 293 scoped_ptr<TestAutofillManager> autofill_manager_;
289 scoped_ptr<TestPersonalDataManager> personal_data_; 294 scoped_ptr<TestPersonalDataManager> personal_data_;
290 scoped_ptr<AutofillExternalDelegate> external_delegate_; 295 scoped_ptr<AutofillExternalDelegate> external_delegate_;
291 }; 296 };
292 297
293 AutofillMetricsTest::~AutofillMetricsTest() { 298 AutofillMetricsTest::~AutofillMetricsTest() {
294 // Order of destruction is important as AutofillManager relies on 299 // Order of destruction is important as AutofillManager relies on
295 // PersonalDataManager to be around when it gets destroyed. 300 // PersonalDataManager to be around when it gets destroyed.
296 autofill_manager_.reset(); 301 autofill_manager_.reset();
297 } 302 }
298 303
299 void AutofillMetricsTest::SetUp() { 304 void AutofillMetricsTest::SetUp() {
300 autofill_client_.SetPrefs(test::PrefServiceForTesting()); 305 autofill_client_.SetPrefs(test::PrefServiceForTesting());
301 306
302 // Ensure Mac OS X does not pop up a modal dialog for the Address Book. 307 // Ensure Mac OS X does not pop up a modal dialog for the Address Book.
303 test::DisableSystemServices(autofill_client_.GetPrefs()); 308 test::DisableSystemServices(autofill_client_.GetPrefs());
304 309
310 // Setup account tracker.
311 signin_client_.reset(new TestSigninClient(autofill_client_.GetPrefs()));
312 account_tracker_.reset(new AccountTrackerService());
313 account_tracker_->Initialize(
314 autofill_client_.GetIdentityProvider()->GetTokenService(),
315 signin_client_.get());
316
305 personal_data_.reset(new TestPersonalDataManager()); 317 personal_data_.reset(new TestPersonalDataManager());
306 personal_data_->set_database(autofill_client_.GetDatabase()); 318 personal_data_->set_database(autofill_client_.GetDatabase());
307 personal_data_->SetPrefService(autofill_client_.GetPrefs()); 319 personal_data_->SetPrefService(autofill_client_.GetPrefs());
320 personal_data_->set_account_tracker(account_tracker_.get());
308 autofill_driver_.reset(new TestAutofillDriver()); 321 autofill_driver_.reset(new TestAutofillDriver());
309 autofill_manager_.reset(new TestAutofillManager( 322 autofill_manager_.reset(new TestAutofillManager(
310 autofill_driver_.get(), &autofill_client_, personal_data_.get())); 323 autofill_driver_.get(), &autofill_client_, personal_data_.get()));
311 324
312 external_delegate_.reset(new AutofillExternalDelegate( 325 external_delegate_.reset(new AutofillExternalDelegate(
313 autofill_manager_.get(), 326 autofill_manager_.get(),
314 autofill_driver_.get())); 327 autofill_driver_.get()));
315 autofill_manager_->SetExternalDelegate(external_delegate_.get()); 328 autofill_manager_->SetExternalDelegate(external_delegate_.get());
316 } 329 }
317 330
318 void AutofillMetricsTest::TearDown() { 331 void AutofillMetricsTest::TearDown() {
319 // Order of destruction is important as AutofillManager relies on 332 // Order of destruction is important as AutofillManager relies on
320 // PersonalDataManager to be around when it gets destroyed. 333 // PersonalDataManager to be around when it gets destroyed.
321 autofill_manager_.reset(); 334 autofill_manager_.reset();
322 autofill_driver_.reset(); 335 autofill_driver_.reset();
323 personal_data_.reset(); 336 personal_data_.reset();
337 account_tracker_->Shutdown();
338 account_tracker_.reset();
339 signin_client_.reset();
324 } 340 }
325 341
326 void AutofillMetricsTest::EnableWalletSync() { 342 void AutofillMetricsTest::EnableWalletSync() {
327 autofill_client_.GetPrefs()->SetBoolean( 343 autofill_client_.GetPrefs()->SetBoolean(
328 prefs::kAutofillWalletSyncExperimentEnabled, true); 344 prefs::kAutofillWalletSyncExperimentEnabled, true);
345 std::string account_id =
346 account_tracker_->SeedAccountInfo("12345", "syncuser@example.com");
329 autofill_client_.GetPrefs()->SetString( 347 autofill_client_.GetPrefs()->SetString(
330 ::prefs::kGoogleServicesUsername, "syncuser@example.com"); 348 ::prefs::kGoogleServicesAccountId, account_id);
331 } 349 }
332 350
333 // Test that we log quality metrics appropriately. 351 // Test that we log quality metrics appropriately.
334 TEST_F(AutofillMetricsTest, QualityMetrics) { 352 TEST_F(AutofillMetricsTest, QualityMetrics) {
335 // Set up our form data. 353 // Set up our form data.
336 FormData form; 354 FormData form;
337 form.name = ASCIIToUTF16("TestForm"); 355 form.name = ASCIIToUTF16("TestForm");
338 form.origin = GURL("http://example.com/form.html"); 356 form.origin = GURL("http://example.com/form.html");
339 form.action = GURL("http://example.com/submit.html"); 357 form.action = GURL("http://example.com/submit.html");
340 form.user_submitted = true; 358 form.user_submitted = true;
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 personal_data_->LoadProfiles(); 1062 personal_data_->LoadProfiles();
1045 histogram_tester.ExpectTotalCount("Autofill.StoredProfileCount", 0); 1063 histogram_tester.ExpectTotalCount("Autofill.StoredProfileCount", 0);
1046 } 1064 }
1047 } 1065 }
1048 1066
1049 // Test that we correctly log when Autofill is enabled. 1067 // Test that we correctly log when Autofill is enabled.
1050 TEST_F(AutofillMetricsTest, AutofillIsEnabledAtStartup) { 1068 TEST_F(AutofillMetricsTest, AutofillIsEnabledAtStartup) {
1051 base::HistogramTester histogram_tester; 1069 base::HistogramTester histogram_tester;
1052 personal_data_->set_autofill_enabled(true); 1070 personal_data_->set_autofill_enabled(true);
1053 personal_data_->Init( 1071 personal_data_->Init(
1054 autofill_client_.GetDatabase(), autofill_client_.GetPrefs(), false); 1072 autofill_client_.GetDatabase(), autofill_client_.GetPrefs(),
1073 account_tracker_.get(), false);
1055 histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", true, 1); 1074 histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", true, 1);
1056 } 1075 }
1057 1076
1058 // Test that we correctly log when Autofill is disabled. 1077 // Test that we correctly log when Autofill is disabled.
1059 TEST_F(AutofillMetricsTest, AutofillIsDisabledAtStartup) { 1078 TEST_F(AutofillMetricsTest, AutofillIsDisabledAtStartup) {
1060 base::HistogramTester histogram_tester; 1079 base::HistogramTester histogram_tester;
1061 personal_data_->set_autofill_enabled(false); 1080 personal_data_->set_autofill_enabled(false);
1062 personal_data_->Init( 1081 personal_data_->Init(
1063 autofill_client_.GetDatabase(), autofill_client_.GetPrefs(), false); 1082 autofill_client_.GetDatabase(), autofill_client_.GetPrefs(),
1083 account_tracker_.get(), false);
1064 histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", false, 1); 1084 histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", false, 1);
1065 } 1085 }
1066 1086
1067 // Test that we log the number of Autofill suggestions when filling a form. 1087 // Test that we log the number of Autofill suggestions when filling a form.
1068 TEST_F(AutofillMetricsTest, AddressSuggestionsCount) { 1088 TEST_F(AutofillMetricsTest, AddressSuggestionsCount) {
1069 // Set up our form data. 1089 // Set up our form data.
1070 FormData form; 1090 FormData form;
1071 form.name = ASCIIToUTF16("TestForm"); 1091 form.name = ASCIIToUTF16("TestForm");
1072 form.origin = GURL("http://example.com/form.html"); 1092 form.origin = GURL("http://example.com/form.html");
1073 form.action = GURL("http://example.com/submit.html"); 1093 form.action = GURL("http://example.com/submit.html");
(...skipping 1946 matching lines...) Expand 10 before | Expand all | Expand 10 after
3020 histogram_tester.ExpectTotalCount( 3040 histogram_tester.ExpectTotalCount(
3021 "Autofill.FillDuration.FromInteraction.WithAutofill", 0); 3041 "Autofill.FillDuration.FromInteraction.WithAutofill", 0);
3022 histogram_tester.ExpectTotalCount( 3042 histogram_tester.ExpectTotalCount(
3023 "Autofill.FillDuration.FromInteraction.WithoutAutofill", 0); 3043 "Autofill.FillDuration.FromInteraction.WithoutAutofill", 0);
3024 3044
3025 autofill_manager_->Reset(); 3045 autofill_manager_->Reset();
3026 } 3046 }
3027 } 3047 }
3028 3048
3029 } // namespace autofill 3049 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698