diff tests/util/main.cpp @ 118:2a63c8ec45cd

Irccd: fix some errors in util::format, #408
author David Demelier <markand@malikania.fr>
date Fri, 29 Apr 2016 14:19:30 +0200
parents 8cbbce7b4327
children b39573fc066e
line wrap: on
line diff
--- a/tests/util/main.cpp	Fri Apr 29 10:08:17 2016 +0200
+++ b/tests/util/main.cpp	Fri Apr 29 14:19:30 2016 +0200
@@ -37,6 +37,25 @@
 	ASSERT_EQ(expected, result);
 }
 
+TEST(Format, escape)
+{
+	util::Substitution params;
+
+	params.keywords.emplace("target", "hello");
+
+	ASSERT_EQ("$@#", util::format("$@#"));
+	ASSERT_EQ(" $ @ # ", util::format(" $ @ # "));
+	ASSERT_EQ("#", util::format("#"));
+	ASSERT_EQ(" # ", util::format(" # "));
+	ASSERT_EQ("#@", util::format("#@"));
+	ASSERT_EQ("##", util::format("##"));
+	ASSERT_EQ("#!", util::format("#!"));
+	ASSERT_EQ("#{target}", util::format("##{target}"));
+	ASSERT_EQ("@hello", util::format("@#{target}", params));
+	ASSERT_EQ("hello#", util::format("#{target}#", params));
+	ASSERT_ANY_THROW(util::format("#{failure"));
+}
+
 TEST(Format, keywordSimple)
 {
 	util::Substitution params;