blob: fa3941444dc83612c7a56ec0e0c587efb09faf4a [file] [log] [blame]
// Copyright 2021 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 "base/format_macros.h"
#include "base/strings/stringprintf.h"
#include "mojo/public/cpp/base/byte_string_mojom_traits.h"
#include "mojo/public/cpp/test_support/test_utils.h"
#include "mojo/public/mojom/base/byte_string.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace mojo_base {
TEST(ByteStringTest, Test) {
const std::string kCases[] = {
"hello", // C-string
{'\xEF', '\xB7', '\xAF'}, // invalid UTF-8
{'h', '\0', 'w', 'd', 'y'}, // embedded null
};
for (size_t i = 0; i < base::size(kCases); ++i) {
SCOPED_TRACE(base::StringPrintf("case %" PRIuS, i));
std::string out;
EXPECT_TRUE(mojom::ByteString::Deserialize(
mojom::ByteString::Serialize(&kCases[i]), &out));
EXPECT_EQ(kCases[i], out);
}
}
} // namespace mojo_base