From f5421799249ae2e4874b91c61d4698d125710455 Mon Sep 17 00:00:00 2001 From: Philip Top Date: Thu, 24 Jan 2019 14:38:47 -0800 Subject: [PATCH] add = and : escape detect with different branch in escape_detect code. The tests were verified to fail if the fix was not in place. --- tests/AppTest.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/AppTest.cpp b/tests/AppTest.cpp index 08e0faa5..7461cdff 100644 --- a/tests/AppTest.cpp +++ b/tests/AppTest.cpp @@ -172,6 +172,39 @@ TEST_F(TApp, OneStringEqualVersionSingleStringQuotedMultiple) { EXPECT_EQ(str3, "\"quoted string\""); } +TEST_F(TApp, OneStringEqualVersionSingleStringEmbeddedEqual) { + std::string str, str2, str3; + app.add_option("-s,--string", str); + app.add_option("-t,--tstr", str2); + app.add_option("-m,--mstr", str3); + app.parse("--string=\"app=\\\"test1 b\\\" test2=\\\"frogs\\\"\" -t 'qstring 2' -m=`\"quoted string\"`"); + EXPECT_EQ(str, "app=\"test1 b\" test2=\"frogs\""); + EXPECT_EQ(str2, "qstring 2"); + EXPECT_EQ(str3, "\"quoted string\""); + + app.parse("--string=\"app='test1 b' test2='frogs'\" -t 'qstring 2' -m=`\"quoted string\"`"); + EXPECT_EQ(str, "app='test1 b' test2='frogs'"); + EXPECT_EQ(str2, "qstring 2"); + EXPECT_EQ(str3, "\"quoted string\""); +} + +TEST_F(TApp, OneStringEqualVersionSingleStringEmbeddedEqualWindowsStyle) { + std::string str, str2, str3; + app.add_option("-s,--string", str); + app.add_option("-t,--tstr", str2); + app.add_option("--mstr", str3); + app.allow_windows_style_options(); + app.parse("/string:\"app:\\\"test1 b\\\" test2:\\\"frogs\\\"\" /t 'qstring 2' /mstr:`\"quoted string\"`"); + EXPECT_EQ(str, "app:\"test1 b\" test2:\"frogs\""); + EXPECT_EQ(str2, "qstring 2"); + EXPECT_EQ(str3, "\"quoted string\""); + + app.parse("/string:\"app:'test1 b' test2:'frogs'\" /t 'qstring 2' /mstr:`\"quoted string\"`"); + EXPECT_EQ(str, "app:'test1 b' test2:'frogs'"); + EXPECT_EQ(str2, "qstring 2"); + EXPECT_EQ(str3, "\"quoted string\""); +} + TEST_F(TApp, OneStringEqualVersionSingleStringQuotedMultipleMixedStyle) { std::string str, str2, str3; app.add_option("-s,--string", str);