blob: ba89f0822409e729283c3d6b661d60dd0ef4ae72 [file] [log] [blame]
// Copyright 2018 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.
#ifndef LIBPASSWORDPROVIDER_PASSWORD_PROVIDER_TEST_UTILS_H_
#define LIBPASSWORDPROVIDER_PASSWORD_PROVIDER_TEST_UTILS_H_
#include <memory>
#include <string>
#include "libpasswordprovider/password.h"
namespace password_provider {
namespace test {
// Util functions for testing with libpasswordprovider.
//
// TODO(maybelle): Export this into libpasswordprovider-test
std::unique_ptr<Password> CreatePassword(const char* data, size_t len) {
auto password = std::make_unique<Password>();
if (!password->Init()) {
return nullptr;
}
if (len > password->max_size()) {
return nullptr;
}
memcpy(password->GetMutableRaw(), data, len);
memset(password->GetMutableRaw() + len, '\0', 1);
password->SetSize(len);
return password;
}
static std::unique_ptr<Password> CreatePassword(const std::string& data) {
return CreatePassword(data.c_str(), data.size());
}
} // namespace test
} // namespace password_provider
#endif // LIBPASSWORDPROVIDER_PASSWORD_PROVIDER_TEST_UTILS_H_