You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.0 KiB
56 lines
2.0 KiB
// Copyright 2017 The Chromium OS 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 <gtest/gtest.h>
|
|
|
|
#include <base/files/file_util.h>
|
|
#include <base/files/scoped_temp_dir.h>
|
|
|
|
#include "policy/policy_util.h"
|
|
|
|
namespace em = enterprise_management;
|
|
|
|
namespace policy {
|
|
|
|
// Test LoadPolicyFromPath returns correct values and has policy data when
|
|
// successful.
|
|
TEST(DevicePolicyUtilTest, LoadPolicyFromPath) {
|
|
// Create the temporary directory.
|
|
base::ScopedTempDir temp_dir;
|
|
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
|
|
|
base::FilePath invalid_policy_data_path(temp_dir.GetPath().Append("policy"));
|
|
base::FilePath inexistent_file(temp_dir.GetPath().Append("policy.1"));
|
|
base::FilePath good_policy_data_path(temp_dir.GetPath().Append("policy.2"));
|
|
|
|
// Create the file with invalid data.
|
|
std::string data = "invalid data";
|
|
ASSERT_TRUE(
|
|
base::WriteFile(invalid_policy_data_path, data.data(), data.size()));
|
|
|
|
// Create the file with good policy data.
|
|
em::PolicyData policy_data;
|
|
policy_data.set_username("user@example.com");
|
|
policy_data.set_management_mode(em::PolicyData::LOCAL_OWNER);
|
|
policy_data.set_request_token("codepath-must-ignore-dmtoken");
|
|
std::string policy_blob;
|
|
policy_data.SerializeToString(&policy_blob);
|
|
ASSERT_TRUE(base::WriteFile(good_policy_data_path, policy_blob.data(),
|
|
policy_blob.size()));
|
|
|
|
std::string policy_data_str;
|
|
enterprise_management::PolicyFetchResponse policy;
|
|
EXPECT_EQ(
|
|
LoadPolicyResult::kInvalidPolicyData,
|
|
LoadPolicyFromPath(invalid_policy_data_path, &policy_data_str, &policy));
|
|
EXPECT_EQ(LoadPolicyResult::kFileNotFound,
|
|
LoadPolicyFromPath(inexistent_file, &policy_data_str, &policy));
|
|
EXPECT_EQ(
|
|
LoadPolicyResult::kSuccess,
|
|
LoadPolicyFromPath(good_policy_data_path, &policy_data_str, &policy));
|
|
ASSERT_TRUE(policy.has_policy_data());
|
|
}
|
|
|
|
} // namespace policy
|