| Index: chromeos/dbus/fake_auth_policy_client_unittest.cc
|
| diff --git a/chromeos/dbus/fake_auth_policy_client_unittest.cc b/chromeos/dbus/fake_auth_policy_client_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a8b6b79a7c0cfe4ebcfc33dd59201796a69490da
|
| --- /dev/null
|
| +++ b/chromeos/dbus/fake_auth_policy_client_unittest.cc
|
| @@ -0,0 +1,61 @@
|
| +// Copyright 2017 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 "chromeos/dbus/fake_auth_policy_client.h"
|
| +
|
| +#include "base/bind.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace chromeos {
|
| +namespace {
|
| +
|
| +const char kCorrectMachineName[] = "machine_name";
|
| +const char kCorrectUserName[] = "user@realm.com";
|
| +
|
| +void JoinAdCallback(const std::string& machine_name,
|
| + const std::string& user_principal_name,
|
| + authpolicy::ErrorType expected,
|
| + authpolicy::ErrorType actual) {
|
| + EXPECT_EQ(expected, actual) << "with machine name: " << machine_name
|
| + << ", and user name: " << user_principal_name;
|
| +}
|
| +
|
| +void TestDomainJoin(const std::string& machine_name,
|
| + const std::string& user_principal_name,
|
| + authpolicy::ErrorType expected) {
|
| + FakeAuthPolicyClient client;
|
| + client.JoinAdDomain(
|
| + machine_name, user_principal_name, /* password_fd */ -1,
|
| + base::Bind(&JoinAdCallback, machine_name, user_principal_name, expected));
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +// Tests parsing machine name.
|
| +TEST(FakeAuthPolicyClientTest, JoinAdDomain_ParseMachineName) {
|
| + TestDomainJoin("correct_length1", kCorrectUserName, authpolicy::ERROR_NONE);
|
| + TestDomainJoin("", kCorrectUserName, authpolicy::ERROR_BAD_MACHINE_NAME);
|
| + TestDomainJoin("too_long_machine_name ", kCorrectUserName,
|
| + authpolicy::ERROR_MACHINE_NAME_TOO_LONG);
|
| + TestDomainJoin("invalid:name", kCorrectUserName,
|
| + authpolicy::ERROR_BAD_MACHINE_NAME);
|
| + TestDomainJoin(">nvalidname", kCorrectUserName,
|
| + authpolicy::ERROR_BAD_MACHINE_NAME);
|
| +}
|
| +
|
| +// Tests parsing user name.
|
| +TEST(FakeAuthPolicyClientTest, JoinAdDomain_ParseUPN) {
|
| + TestDomainJoin(kCorrectMachineName, "user@realm.com", authpolicy::ERROR_NONE);
|
| + TestDomainJoin(kCorrectMachineName, "user",
|
| + authpolicy::ERROR_PARSE_UPN_FAILED);
|
| + TestDomainJoin(kCorrectMachineName, "", authpolicy::ERROR_PARSE_UPN_FAILED);
|
| + TestDomainJoin(kCorrectMachineName, "user@",
|
| + authpolicy::ERROR_PARSE_UPN_FAILED);
|
| + TestDomainJoin(kCorrectMachineName, "@realm",
|
| + authpolicy::ERROR_PARSE_UPN_FAILED);
|
| + TestDomainJoin(kCorrectMachineName, "user@realm@com",
|
| + authpolicy::ERROR_PARSE_UPN_FAILED);
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|