Chromium Code Reviews| 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/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
| 7 #include "base/prefs/pref_registry_simple.h" | 7 #include "base/prefs/pref_registry_simple.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/prefs/testing_pref_service.h" | 9 #include "base/prefs/testing_pref_service.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 385 | 385 |
| 386 // Can't verify time, so ignore it. | 386 // Can't verify time, so ignore it. |
| 387 actual_saved_form.date_created = base::Time(); | 387 actual_saved_form.date_created = base::Time(); |
| 388 EXPECT_EQ(expected_saved_form, actual_saved_form); | 388 EXPECT_EQ(expected_saved_form, actual_saved_form); |
| 389 } | 389 } |
| 390 | 390 |
| 391 TEST_F(PasswordFormManagerTest, TestNewLoginFromNewPasswordElement) { | 391 TEST_F(PasswordFormManagerTest, TestNewLoginFromNewPasswordElement) { |
| 392 // Add a new password field to the test form. The PasswordFormManager should | 392 // Add a new password field to the test form. The PasswordFormManager should |
| 393 // save the password from this field, instead of the current password field. | 393 // save the password from this field, instead of the current password field. |
| 394 observed_form()->new_password_element = ASCIIToUTF16("NewPasswd"); | 394 observed_form()->new_password_element = ASCIIToUTF16("NewPasswd"); |
| 395 observed_form()->username_marked_by_site = true; | |
| 395 | 396 |
| 396 PasswordFormManager manager(NULL, client(), kNoDriver, *observed_form(), | 397 PasswordFormManager manager(NULL, client(), kNoDriver, *observed_form(), |
| 397 false); | 398 false); |
| 398 SimulateMatchingPhase(&manager, RESULT_NO_MATCH); | 399 SimulateMatchingPhase(&manager, RESULT_NO_MATCH); |
| 399 | 400 |
| 400 // User enters current and new credentials to the observed form. | 401 // User enters current and new credentials to the observed form. |
| 401 PasswordForm credentials(*observed_form()); | 402 PasswordForm credentials(*observed_form()); |
| 402 credentials.username_value = saved_match()->username_value; | 403 credentials.username_value = saved_match()->username_value; |
| 403 credentials.password_value = saved_match()->password_value; | 404 credentials.password_value = saved_match()->password_value; |
| 404 credentials.new_password_value = ASCIIToUTF16("newpassword"); | 405 credentials.new_password_value = ASCIIToUTF16("newpassword"); |
| (...skipping 931 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1336 form_manager.FetchMatchingLoginsFromPasswordStore(auth_policy); | 1337 form_manager.FetchMatchingLoginsFromPasswordStore(auth_policy); |
| 1337 | 1338 |
| 1338 // Suddenly, the frame and its driver disappear. | 1339 // Suddenly, the frame and its driver disappear. |
| 1339 client_with_store.KillDriver(); | 1340 client_with_store.KillDriver(); |
| 1340 | 1341 |
| 1341 std::vector<PasswordForm*> results; | 1342 std::vector<PasswordForm*> results; |
| 1342 results.push_back(form.release()); | 1343 results.push_back(form.release()); |
| 1343 form_manager.OnGetPasswordStoreResults(results); | 1344 form_manager.OnGetPasswordStoreResults(results); |
| 1344 } | 1345 } |
| 1345 | 1346 |
| 1347 TEST_F(PasswordFormManagerTest, | |
| 1348 SubmitIngnorableChanePasswordForm_MatchingUsernameAndPassword) { | |
|
vabr (Chromium)
2015/02/06 16:27:07
Chane -> Change
Pritam Nikam
2015/02/09 15:48:17
Done.
| |
| 1349 observed_form()->new_password_element = | |
| 1350 base::ASCIIToUTF16("new_password_field"); | |
| 1351 | |
| 1352 TestPasswordManagerClient client_with_store(mock_store()); | |
| 1353 PasswordFormManager manager(NULL, &client_with_store, | |
| 1354 client_with_store.driver(), *observed_form(), | |
| 1355 false); | |
| 1356 EXPECT_CALL(*client_with_store.mock_driver(), IsOffTheRecord()) | |
| 1357 .WillRepeatedly(Return(false)); | |
| 1358 SimulateMatchingPhase(&manager, RESULT_MATCH_FOUND); | |
| 1359 | |
| 1360 // User submits ignorable change-password form (i.e. without | |
| 1361 // *autocomplete=username* markup) having matching username and password to | |
| 1362 // the stored form. | |
| 1363 PasswordForm credentials(*observed_form()); | |
| 1364 credentials.username_value = saved_match()->username_value; | |
| 1365 credentials.password_value = saved_match()->password_value; | |
| 1366 credentials.new_password_value = ASCIIToUTF16("NewPassword"); | |
| 1367 credentials.preferred = true; | |
| 1368 EXPECT_TRUE(manager.ProvisionallySave( | |
| 1369 credentials, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES)); | |
| 1370 | |
| 1371 // Successful match found. The PasswordManager would instruct | |
|
vabr (Chromium)
2015/02/06 16:27:07
would -> should
Pritam Nikam
2015/02/09 15:48:17
Done.
| |
| 1372 // PasswordFormManager to overwrite the password for stored form. | |
| 1373 EXPECT_FALSE(manager.IsNewLogin()); | |
| 1374 EXPECT_EQ(credentials.signon_realm, | |
| 1375 GetPendingCredentials(&manager)->signon_realm); | |
| 1376 EXPECT_EQ(credentials.username_value, | |
| 1377 GetPendingCredentials(&manager)->username_value); | |
| 1378 | |
| 1379 // By this point, the PasswordFormManager should have overwritten the new | |
| 1380 // password value to be the current password. | |
| 1381 EXPECT_EQ(credentials.new_password_value, | |
| 1382 GetPendingCredentials(&manager)->password_value); | |
| 1383 } | |
| 1384 | |
| 1385 TEST_F(PasswordFormManagerTest, | |
| 1386 SubmitIngnorableChanePasswordForm_NotMatchingPassword) { | |
| 1387 observed_form()->new_password_element = | |
| 1388 base::ASCIIToUTF16("new_password_field"); | |
| 1389 | |
| 1390 TestPasswordManagerClient client_with_store(mock_store()); | |
| 1391 PasswordFormManager manager(NULL, &client_with_store, | |
| 1392 client_with_store.driver(), *observed_form(), | |
| 1393 false); | |
| 1394 EXPECT_CALL(*client_with_store.mock_driver(), IsOffTheRecord()) | |
| 1395 .WillRepeatedly(Return(false)); | |
| 1396 SimulateMatchingPhase(&manager, RESULT_MATCH_FOUND); | |
| 1397 | |
| 1398 // User submits ignorable change-password form (i.e. without | |
| 1399 // *autocomplete=username* markup) having non-matching password to the stored | |
| 1400 // form. | |
| 1401 PasswordForm credentials(*observed_form()); | |
| 1402 credentials.username_value = saved_match()->username_value; | |
| 1403 credentials.password_value = ASCIIToUTF16("DifferntPassword"); | |
| 1404 credentials.new_password_value = ASCIIToUTF16("NewPassword"); | |
| 1405 credentials.preferred = true; | |
| 1406 EXPECT_FALSE(manager.ProvisionallySave( | |
| 1407 credentials, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES)); | |
| 1408 } | |
| 1409 | |
| 1410 TEST_F(PasswordFormManagerTest, | |
| 1411 SubmitIngnorableChanePasswordForm_NotMatchingUsername) { | |
| 1412 observed_form()->new_password_element = | |
| 1413 base::ASCIIToUTF16("new_password_field"); | |
| 1414 | |
| 1415 TestPasswordManagerClient client_with_store(mock_store()); | |
| 1416 PasswordFormManager manager(NULL, &client_with_store, | |
| 1417 client_with_store.driver(), *observed_form(), | |
| 1418 false); | |
| 1419 EXPECT_CALL(*client_with_store.mock_driver(), IsOffTheRecord()) | |
| 1420 .WillRepeatedly(Return(false)); | |
| 1421 SimulateMatchingPhase(&manager, RESULT_MATCH_FOUND); | |
| 1422 | |
| 1423 // User submits ignorable change-password form (i.e. without | |
| 1424 // *autocomplete=username* markup) having non-matching username to the stored | |
| 1425 // form. | |
| 1426 PasswordForm credentials(*observed_form()); | |
| 1427 credentials.username_value = ASCIIToUTF16("DifferntUsername"); | |
| 1428 credentials.password_value = saved_match()->password_value; | |
| 1429 credentials.new_password_value = ASCIIToUTF16("NewPassword"); | |
| 1430 credentials.preferred = true; | |
| 1431 EXPECT_FALSE(manager.ProvisionallySave( | |
| 1432 credentials, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES)); | |
| 1433 } | |
| 1434 | |
| 1346 } // namespace password_manager | 1435 } // namespace password_manager |
| OLD | NEW |