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

Side by Side Diff: chrome/browser/autofill/autofill_manager_unittest.cc

Issue 10168017: Only enable password generation if password manager and autofill are both (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More comments Created 8 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 | Annotate | Revision Log
OLDNEW
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/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/string16.h" 10 #include "base/string16.h"
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 MessageLoop::current()->Run(); 481 MessageLoop::current()->Run();
482 } else { 482 } else {
483 did_finish_async_form_submit_ = false; 483 did_finish_async_form_submit_ = false;
484 } 484 }
485 } 485 }
486 486
487 virtual void UploadFormData(const FormStructure& submitted_form) OVERRIDE { 487 virtual void UploadFormData(const FormStructure& submitted_form) OVERRIDE {
488 submitted_form_signature_ = submitted_form.FormSignature(); 488 submitted_form_signature_ = submitted_form.FormSignature();
489 } 489 }
490 490
491 virtual void SendPasswordSyncStateToRenderer( 491 virtual void SendPasswordGenerationStateToRenderer(
492 content::RenderViewHost* host, bool enabled) OVERRIDE { 492 content::RenderViewHost* host, bool enabled) OVERRIDE {
493 sent_states_.push_back(enabled); 493 sent_states_.push_back(enabled);
494 } 494 }
495 495
496 const std::vector<bool>& GetSentStates() { 496 const std::vector<bool>& GetSentStates() {
497 return sent_states_; 497 return sent_states_;
498 } 498 }
499 499
500 void ClearSentStates() { 500 void ClearSentStates() {
501 sent_states_.clear(); 501 sent_states_.clear();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 &personal_data_); 576 &personal_data_);
577 577
578 file_thread_.Start(); 578 file_thread_.Start();
579 } 579 }
580 580
581 virtual void TearDown() OVERRIDE { 581 virtual void TearDown() OVERRIDE {
582 file_thread_.Stop(); 582 file_thread_.Stop();
583 TabContentsWrapperTestHarness::TearDown(); 583 TabContentsWrapperTestHarness::TearDown();
584 } 584 }
585 585
586 void UpdatePasswordSyncState(bool new_renderer) { 586 void UpdatePasswordGenerationState(bool new_renderer) {
587 autofill_manager_->UpdatePasswordSyncState(NULL, new_renderer); 587 autofill_manager_->UpdatePasswordGenerationState(NULL, new_renderer);
588 } 588 }
589 589
590 void GetAutofillSuggestions(int query_id, 590 void GetAutofillSuggestions(int query_id,
591 const webkit::forms::FormData& form, 591 const webkit::forms::FormData& form,
592 const webkit::forms::FormField& field) { 592 const webkit::forms::FormField& field) {
593 autofill_manager_->OnQueryFormFieldAutofill(query_id, 593 autofill_manager_->OnQueryFormFieldAutofill(query_id,
594 form, 594 form,
595 field, 595 field,
596 gfx::Rect(), 596 gfx::Rect(),
597 false); 597 false);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 return autofill_manager_->sync_service_; 677 return autofill_manager_->sync_service_;
678 } 678 }
679 679
680 protected: 680 protected:
681 content::TestBrowserThread ui_thread_; 681 content::TestBrowserThread ui_thread_;
682 content::TestBrowserThread file_thread_; 682 content::TestBrowserThread file_thread_;
683 683
684 scoped_refptr<TestAutofillManager> autofill_manager_; 684 scoped_refptr<TestAutofillManager> autofill_manager_;
685 TestPersonalDataManager personal_data_; 685 TestPersonalDataManager personal_data_;
686 686
687 // Used when we want an off the record profile. This will store the original
688 // profile from which the off the record profile is derived.
689 scoped_ptr<Profile> other_browser_context_;
690
687 private: 691 private:
688 DISALLOW_COPY_AND_ASSIGN(AutofillManagerTest); 692 DISALLOW_COPY_AND_ASSIGN(AutofillManagerTest);
689 }; 693 };
690 694
691 class TestFormStructure : public FormStructure { 695 class TestFormStructure : public FormStructure {
692 public: 696 public:
693 explicit TestFormStructure(const FormData& form) : FormStructure(form) {} 697 explicit TestFormStructure(const FormData& form) : FormStructure(form) {}
694 virtual ~TestFormStructure() {} 698 virtual ~TestFormStructure() {}
695 699
696 void SetFieldTypes(const std::vector<AutofillFieldType>& heuristic_types, 700 void SetFieldTypes(const std::vector<AutofillFieldType>& heuristic_types,
(...skipping 2183 matching lines...) Expand 10 before | Expand all | Expand 10 after
2880 autofill_test::CreateTestFormField("", "20", "901", "text", &field); 2884 autofill_test::CreateTestFormField("", "20", "901", "text", &field);
2881 types.clear(); 2885 types.clear();
2882 types.insert(UNKNOWN_TYPE); 2886 types.insert(UNKNOWN_TYPE);
2883 form.fields.push_back(field); 2887 form.fields.push_back(field);
2884 expected_types.push_back(types); 2888 expected_types.push_back(types);
2885 2889
2886 autofill_manager_->set_expected_submitted_field_types(expected_types); 2890 autofill_manager_->set_expected_submitted_field_types(expected_types);
2887 FormSubmitted(form); 2891 FormSubmitted(form);
2888 } 2892 }
2889 2893
2890 TEST_F(AutofillManagerTest, UpdatePasswordSyncState) { 2894 TEST_F(AutofillManagerTest, UpdatePasswordGenerationState) {
2891 // Allow this test to control what should get synced. 2895 // Allow this test to control what should get synced.
2892 profile()->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false); 2896 profile()->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false);
2893 2897
2894 // Sync some things, but not passwords. Shouldn't send anything since 2898 // Sync some things, but not passwords. Shouldn't send anything since
2895 // password generation is disabled by default. 2899 // password generation is disabled by default.
2896 ProfileSyncService* sync_service = GetProfileSyncService(); 2900 ProfileSyncService* sync_service = GetProfileSyncService();
2897 sync_service->SetSyncSetupCompleted(); 2901 sync_service->SetSyncSetupCompleted();
2898 syncable::ModelTypeSet preferred_set; 2902 syncable::ModelTypeSet preferred_set;
2899 preferred_set.Put(syncable::EXTENSIONS); 2903 preferred_set.Put(syncable::EXTENSIONS);
2900 preferred_set.Put(syncable::PREFERENCES); 2904 preferred_set.Put(syncable::PREFERENCES);
2901 sync_service->ChangePreferredDataTypes(preferred_set); 2905 sync_service->ChangePreferredDataTypes(preferred_set);
2902 syncable::ModelTypeSet new_set = sync_service->GetPreferredDataTypes(); 2906 syncable::ModelTypeSet new_set = sync_service->GetPreferredDataTypes();
2903 UpdatePasswordSyncState(false); 2907 UpdatePasswordGenerationState(false);
2904 EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); 2908 EXPECT_EQ(0u, autofill_manager_->GetSentStates().size());
2905 2909
2906 // Now sync passwords. 2910 // Now sync passwords.
2907 preferred_set.Put(syncable::PASSWORDS); 2911 preferred_set.Put(syncable::PASSWORDS);
2908 sync_service->ChangePreferredDataTypes(preferred_set); 2912 sync_service->ChangePreferredDataTypes(preferred_set);
2909 UpdatePasswordSyncState(false); 2913 UpdatePasswordGenerationState(false);
2910 EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); 2914 EXPECT_EQ(1u, autofill_manager_->GetSentStates().size());
2911 EXPECT_TRUE(autofill_manager_->GetSentStates()[0]); 2915 EXPECT_TRUE(autofill_manager_->GetSentStates()[0]);
2912 autofill_manager_->ClearSentStates(); 2916 autofill_manager_->ClearSentStates();
2913 2917
2914 // Add some additional synced state. Nothing should be sent. 2918 // Add some additional synced state. Nothing should be sent.
2915 preferred_set.Put(syncable::THEMES); 2919 preferred_set.Put(syncable::THEMES);
2916 sync_service->ChangePreferredDataTypes(preferred_set); 2920 sync_service->ChangePreferredDataTypes(preferred_set);
2917 UpdatePasswordSyncState(false); 2921 UpdatePasswordGenerationState(false);
2918 EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); 2922 EXPECT_EQ(0u, autofill_manager_->GetSentStates().size());
2919 2923
2920 // Disable syncing. This should be sent. 2924 // Disable syncing. This should disable the feature.
2921 sync_service->DisableForUser(); 2925 sync_service->DisableForUser();
2922 UpdatePasswordSyncState(false); 2926 UpdatePasswordGenerationState(false);
2923 EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); 2927 EXPECT_EQ(1u, autofill_manager_->GetSentStates().size());
2924 EXPECT_FALSE(autofill_manager_->GetSentStates()[0]); 2928 EXPECT_FALSE(autofill_manager_->GetSentStates()[0]);
2925 autofill_manager_->ClearSentStates(); 2929 autofill_manager_->ClearSentStates();
2926 2930
2931 // Disable password manager by going incognito, and re-enable syncing. The
2932 // feature should still be disabled, and nothing will be sent.
2933 sync_service->SetSyncSetupCompleted();
2934 profile()->set_incognito(true);
2935 UpdatePasswordGenerationState(false);
2936 EXPECT_EQ(0u, autofill_manager_->GetSentStates().size());
2937
2927 // When a new render_view is created, we send the state even if it's the 2938 // When a new render_view is created, we send the state even if it's the
2928 // same. 2939 // same.
2929 UpdatePasswordSyncState(true); 2940 UpdatePasswordGenerationState(true);
2930 EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); 2941 EXPECT_EQ(1u, autofill_manager_->GetSentStates().size());
2931 EXPECT_FALSE(autofill_manager_->GetSentStates()[0]); 2942 EXPECT_FALSE(autofill_manager_->GetSentStates()[0]);
2932 autofill_manager_->ClearSentStates(); 2943 autofill_manager_->ClearSentStates();
2933 } 2944 }
2934 2945
2935 namespace { 2946 namespace {
2936 2947
2937 class MockAutofillExternalDelegate : public TestAutofillExternalDelegate { 2948 class MockAutofillExternalDelegate : public TestAutofillExternalDelegate {
2938 public: 2949 public:
2939 explicit MockAutofillExternalDelegate(TabContentsWrapper* wrapper, 2950 explicit MockAutofillExternalDelegate(TabContentsWrapper* wrapper,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2992 3003
2993 AutofillManager* autofill_manager = contents_wrapper()->autofill_manager(); 3004 AutofillManager* autofill_manager = contents_wrapper()->autofill_manager();
2994 EXPECT_TRUE(autofill_manager->external_delegate()); 3005 EXPECT_TRUE(autofill_manager->external_delegate());
2995 3006
2996 AutocompleteHistoryManager* autocomplete_history_manager = 3007 AutocompleteHistoryManager* autocomplete_history_manager =
2997 contents_wrapper()->autocomplete_history_manager(); 3008 contents_wrapper()->autocomplete_history_manager();
2998 EXPECT_TRUE(autocomplete_history_manager->external_delegate()); 3009 EXPECT_TRUE(autocomplete_history_manager->external_delegate());
2999 } 3010 }
3000 3011
3001 #endif // OS_ANDROID 3012 #endif // OS_ANDROID
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_manager.cc ('k') | chrome/browser/password_manager/password_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698