1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-27 04:30:59 +01:00

strings: Add optionalBracket helper

This commit is contained in:
Robert Hensing 2025-10-13 13:59:39 +02:00
parent f77094715f
commit 5dcfddf997
3 changed files with 112 additions and 0 deletions

View file

@ -494,4 +494,63 @@ TEST(shellSplitString, testUnbalancedQuotes)
ASSERT_THROW(shellSplitString("foo\"bar\\\""), Error);
}
/* ----------------------------------------------------------------------------
* optionalBracket
* --------------------------------------------------------------------------*/
TEST(optionalBracket, emptyContent)
{
ASSERT_EQ(optionalBracket(" (", "", ")"), "");
}
TEST(optionalBracket, nonEmptyContent)
{
ASSERT_EQ(optionalBracket(" (", "foo", ")"), " (foo)");
}
TEST(optionalBracket, emptyPrefixAndSuffix)
{
ASSERT_EQ(optionalBracket("", "foo", ""), "foo");
}
TEST(optionalBracket, emptyContentEmptyBrackets)
{
ASSERT_EQ(optionalBracket("", "", ""), "");
}
TEST(optionalBracket, complexBrackets)
{
ASSERT_EQ(optionalBracket(" [[[", "content", "]]]"), " [[[content]]]");
}
TEST(optionalBracket, onlyPrefix)
{
ASSERT_EQ(optionalBracket("prefix", "content", ""), "prefixcontent");
}
TEST(optionalBracket, onlySuffix)
{
ASSERT_EQ(optionalBracket("", "content", "suffix"), "contentsuffix");
}
TEST(optionalBracket, optionalWithValue)
{
ASSERT_EQ(optionalBracket(" (", std::optional<std::string>("foo"), ")"), " (foo)");
}
TEST(optionalBracket, optionalNullopt)
{
ASSERT_EQ(optionalBracket(" (", std::optional<std::string>(std::nullopt), ")"), "");
}
TEST(optionalBracket, optionalEmptyString)
{
ASSERT_EQ(optionalBracket(" (", std::optional<std::string>(""), ")"), "");
}
TEST(optionalBracket, optionalStringViewWithValue)
{
ASSERT_EQ(optionalBracket(" (", std::optional<std::string_view>("bar"), ")"), " (bar)");
}
} // namespace nix