OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/password_manager/core/browser/login_database.h" | 5 #include "components/password_manager/core/browser/login_database.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 1632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1643 testing::ElementsAre(base::Bucket(2, 1), base::Bucket(3, 2))); | 1643 testing::ElementsAre(base::Bucket(2, 1), base::Bucket(3, 2))); |
1644 EXPECT_THAT(histogram_tester.GetAllSamples( | 1644 EXPECT_THAT(histogram_tester.GetAllSamples( |
1645 kPrefix + "FromHttpsRealm.OnHttpsRealmWithDifferentHost"), | 1645 kPrefix + "FromHttpsRealm.OnHttpsRealmWithDifferentHost"), |
1646 testing::ElementsAre(base::Bucket(1, 2), base::Bucket(2, 1))); | 1646 testing::ElementsAre(base::Bucket(1, 2), base::Bucket(2, 1))); |
1647 EXPECT_THAT(histogram_tester.GetAllSamples( | 1647 EXPECT_THAT(histogram_tester.GetAllSamples( |
1648 kPrefix + "FromHttpsRealm.OnAnyRealmWithDifferentHost"), | 1648 kPrefix + "FromHttpsRealm.OnAnyRealmWithDifferentHost"), |
1649 testing::ElementsAre(base::Bucket(3, 1), base::Bucket(4, 1), | 1649 testing::ElementsAre(base::Bucket(3, 1), base::Bucket(4, 1), |
1650 base::Bucket(5, 1))); | 1650 base::Bucket(5, 1))); |
1651 } | 1651 } |
1652 | 1652 |
1653 TEST_F(LoginDatabaseTest, ClearPasswordValues) { | |
1654 db().set_clear_password_values(true); | |
1655 | |
1656 // Add a PasswordForm, the password should be cleared. | |
1657 base::HistogramTester histogram_tester; | |
1658 PasswordForm form; | |
1659 form.origin = GURL("http://accounts.google.com/LoginAuth"); | |
1660 form.signon_realm = "http://accounts.google.com/"; | |
1661 form.username_value = ASCIIToUTF16("my_username"); | |
1662 form.password_value = ASCIIToUTF16("12345"); | |
1663 EXPECT_EQ(AddChangeForForm(form), db().AddLogin(form)); | |
1664 | |
1665 std::vector<std::unique_ptr<PasswordForm>> result; | |
1666 EXPECT_TRUE(db().GetLogins(PasswordStore::FormDigest(form), &result)); | |
1667 ASSERT_EQ(1U, result.size()); | |
1668 PasswordForm expected_form = form; | |
1669 expected_form.password_value.clear(); | |
1670 EXPECT_EQ(expected_form, *result[0]); | |
1671 | |
1672 // Update the password, it should stay empty. | |
1673 form.password_value = ASCIIToUTF16("password"); | |
1674 EXPECT_EQ(UpdateChangeForForm(form), db().UpdateLogin(form)); | |
1675 EXPECT_TRUE(db().GetLogins(PasswordStore::FormDigest(form), &result)); | |
1676 ASSERT_EQ(1U, result.size()); | |
1677 EXPECT_EQ(expected_form, *result[0]); | |
1678 | |
1679 // Encrypting/decrypting shouldn't happen. Thus there should be no keychain | |
1680 // access on Mac. | |
1681 histogram_tester.ExpectTotalCount("OSX.Keychain.Access", 0); | |
1682 } | |
1683 | |
1684 #if defined(OS_POSIX) | 1653 #if defined(OS_POSIX) |
1685 // Only the current user has permission to read the database. | 1654 // Only the current user has permission to read the database. |
1686 // | 1655 // |
1687 // Only POSIX because GetPosixFilePermissions() only exists on POSIX. | 1656 // Only POSIX because GetPosixFilePermissions() only exists on POSIX. |
1688 // This tests that sql::Connection::set_restrict_to_user() was called, | 1657 // This tests that sql::Connection::set_restrict_to_user() was called, |
1689 // and that function is a noop on non-POSIX platforms in any case. | 1658 // and that function is a noop on non-POSIX platforms in any case. |
1690 TEST_F(LoginDatabaseTest, FilePermissions) { | 1659 TEST_F(LoginDatabaseTest, FilePermissions) { |
1691 int mode = base::FILE_PERMISSION_MASK; | 1660 int mode = base::FILE_PERMISSION_MASK; |
1692 EXPECT_TRUE(base::GetPosixFilePermissions(file_, &mode)); | 1661 EXPECT_TRUE(base::GetPosixFilePermissions(file_, &mode)); |
1693 EXPECT_EQ((mode & base::FILE_PERMISSION_USER_MASK), mode); | 1662 EXPECT_EQ((mode & base::FILE_PERMISSION_USER_MASK), mode); |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1906 LoginDatabaseMigrationTest, | 1875 LoginDatabaseMigrationTest, |
1907 testing::Range(1, kCurrentVersionNumber + 1)); | 1876 testing::Range(1, kCurrentVersionNumber + 1)); |
1908 INSTANTIATE_TEST_CASE_P(MigrationToVCurrent, | 1877 INSTANTIATE_TEST_CASE_P(MigrationToVCurrent, |
1909 LoginDatabaseMigrationTestV9, | 1878 LoginDatabaseMigrationTestV9, |
1910 testing::Values(9)); | 1879 testing::Values(9)); |
1911 INSTANTIATE_TEST_CASE_P(MigrationToVCurrent, | 1880 INSTANTIATE_TEST_CASE_P(MigrationToVCurrent, |
1912 LoginDatabaseMigrationTestBroken, | 1881 LoginDatabaseMigrationTestBroken, |
1913 testing::Range(1, 4)); | 1882 testing::Range(1, 4)); |
1914 | 1883 |
1915 } // namespace password_manager | 1884 } // namespace password_manager |
OLD | NEW |