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 "components/autofill/content/renderer/password_autofill_agent.h" | 5 #include "components/autofill/content/renderer/password_autofill_agent.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
88 " <div>" | 88 " <div>" |
89 " <input type='password' id='password'/>" | 89 " <input type='password' id='password'/>" |
90 " </div>" | 90 " </div>" |
91 " </form>" | 91 " </form>" |
92 "</body>"; | 92 "</body>"; |
93 | 93 |
94 const char kEmptyFormHTML[] = | 94 const char kEmptyFormHTML[] = |
95 "<head> <style> form {display: inline;} </style> </head>" | 95 "<head> <style> form {display: inline;} </style> </head>" |
96 "<body> <form> </form> </body>"; | 96 "<body> <form> </form> </body>"; |
97 | 97 |
98 const char kFormWithoutPasswordsHTML[] = | |
99 "<FORM>" | |
100 " <INPUT type='text' id='random_field'/>" | |
101 " <INPUT type='text' id='username'/>" | |
102 "</FORM>"; | |
103 | |
98 const char kNonVisibleFormHTML[] = | 104 const char kNonVisibleFormHTML[] = |
99 "<head> <style> form {visibility: hidden;} </style> </head>" | 105 "<head> <style> form {visibility: hidden;} </style> </head>" |
100 "<body>" | 106 "<body>" |
101 " <form>" | 107 " <form>" |
102 " <div>" | 108 " <div>" |
103 " <input type='password' id='password'/>" | 109 " <input type='password' id='password'/>" |
104 " </div>" | 110 " </div>" |
105 " </form>" | 111 " </form>" |
106 "</body>"; | 112 "</body>"; |
107 | 113 |
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
850 | 856 |
851 LoadHTML(kNonDisplayedFormHTML); | 857 LoadHTML(kNonDisplayedFormHTML); |
852 frame = GetMainFrame(); | 858 frame = GetMainFrame(); |
853 frame->GetDocument().Forms(forms3); | 859 frame->GetDocument().Forms(forms3); |
854 ASSERT_EQ(1u, forms3.size()); | 860 ASSERT_EQ(1u, forms3.size()); |
855 forms3[0].GetFormControlElements(web_control_elements); | 861 forms3[0].GetFormControlElements(web_control_elements); |
856 ASSERT_EQ(1u, web_control_elements.size()); | 862 ASSERT_EQ(1u, web_control_elements.size()); |
857 EXPECT_FALSE(form_util::IsWebElementVisible(web_control_elements[0])); | 863 EXPECT_FALSE(form_util::IsWebElementVisible(web_control_elements[0])); |
858 } | 864 } |
859 | 865 |
860 TEST_F(PasswordAutofillAgentTest, SendPasswordFormsTest) { | 866 TEST_F(PasswordAutofillAgentTest, SendPasswordFormsTest) { |
vabr (Chromium)
2017/04/13 06:44:18
I wonder if we should split this test so that each
kolos1
2017/04/13 08:35:48
Splitted.
| |
861 fake_driver_.reset_password_forms_rendered(); | 867 fake_driver_.reset_password_forms_calls(); |
862 LoadHTML(kVisibleFormWithNoUsernameHTML); | 868 LoadHTML(kVisibleFormWithNoUsernameHTML); |
863 base::RunLoop().RunUntilIdle(); | 869 base::RunLoop().RunUntilIdle(); |
870 EXPECT_TRUE(fake_driver_.called_password_forms_parsed()); | |
871 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_parsed())); | |
872 EXPECT_FALSE(fake_driver_.password_forms_parsed()->empty()); | |
864 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | 873 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); |
865 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); | 874 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); |
866 EXPECT_FALSE(fake_driver_.password_forms_rendered()->empty()); | 875 EXPECT_FALSE(fake_driver_.password_forms_rendered()->empty()); |
867 | 876 |
868 fake_driver_.reset_password_forms_rendered(); | 877 fake_driver_.reset_password_forms_calls(); |
869 LoadHTML(kEmptyFormHTML); | 878 LoadHTML(kEmptyFormHTML); |
870 base::RunLoop().RunUntilIdle(); | 879 base::RunLoop().RunUntilIdle(); |
880 EXPECT_FALSE(fake_driver_.called_password_forms_parsed()); | |
871 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | 881 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); |
872 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); | 882 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); |
873 EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty()); | 883 EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty()); |
874 | 884 |
875 fake_driver_.reset_password_forms_rendered(); | 885 fake_driver_.reset_password_forms_calls(); |
876 LoadHTML(kNonDisplayedFormHTML); | 886 LoadHTML(kFormWithoutPasswordsHTML); |
877 base::RunLoop().RunUntilIdle(); | 887 base::RunLoop().RunUntilIdle(); |
888 EXPECT_FALSE(fake_driver_.called_password_forms_parsed()); | |
878 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | 889 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); |
879 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); | 890 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); |
880 EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty()); | 891 EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty()); |
881 | 892 |
882 fake_driver_.reset_password_forms_rendered(); | 893 fake_driver_.reset_password_forms_calls(); |
883 LoadHTML(kNonVisibleFormHTML); | 894 LoadHTML(kNonDisplayedFormHTML); |
884 base::RunLoop().RunUntilIdle(); | 895 base::RunLoop().RunUntilIdle(); |
896 EXPECT_TRUE(fake_driver_.called_password_forms_parsed()); | |
897 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_parsed())); | |
vabr (Chromium)
2017/04/13 06:44:18
Just out of curiosity -- why is the explicit cast
kolos1
2017/04/13 08:35:48
Removed casts.
| |
898 EXPECT_FALSE(fake_driver_.password_forms_parsed()->empty()); | |
885 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | 899 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); |
886 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); | 900 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); |
887 EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty()); | 901 EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty()); |
902 | |
903 fake_driver_.reset_password_forms_calls(); | |
904 LoadHTML(kNonVisibleFormHTML); | |
905 base::RunLoop().RunUntilIdle(); | |
906 EXPECT_TRUE(fake_driver_.called_password_forms_parsed()); | |
907 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_parsed())); | |
908 EXPECT_FALSE(fake_driver_.password_forms_parsed()->empty()); | |
909 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | |
910 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); | |
911 EXPECT_TRUE(fake_driver_.password_forms_rendered()->empty()); | |
912 | |
913 fake_driver_.reset_password_forms_calls(); | |
914 LoadHTML(kPasswordChangeFormHTML); | |
915 base::RunLoop().RunUntilIdle(); | |
916 EXPECT_TRUE(fake_driver_.called_password_forms_parsed()); | |
917 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_parsed())); | |
918 EXPECT_FALSE(fake_driver_.password_forms_parsed()->empty()); | |
919 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | |
920 ASSERT_TRUE(static_cast<bool>(fake_driver_.password_forms_rendered())); | |
921 EXPECT_FALSE(fake_driver_.password_forms_rendered()->empty()); | |
888 } | 922 } |
889 | 923 |
890 TEST_F(PasswordAutofillAgentTest, SendPasswordFormsTest_Redirection) { | 924 TEST_F(PasswordAutofillAgentTest, SendPasswordFormsTest_Redirection) { |
891 fake_driver_.reset_password_forms_rendered(); | 925 fake_driver_.reset_password_forms_calls(); |
892 LoadHTML(kEmptyWebpage); | 926 LoadHTML(kEmptyWebpage); |
893 base::RunLoop().RunUntilIdle(); | 927 base::RunLoop().RunUntilIdle(); |
894 EXPECT_FALSE(fake_driver_.called_password_forms_rendered()); | 928 EXPECT_FALSE(fake_driver_.called_password_forms_rendered()); |
895 | 929 |
896 fake_driver_.reset_password_forms_rendered(); | 930 fake_driver_.reset_password_forms_calls(); |
897 LoadHTML(kRedirectionWebpage); | 931 LoadHTML(kRedirectionWebpage); |
898 base::RunLoop().RunUntilIdle(); | 932 base::RunLoop().RunUntilIdle(); |
899 EXPECT_FALSE(fake_driver_.called_password_forms_rendered()); | 933 EXPECT_FALSE(fake_driver_.called_password_forms_rendered()); |
900 | 934 |
901 fake_driver_.reset_password_forms_rendered(); | 935 fake_driver_.reset_password_forms_calls(); |
902 LoadHTML(kSimpleWebpage); | 936 LoadHTML(kSimpleWebpage); |
903 base::RunLoop().RunUntilIdle(); | 937 base::RunLoop().RunUntilIdle(); |
904 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | 938 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); |
905 | 939 |
906 fake_driver_.reset_password_forms_rendered(); | 940 fake_driver_.reset_password_forms_calls(); |
907 LoadHTML(kWebpageWithDynamicContent); | 941 LoadHTML(kWebpageWithDynamicContent); |
908 base::RunLoop().RunUntilIdle(); | 942 base::RunLoop().RunUntilIdle(); |
909 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); | 943 EXPECT_TRUE(fake_driver_.called_password_forms_rendered()); |
910 } | 944 } |
911 | 945 |
912 // Tests that a password will only be filled as a suggested and will not be | 946 // Tests that a password will only be filled as a suggested and will not be |
913 // accessible by the DOM until a user gesture has occurred. | 947 // accessible by the DOM until a user gesture has occurred. |
914 TEST_F(PasswordAutofillAgentTest, GestureRequiredTest) { | 948 TEST_F(PasswordAutofillAgentTest, GestureRequiredTest) { |
915 // Trigger the initial autocomplete. | 949 // Trigger the initial autocomplete. |
916 SimulateOnFillPasswordForm(fill_data_); | 950 SimulateOnFillPasswordForm(fill_data_); |
(...skipping 1704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2621 | 2655 |
2622 // Chect that the form was submitted with in-page navigation. | 2656 // Chect that the form was submitted with in-page navigation. |
2623 EXPECT_TRUE(fake_driver_.called_inpage_navigation()); | 2657 EXPECT_TRUE(fake_driver_.called_inpage_navigation()); |
2624 EXPECT_EQ(base::string16(), | 2658 EXPECT_EQ(base::string16(), |
2625 fake_driver_.password_form_inpage_navigation()->username_value); | 2659 fake_driver_.password_form_inpage_navigation()->username_value); |
2626 EXPECT_EQ(ASCIIToUTF16("random"), | 2660 EXPECT_EQ(ASCIIToUTF16("random"), |
2627 fake_driver_.password_form_inpage_navigation()->password_value); | 2661 fake_driver_.password_form_inpage_navigation()->password_value); |
2628 } | 2662 } |
2629 | 2663 |
2630 } // namespace autofill | 2664 } // namespace autofill |
OLD | NEW |