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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "base/prefs/pref_registry_simple.h" | 6 #include "base/prefs/pref_registry_simple.h" |
7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
8 #include "base/prefs/testing_pref_service.h" | 8 #include "base/prefs/testing_pref_service.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/test/histogram_tester.h" | 10 #include "base/test/histogram_tester.h" |
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 | 875 |
876 form_manager()->Save(); | 876 form_manager()->Save(); |
877 | 877 |
878 // |other_possible_usernames| should also be empty, but username_value should | 878 // |other_possible_usernames| should also be empty, but username_value should |
879 // be changed to match |new_username|. | 879 // be changed to match |new_username|. |
880 EXPECT_EQ(saved_match()->other_possible_usernames[0], | 880 EXPECT_EQ(saved_match()->other_possible_usernames[0], |
881 saved_result.username_value); | 881 saved_result.username_value); |
882 EXPECT_TRUE(saved_result.other_possible_usernames.empty()); | 882 EXPECT_TRUE(saved_result.other_possible_usernames.empty()); |
883 } | 883 } |
884 | 884 |
885 TEST_F(PasswordFormManagerTest, TestValidForms) { | |
886 // User submits credentials for the observed form. | |
887 PasswordForm credentials = *observed_form(); | |
888 credentials.scheme = PasswordForm::SCHEME_HTML; | |
889 credentials.username_value = saved_match()->username_value; | |
890 credentials.password_value = saved_match()->password_value; | |
891 | |
892 // An alternate version of the form that also has a new_password_element. | |
893 PasswordForm new_credentials(*observed_form()); | |
894 new_credentials.new_password_element = ASCIIToUTF16("NewPasswd"); | |
895 new_credentials.new_password_value = ASCIIToUTF16("test1new"); | |
896 | |
897 // Form with both username_element and password_element. | |
898 PasswordFormManager manager1(password_manager(), client(), kNoDriver, | |
899 credentials, false); | |
900 SimulateMatchingPhase(&manager1, RESULT_NO_MATCH); | |
901 EXPECT_TRUE(manager1.HasValidPasswordForm()); | |
902 | |
903 // Form with username_element, password_element, and new_password_element. | |
904 PasswordFormManager manager2(password_manager(), client(), kNoDriver, | |
905 new_credentials, false); | |
906 SimulateMatchingPhase(&manager2, RESULT_NO_MATCH); | |
907 EXPECT_TRUE(manager2.HasValidPasswordForm()); | |
908 | |
909 // Form with username_element and only new_password_element. | |
910 new_credentials.password_element.clear(); | |
911 PasswordFormManager manager3(password_manager(), client(), kNoDriver, | |
912 new_credentials, false); | |
913 SimulateMatchingPhase(&manager3, RESULT_NO_MATCH); | |
914 EXPECT_TRUE(manager3.HasValidPasswordForm()); | |
915 | |
916 // Form without a username_element but with a password_element. | |
917 credentials.username_element.clear(); | |
918 PasswordFormManager manager4(password_manager(), client(), kNoDriver, | |
919 credentials, false); | |
920 SimulateMatchingPhase(&manager4, RESULT_NO_MATCH); | |
921 EXPECT_TRUE(manager4.HasValidPasswordForm()); | |
922 | |
923 // Form without a username_element but with a new_password_element. | |
924 new_credentials.username_element.clear(); | |
925 PasswordFormManager manager5(password_manager(), client(), kNoDriver, | |
926 new_credentials, false); | |
927 SimulateMatchingPhase(&manager5, RESULT_NO_MATCH); | |
928 EXPECT_TRUE(manager5.HasValidPasswordForm()); | |
929 | |
930 // Form without a password_element but with a username_element. | |
931 credentials.username_element = saved_match()->username_element; | |
932 credentials.password_element.clear(); | |
933 PasswordFormManager manager6(password_manager(), client(), kNoDriver, | |
934 credentials, false); | |
935 SimulateMatchingPhase(&manager6, RESULT_NO_MATCH); | |
936 EXPECT_FALSE(manager6.HasValidPasswordForm()); | |
937 | |
938 // Form with neither a password_element nor a username_element. | |
939 credentials.username_element.clear(); | |
940 credentials.password_element.clear(); | |
941 PasswordFormManager manager7(password_manager(), client(), kNoDriver, | |
942 credentials, false); | |
943 SimulateMatchingPhase(&manager7, RESULT_NO_MATCH); | |
944 EXPECT_FALSE(manager7.HasValidPasswordForm()); | |
945 } | |
946 | |
947 TEST_F(PasswordFormManagerTest, TestValidFormsBasic) { | |
948 // User submits credentials for the observed form. | |
949 PasswordForm credentials = *observed_form(); | |
950 credentials.scheme = PasswordForm::SCHEME_BASIC; | |
951 credentials.username_value = saved_match()->username_value; | |
952 credentials.password_value = saved_match()->password_value; | |
953 | |
954 // Form with both username_element and password_element. | |
955 PasswordFormManager manager1(password_manager(), client(), kNoDriver, | |
956 credentials, false); | |
957 SimulateMatchingPhase(&manager1, RESULT_NO_MATCH); | |
958 EXPECT_TRUE(manager1.HasValidPasswordForm()); | |
959 | |
960 // Form without a username_element but with a password_element. | |
961 credentials.username_element.clear(); | |
962 PasswordFormManager manager2(password_manager(), client(), kNoDriver, | |
963 credentials, false); | |
964 SimulateMatchingPhase(&manager2, RESULT_NO_MATCH); | |
965 EXPECT_TRUE(manager2.HasValidPasswordForm()); | |
966 | |
967 // Form without a password_element but with a username_element. | |
968 credentials.username_element = saved_match()->username_element; | |
969 credentials.password_element.clear(); | |
970 PasswordFormManager manager3(password_manager(), client(), kNoDriver, | |
971 credentials, false); | |
972 SimulateMatchingPhase(&manager3, RESULT_NO_MATCH); | |
973 EXPECT_TRUE(manager3.HasValidPasswordForm()); | |
974 | |
975 // Form with neither a password_element nor a username_element. | |
976 credentials.username_element.clear(); | |
977 credentials.password_element.clear(); | |
978 PasswordFormManager manager4(password_manager(), client(), kNoDriver, | |
979 credentials, false); | |
980 SimulateMatchingPhase(&manager4, RESULT_NO_MATCH); | |
981 EXPECT_TRUE(manager4.HasValidPasswordForm()); | |
982 } | |
983 | |
984 TEST_F(PasswordFormManagerTest, TestSendNotBlacklistedMessage_NoCredentials) { | 885 TEST_F(PasswordFormManagerTest, TestSendNotBlacklistedMessage_NoCredentials) { |
985 // First time sign-up attempt. Password store does not contain matching | 886 // First time sign-up attempt. Password store does not contain matching |
986 // credentials. AllowPasswordGenerationForForm should be called to send the | 887 // credentials. AllowPasswordGenerationForForm should be called to send the |
987 // "not blacklisted" message. | 888 // "not blacklisted" message. |
988 EXPECT_CALL(*(client()->mock_driver()), AllowPasswordGenerationForForm(_)) | 889 EXPECT_CALL(*(client()->mock_driver()), AllowPasswordGenerationForForm(_)) |
989 .Times(1); | 890 .Times(1); |
990 form_manager()->SimulateFetchMatchingLoginsFromPasswordStore(); | 891 form_manager()->SimulateFetchMatchingLoginsFromPasswordStore(); |
991 form_manager()->OnGetPasswordStoreResults(ScopedVector<PasswordForm>()); | 892 form_manager()->OnGetPasswordStoreResults(ScopedVector<PasswordForm>()); |
992 } | 893 } |
993 | 894 |
(...skipping 1023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2017 EXPECT_CALL(*mock_store(), UpdateLogin(_)) | 1918 EXPECT_CALL(*mock_store(), UpdateLogin(_)) |
2018 .WillOnce(testing::SaveArg<0>(&new_credentials)); | 1919 .WillOnce(testing::SaveArg<0>(&new_credentials)); |
2019 form_manager()->Save(); | 1920 form_manager()->Save(); |
2020 | 1921 |
2021 EXPECT_EQ(PasswordForm::TYPE_GENERATED, new_credentials.type); | 1922 EXPECT_EQ(PasswordForm::TYPE_GENERATED, new_credentials.type); |
2022 histogram_tester.ExpectBucketCount("PasswordGeneration.SubmissionEvent", | 1923 histogram_tester.ExpectBucketCount("PasswordGeneration.SubmissionEvent", |
2023 metrics_util::PASSWORD_USED, 1); | 1924 metrics_util::PASSWORD_USED, 1); |
2024 } | 1925 } |
2025 | 1926 |
2026 } // namespace password_manager | 1927 } // namespace password_manager |
OLD | NEW |