1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/password_manager/sync/browser/password_sync_util.h"
#include <stddef.h>
#include "base/macros.h"
#include "components/autofill/core/common/password_form.h"
#include "components/password_manager/sync/browser/sync_username_test_base.h"
#include "testing/gtest/include/gtest/gtest.h"
using autofill::PasswordForm;
namespace password_manager {
namespace sync_util {
typedef SyncUsernameTestBase PasswordSyncUtilTest;
TEST_F(PasswordSyncUtilTest, GetSyncUsernameIfSyncingPasswords) {
const struct TestCase {
enum { SYNCING_PASSWORDS, NOT_SYNCING_PASSWORDS } password_sync;
std::string fake_sync_username;
std::string expected_result;
const syncer::SyncService* sync_service;
const SigninManagerBase* signin_manager;
} kTestCases[] = {
{TestCase::NOT_SYNCING_PASSWORDS, "a@example.org", std::string(),
sync_service(), signin_manager()},
{TestCase::SYNCING_PASSWORDS, "a@example.org", "a@example.org",
sync_service(), signin_manager()},
// If sync_service is not available, we assume passwords are synced, even
// if they are not.
{TestCase::NOT_SYNCING_PASSWORDS, "a@example.org", "a@example.org",
nullptr, signin_manager()},
{TestCase::SYNCING_PASSWORDS, "a@example.org", std::string(),
sync_service(), nullptr},
{TestCase::SYNCING_PASSWORDS, "a@example.org", std::string(), nullptr,
nullptr},
};
for (size_t i = 0; i < arraysize(kTestCases); ++i) {
SCOPED_TRACE(testing::Message() << "i=" << i);
SetSyncingPasswords(kTestCases[i].password_sync ==
TestCase::SYNCING_PASSWORDS);
FakeSigninAs(kTestCases[i].fake_sync_username);
EXPECT_EQ(kTestCases[i].expected_result,
GetSyncUsernameIfSyncingPasswords(kTestCases[i].sync_service,
kTestCases[i].signin_manager));
}
}
TEST_F(PasswordSyncUtilTest, IsSyncAccountCredential) {
const struct {
PasswordForm form;
std::string fake_sync_username;
bool expected_result;
} kTestCases[] = {
{SimpleGaiaForm("sync_user@example.org"), "sync_user@example.org", true},
{SimpleGaiaForm("non_sync_user@example.org"), "sync_user@example.org",
false},
{SimpleNonGaiaForm("sync_user@example.org"), "sync_user@example.org",
false},
{SimpleGaiaForm(""), "sync_user@example.org", true},
{SimpleNonGaiaForm(""), "sync_user@example.org", false},
};
for (size_t i = 0; i < arraysize(kTestCases); ++i) {
SCOPED_TRACE(testing::Message() << "i=" << i);
SetSyncingPasswords(true);
FakeSigninAs(kTestCases[i].fake_sync_username);
EXPECT_EQ(kTestCases[i].expected_result,
IsSyncAccountCredential(kTestCases[i].form, sync_service(),
signin_manager()));
}
}
} // namespace sync_util
} // namespace password_manager
|