| // 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_ |