From 6ac2747212532f5296b08b37516badb5a79e89a9 Mon Sep 17 00:00:00 2001 From: Pavel Belikov Date: Sat, 2 Dec 2017 14:08:05 +0300 Subject: fix usage line wrapping --- test.cxx | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'test.cxx') diff --git a/test.cxx b/test.cxx index 897dcf3..911779d 100644 --- a/test.cxx +++ b/test.cxx @@ -958,6 +958,50 @@ TEST_CASE("GetProgramLine works as expected", "[args]") REQUIRE(line(b) == "b -f [positional]"); } +TEST_CASE("Program line wrapping works as expected", "[args]") +{ + args::ArgumentParser p("parser"); + args::ValueFlag f(p, "foo_name", "f", {"foo"}); + args::ValueFlag g(p, "bar_name", "b", {"bar"}); + args::ValueFlag z(p, "baz_name", "z", {"baz"}); + + p.helpParams.proglineShowFlags = true; + p.helpParams.width = 42; + p.Prog("parser"); + p.ProglinePostfix("\na\nliiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiine line2 line2tail"); + + REQUIRE((p.GetProgramLine(p.helpParams) == std::vector{ + "[--foo ]", + "[--bar ]", + "[--baz ]", + "\n", + "a", + "\n", + "liiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiine", + "line2", + "line2tail", + })); + + std::ostringstream s; + s << p; + REQUIRE(s.str() == R"( parser [--foo ] + [--bar ] + [--baz ] + a + liiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiine + line2 line2tail + + parser + + OPTIONS: + + --foo=[foo_name] f + --bar=[bar_name] b + --baz=[baz_name] z + +)"); +} + TEST_CASE("Matcher validation works as expected", "[args]") { args::ArgumentParser parser("Test command"); @@ -984,7 +1028,7 @@ TEST_CASE("HelpParams work as expected", "[args]") )"); - p.helpParams.usageString = "usage: "; + p.helpParams.usageString = "usage:"; p.helpParams.optionsString = "Options"; p.helpParams.useValueNameOnce = true; REQUIRE(p.Help() == R"( usage: prog {OPTIONS} -- cgit v1.2.1