blob: 972e4bb76356a3bf06869e97c185f5e99a2dd52f [file] [log] [blame]
// Copyright 2016 The Fuchsia 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 "src/lib/fxl/strings/concatenate.h"
#include <gtest/gtest.h>
namespace fxl {
namespace {
// Creates correct std::strings from C-style string constants with \0 bytes
// inside.
std::string operator"" _s(const char* str, size_t size) { return std::string(str, size); }
TEST(StringUtil, Concatenate) {
EXPECT_EQ("", Concatenate({}));
EXPECT_EQ("a", Concatenate({"a"}));
EXPECT_EQ("ab", Concatenate({"a", "b"}));
std::string such = "such";
EXPECT_EQ("wow such useful", Concatenate({"wow ", such, " useful"}));
std::string with_zeroes = "abc\0def"_s;
EXPECT_EQ("abc\0def\0ghi"_s, Concatenate({with_zeroes, "\0ghi"_s}));
}
} // namespace
} // namespace fxl