| // Copyright 2019 The Chromium project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file is Chromium specific, to make the tests work. It will work |
| // in the standalone (upstream) build, as well as in Chromium. In other code |
| // bases (e.g. v8), a custom file with these two functions and with appropriate |
| // includes may need to be provided, so it isn't necessarily part of a roll. |
| |
| #include "test_platform.h" |
| |
| #include <cstdint> |
| #include <string> |
| #include <vector> |
| #include "base/strings/utf_string_conversions.h" |
| |
| namespace crdtp { |
| std::string UTF16ToUTF8(span<uint16_t> in) { |
| std::string out; |
| bool success = base::UTF16ToUTF8( |
| reinterpret_cast<const base::char16*>(in.data()), in.size(), &out); |
| CHECK(success); |
| return out; |
| } |
| |
| std::vector<uint16_t> UTF8ToUTF16(span<uint8_t> in) { |
| base::string16 tmp; |
| bool success = base::UTF8ToUTF16(reinterpret_cast<const char*>(in.data()), |
| in.size(), &tmp); |
| CHECK(success); |
| return std::vector<uint16_t>(tmp.begin(), tmp.end()); |
| } |
| } // namespace crdtp |