diff options
author | Amrit Brar <72675494+amritbrar@users.noreply.github.com> | 2021-07-20 08:41:14 -0400 |
---|---|---|
committer | Amrit Brar <72675494+amritbrar@users.noreply.github.com> | 2021-07-20 08:41:14 -0400 |
commit | 918156d44c4ef07f44e8f4eb3412b5bcb23eeb7c (patch) | |
tree | e33f361b16e003b32472041910044ee8e159636b /test | |
parent | ad409bbbc2a7d6d3b6dea5db6a04cdf59ac18373 (diff) |
cliargsparser: add more tests for options
Add cpp and rust tests for:
- combined short options (e.g. `-vc /path/to/cache.db`)
- combined arguments and options (e.g. `-c/path/to/cache.db`)
- short options with `=` (e.g. `-c=/path/to/cache.db`)
See also: newsboat#1549
Diffstat (limited to 'test')
-rw-r--r-- | test/cliargsparser.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/cliargsparser.cpp b/test/cliargsparser.cpp index a81e73a8..d1492826 100644 --- a/test/cliargsparser.cpp +++ b/test/cliargsparser.cpp @@ -250,6 +250,44 @@ TEST_CASE( } } +TEST_CASE("Supports combined short options", "[CliArgsParser]") +{ + const std::string filename("cache.db"); + + TestHelpers::Opts opts = {"newsboat", "-vc", filename}; + CliArgsParser args(opts.argc(), opts.argv()); + + REQUIRE(args.cache_file() == filename); + REQUIRE(args.lock_file() == filename + ".lock"); + REQUIRE(args.using_nonstandard_configs()); + REQUIRE(args.show_version() == 1); +} + +TEST_CASE("Supports combined short option and value", "[CliArgsParser]") +{ + const std::string filename("cache.db"); + + TestHelpers::Opts opts = {"newsboat", "-c" + filename}; + CliArgsParser args(opts.argc(), opts.argv()); + + REQUIRE(args.cache_file() == filename); + REQUIRE(args.lock_file() == filename + ".lock"); + REQUIRE(args.using_nonstandard_configs()); +} + +TEST_CASE("Supports `=` between combined short option and value", + "[CliArgsParser]") +{ + const std::string filename("cache.db"); + + TestHelpers::Opts opts = {"newsboat", "-c=" + filename}; + CliArgsParser args(opts.argc(), opts.argv()); + + REQUIRE(args.cache_file() == filename); + REQUIRE(args.lock_file() == filename + ".lock"); + REQUIRE(args.using_nonstandard_configs()); +} + TEST_CASE("Resolves tilde to homedir in -c/--cache-file", "[CliArgsParser]") { TestHelpers::TempDir tmp; |