summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorAmrit Brar <72675494+amritbrar@users.noreply.github.com>2021-07-20 08:41:14 -0400
committerAmrit Brar <72675494+amritbrar@users.noreply.github.com>2021-07-20 08:41:14 -0400
commit918156d44c4ef07f44e8f4eb3412b5bcb23eeb7c (patch)
treee33f361b16e003b32472041910044ee8e159636b /test
parentad409bbbc2a7d6d3b6dea5db6a04cdf59ac18373 (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.cpp38
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;