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

Side by Side Diff: components/password_manager/core/browser/password_form_manager_unittest.cc

Issue 1286593003: [Password Manager] Store forms with field name and id attributes missing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed mac bot failure. Created 5 years, 3 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 (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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698