| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 #include "chrome/browser/sync/profile_sync_service_factory.h" | 28 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 29 #include "chrome/browser/ui/autofill/tab_autofill_manager_delegate.h" | 29 #include "chrome/browser/ui/autofill/tab_autofill_manager_delegate.h" |
| 30 #include "chrome/browser/ui/browser.h" | 30 #include "chrome/browser/ui/browser.h" |
| 31 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 31 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
| 32 #include "chrome/browser/ui/tab_contents/test_tab_contents.h" | 32 #include "chrome/browser/ui/tab_contents/test_tab_contents.h" |
| 33 #include "chrome/common/autofill_messages.h" | 33 #include "chrome/common/autofill_messages.h" |
| 34 #include "chrome/common/chrome_switches.h" | 34 #include "chrome/common/chrome_switches.h" |
| 35 #include "chrome/common/pref_names.h" | 35 #include "chrome/common/pref_names.h" |
| 36 #include "chrome/test/base/testing_profile.h" | 36 #include "chrome/test/base/testing_profile.h" |
| 37 #include "content/public/browser/web_contents.h" | 37 #include "content/public/browser/web_contents.h" |
| 38 #include "content/public/common/form_data.h" |
| 39 #include "content/public/common/form_field.h" |
| 38 #include "content/public/test/mock_render_process_host.h" | 40 #include "content/public/test/mock_render_process_host.h" |
| 39 #include "content/public/test/test_browser_thread.h" | 41 #include "content/public/test/test_browser_thread.h" |
| 40 #include "googleurl/src/gurl.h" | 42 #include "googleurl/src/gurl.h" |
| 41 #include "grit/generated_resources.h" | 43 #include "grit/generated_resources.h" |
| 42 #include "ipc/ipc_test_sink.h" | 44 #include "ipc/ipc_test_sink.h" |
| 43 #include "testing/gmock/include/gmock/gmock.h" | 45 #include "testing/gmock/include/gmock/gmock.h" |
| 44 #include "testing/gtest/include/gtest/gtest.h" | 46 #include "testing/gtest/include/gtest/gtest.h" |
| 45 #include "third_party/WebKit/Source/WebKit/chromium/public/WebAutofillClient.h" | 47 #include "third_party/WebKit/Source/WebKit/chromium/public/WebAutofillClient.h" |
| 46 #include "ui/base/l10n/l10n_util.h" | 48 #include "ui/base/l10n/l10n_util.h" |
| 47 #include "ui/gfx/rect.h" | 49 #include "ui/gfx/rect.h" |
| 48 #include "webkit/forms/form_data.h" | |
| 49 #include "webkit/forms/form_field.h" | |
| 50 | 50 |
| 51 using content::BrowserThread; | 51 using content::BrowserThread; |
| 52 using content::FormData; |
| 53 using content::FormField; |
| 52 using content::WebContents; | 54 using content::WebContents; |
| 53 using testing::_; | 55 using testing::_; |
| 54 using webkit::forms::FormData; | |
| 55 using webkit::forms::FormField; | |
| 56 | 56 |
| 57 namespace { | 57 namespace { |
| 58 | 58 |
| 59 // The page ID sent to the AutofillManager from the RenderView, used to send | 59 // The page ID sent to the AutofillManager from the RenderView, used to send |
| 60 // an IPC message back to the renderer. | 60 // an IPC message back to the renderer. |
| 61 const int kDefaultPageID = 137; | 61 const int kDefaultPageID = 137; |
| 62 | 62 |
| 63 typedef Tuple5<int, | 63 typedef Tuple5<int, |
| 64 std::vector<string16>, | 64 std::vector<string16>, |
| 65 std::vector<string16>, | 65 std::vector<string16>, |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 EXPECT_EQ(expected_labels[i], labels[i]); | 294 EXPECT_EQ(expected_labels[i], labels[i]); |
| 295 EXPECT_EQ(expected_icons[i], icons[i]); | 295 EXPECT_EQ(expected_icons[i], icons[i]); |
| 296 EXPECT_EQ(expected_unique_ids[i], unique_ids[i]); | 296 EXPECT_EQ(expected_unique_ids[i], unique_ids[i]); |
| 297 } | 297 } |
| 298 } | 298 } |
| 299 | 299 |
| 300 void ExpectFilledField(const char* expected_label, | 300 void ExpectFilledField(const char* expected_label, |
| 301 const char* expected_name, | 301 const char* expected_name, |
| 302 const char* expected_value, | 302 const char* expected_value, |
| 303 const char* expected_form_control_type, | 303 const char* expected_form_control_type, |
| 304 const webkit::forms::FormField& field) { | 304 const content::FormField& field) { |
| 305 SCOPED_TRACE(expected_label); | 305 SCOPED_TRACE(expected_label); |
| 306 EXPECT_EQ(UTF8ToUTF16(expected_label), field.label); | 306 EXPECT_EQ(UTF8ToUTF16(expected_label), field.label); |
| 307 EXPECT_EQ(UTF8ToUTF16(expected_name), field.name); | 307 EXPECT_EQ(UTF8ToUTF16(expected_name), field.name); |
| 308 EXPECT_EQ(UTF8ToUTF16(expected_value), field.value); | 308 EXPECT_EQ(UTF8ToUTF16(expected_value), field.value); |
| 309 EXPECT_EQ(UTF8ToUTF16(expected_form_control_type), field.form_control_type); | 309 EXPECT_EQ(UTF8ToUTF16(expected_form_control_type), field.form_control_type); |
| 310 } | 310 } |
| 311 | 311 |
| 312 // Verifies that the |filled_form| has been filled with the given data. | 312 // Verifies that the |filled_form| has been filled with the given data. |
| 313 // Verifies address fields if |has_address_fields| is true, and verifies | 313 // Verifies address fields if |has_address_fields| is true, and verifies |
| 314 // credit card fields if |has_credit_card_fields| is true. Verifies both if both | 314 // credit card fields if |has_credit_card_fields| is true. Verifies both if both |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 virtual void TearDown() OVERRIDE { | 616 virtual void TearDown() OVERRIDE { |
| 617 file_thread_.Stop(); | 617 file_thread_.Stop(); |
| 618 TabContentsTestHarness::TearDown(); | 618 TabContentsTestHarness::TearDown(); |
| 619 } | 619 } |
| 620 | 620 |
| 621 void UpdatePasswordGenerationState(bool new_renderer) { | 621 void UpdatePasswordGenerationState(bool new_renderer) { |
| 622 autofill_manager_->UpdatePasswordGenerationState(NULL, new_renderer); | 622 autofill_manager_->UpdatePasswordGenerationState(NULL, new_renderer); |
| 623 } | 623 } |
| 624 | 624 |
| 625 void GetAutofillSuggestions(int query_id, | 625 void GetAutofillSuggestions(int query_id, |
| 626 const webkit::forms::FormData& form, | 626 const content::FormData& form, |
| 627 const webkit::forms::FormField& field) { | 627 const content::FormField& field) { |
| 628 autofill_manager_->OnQueryFormFieldAutofill(query_id, | 628 autofill_manager_->OnQueryFormFieldAutofill(query_id, |
| 629 form, | 629 form, |
| 630 field, | 630 field, |
| 631 gfx::Rect(), | 631 gfx::Rect(), |
| 632 false); | 632 false); |
| 633 } | 633 } |
| 634 | 634 |
| 635 void GetAutofillSuggestions(const webkit::forms::FormData& form, | 635 void GetAutofillSuggestions(const content::FormData& form, |
| 636 const webkit::forms::FormField& field) { | 636 const content::FormField& field) { |
| 637 GetAutofillSuggestions(kDefaultPageID, form, field); | 637 GetAutofillSuggestions(kDefaultPageID, form, field); |
| 638 } | 638 } |
| 639 | 639 |
| 640 void AutocompleteSuggestionsReturned(const std::vector<string16>& result) { | 640 void AutocompleteSuggestionsReturned(const std::vector<string16>& result) { |
| 641 tab_contents()->autocomplete_history_manager()-> | 641 tab_contents()->autocomplete_history_manager()-> |
| 642 SendSuggestions(&result); | 642 SendSuggestions(&result); |
| 643 } | 643 } |
| 644 | 644 |
| 645 void FormsSeen(const std::vector<webkit::forms::FormData>& forms) { | 645 void FormsSeen(const std::vector<content::FormData>& forms) { |
| 646 autofill_manager_->OnFormsSeen(forms, base::TimeTicks()); | 646 autofill_manager_->OnFormsSeen(forms, base::TimeTicks()); |
| 647 } | 647 } |
| 648 | 648 |
| 649 void FormSubmitted(const FormData& form) { | 649 void FormSubmitted(const FormData& form) { |
| 650 if (autofill_manager_->OnFormSubmitted(form, base::TimeTicks::Now())) | 650 if (autofill_manager_->OnFormSubmitted(form, base::TimeTicks::Now())) |
| 651 autofill_manager_->WaitForAsyncFormSubmit(); | 651 autofill_manager_->WaitForAsyncFormSubmit(); |
| 652 } | 652 } |
| 653 | 653 |
| 654 void FillAutofillFormData(int query_id, | 654 void FillAutofillFormData(int query_id, |
| 655 const webkit::forms::FormData& form, | 655 const content::FormData& form, |
| 656 const webkit::forms::FormField& field, | 656 const content::FormField& field, |
| 657 int unique_id) { | 657 int unique_id) { |
| 658 autofill_manager_->OnFillAutofillFormData(query_id, form, field, unique_id); | 658 autofill_manager_->OnFillAutofillFormData(query_id, form, field, unique_id); |
| 659 } | 659 } |
| 660 | 660 |
| 661 int PackGUIDs(const GUIDPair& cc_guid, const GUIDPair& profile_guid) const { | 661 int PackGUIDs(const GUIDPair& cc_guid, const GUIDPair& profile_guid) const { |
| 662 return autofill_manager_->PackGUIDs(cc_guid, profile_guid); | 662 return autofill_manager_->PackGUIDs(cc_guid, profile_guid); |
| 663 } | 663 } |
| 664 | 664 |
| 665 bool GetAutofillSuggestionsMessage(int* page_id, | 665 bool GetAutofillSuggestionsMessage(int* page_id, |
| 666 std::vector<string16>* values, | 666 std::vector<string16>* values, |
| (...skipping 2408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3075 namespace { | 3075 namespace { |
| 3076 | 3076 |
| 3077 class MockAutofillExternalDelegate : public TestAutofillExternalDelegate { | 3077 class MockAutofillExternalDelegate : public TestAutofillExternalDelegate { |
| 3078 public: | 3078 public: |
| 3079 explicit MockAutofillExternalDelegate(TabContents* tab_contents, | 3079 explicit MockAutofillExternalDelegate(TabContents* tab_contents, |
| 3080 AutofillManager* autofill_manager) | 3080 AutofillManager* autofill_manager) |
| 3081 : TestAutofillExternalDelegate(tab_contents, autofill_manager) {} | 3081 : TestAutofillExternalDelegate(tab_contents, autofill_manager) {} |
| 3082 virtual ~MockAutofillExternalDelegate() {} | 3082 virtual ~MockAutofillExternalDelegate() {} |
| 3083 | 3083 |
| 3084 MOCK_METHOD5(OnQuery, void(int query_id, | 3084 MOCK_METHOD5(OnQuery, void(int query_id, |
| 3085 const webkit::forms::FormData& form, | 3085 const content::FormData& form, |
| 3086 const webkit::forms::FormField& field, | 3086 const content::FormField& field, |
| 3087 const gfx::Rect& bounds, | 3087 const gfx::Rect& bounds, |
| 3088 bool display_warning)); | 3088 bool display_warning)); |
| 3089 | 3089 |
| 3090 virtual void OnQueryPlatformSpecific(int query_id, | 3090 virtual void OnQueryPlatformSpecific(int query_id, |
| 3091 const webkit::forms::FormData& form, | 3091 const content::FormData& form, |
| 3092 const webkit::forms::FormField& field, | 3092 const content::FormField& field, |
| 3093 const gfx::Rect& bounds) OVERRIDE {} | 3093 const gfx::Rect& bounds) OVERRIDE {} |
| 3094 | 3094 |
| 3095 private: | 3095 private: |
| 3096 DISALLOW_COPY_AND_ASSIGN(MockAutofillExternalDelegate); | 3096 DISALLOW_COPY_AND_ASSIGN(MockAutofillExternalDelegate); |
| 3097 }; | 3097 }; |
| 3098 | 3098 |
| 3099 } // namespace | 3099 } // namespace |
| 3100 | 3100 |
| 3101 // Test our external delegate is called at the right time. | 3101 // Test our external delegate is called at the right time. |
| 3102 TEST_F(AutofillManagerTest, TestExternalDelegate) { | 3102 TEST_F(AutofillManagerTest, TestExternalDelegate) { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 3132 | 3132 |
| 3133 AutofillManager* autofill_manager = tab_contents()->autofill_manager(); | 3133 AutofillManager* autofill_manager = tab_contents()->autofill_manager(); |
| 3134 EXPECT_TRUE(autofill_manager->external_delegate()); | 3134 EXPECT_TRUE(autofill_manager->external_delegate()); |
| 3135 | 3135 |
| 3136 AutocompleteHistoryManager* autocomplete_history_manager = | 3136 AutocompleteHistoryManager* autocomplete_history_manager = |
| 3137 tab_contents()->autocomplete_history_manager(); | 3137 tab_contents()->autocomplete_history_manager(); |
| 3138 EXPECT_TRUE(autocomplete_history_manager->external_delegate()); | 3138 EXPECT_TRUE(autocomplete_history_manager->external_delegate()); |
| 3139 } | 3139 } |
| 3140 | 3140 |
| 3141 #endif // OS_ANDROID | 3141 #endif // OS_ANDROID |
| OLD | NEW |