blob: 76d5323f9aeeb432065c49bbe6b97ef84e8f2bf0 [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 "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