diff options
Diffstat (limited to 'test/utils.cpp')
-rw-r--r-- | test/utils.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/utils.cpp b/test/utils.cpp index 8be0a462..434b8bb4 100644 --- a/test/utils.cpp +++ b/test/utils.cpp @@ -1643,6 +1643,37 @@ TEST_CASE("unescape_url() takes a percent-encoded string and returns the string } +TEST_CASE("preserve_quotes() preserves single quotes and double quotes, if any", + "[utils]") +{ + REQUIRE(utils::preserve_quotes("") == "''"); + REQUIRE(utils::preserve_quotes("sss") == "'sss'"); + + SECTION("Preserves double quotes") { + REQUIRE(utils::preserve_quotes("\"sss\"") == "'\"sss\"'"); + REQUIRE(utils::preserve_quotes("sss\"") == "'sss\"'"); + REQUIRE(utils::preserve_quotes("\"sss") == "'\"sss'"); + REQUIRE(utils::preserve_quotes("ss\"s") == "'ss\"s'"); + REQUIRE(utils::preserve_quotes("ss\"\"s") == "'ss\"\"s'"); + } + + SECTION("Preserves single quotes") { + REQUIRE(utils::preserve_quotes("'sss'") == "\\\''sss'\\\'"); + REQUIRE(utils::preserve_quotes("'sss") == "\\\''sss'"); + REQUIRE(utils::preserve_quotes("sss'") == "'sss'\\\'"); + REQUIRE(utils::preserve_quotes("ss's") == "'ss'\\\''s'"); + REQUIRE(utils::preserve_quotes("ss''s") == "'ss'\\\'\\\''s'"); + } + + SECTION("Preserves a combination of single and double quotes") { + REQUIRE(utils::preserve_quotes("'\"sss\"'") == "\\\''\"sss\"'\\\'"); + REQUIRE(utils::preserve_quotes("\"'sss'\"") == "'\"'\\\''sss'\\\''\"'"); + REQUIRE(utils::preserve_quotes("\"sss'") == "'\"sss'\\\'"); + REQUIRE(utils::preserve_quotes("'sss\"") == "\\\''sss\"'"); + REQUIRE(utils::preserve_quotes("ss\"'s") == "'ss\"'\\\''s'"); + } +} + TEST_CASE("gentabs() calculates padding tabs based on stringwidth", "[utils]") { REQUIRE(utils::gentabs("") == 4); |