Skip to content

Commit e433526

Browse files
committed
CI tests for escape char support in OptionStringContainer::from_string
1 parent 890fe69 commit e433526

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

test/libdnf5/conf/test_option.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,29 @@ void OptionTest::test_options_string_list_custom_delimiters() {
494494
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"Dfirstx", "DsecondX"}), option3.get_value());
495495
}
496496

497+
void OptionTest::test_options_string_list_escape() {
498+
OptionStringList option("Dfirstx\\,DsecondX");
499+
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"Dfirstx,DsecondX"}), option.get_value());
500+
501+
option.set(Option::Priority::RUNTIME, "Dfirstx\\ DsecondX");
502+
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"Dfirstx DsecondX"}), option.get_value());
503+
504+
option.set(Option::Priority::RUNTIME, "\\ , DsecondX");
505+
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"", "DsecondX"}), option.get_value());
506+
507+
option.set(Option::Priority::RUNTIME, "asdasd,\\ ,DsecondX");
508+
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"asdasd", "DsecondX"}), option.get_value());
509+
510+
option.set(Option::Priority::RUNTIME, "asdasd,\\,,DsecondX");
511+
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"asdasd", ",", "DsecondX"}), option.get_value());
512+
}
513+
514+
void OptionTest::test_options_string_list_custom_delimiters_escape() {
515+
OptionStringList option3((std::vector<std::string>){"dval1X", "dval2X"}, "", true, ";");
516+
option3.set(Option::Priority::RUNTIME, " aa\\; b; ccc,; \n");
517+
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"aa; b", "ccc,"}), option3.get_value());
518+
}
519+
497520
void OptionTest::test_options_string_set() {
498521
const OptionStringSet::ValueType initial{"x", "y", "z"};
499522
OptionStringSet option(initial);

test/libdnf5/conf/test_option.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class OptionTest : public CppUnit::TestCase {
3737
CPPUNIT_TEST(test_options_string_list);
3838
CPPUNIT_TEST(test_options_string_list_delimiters);
3939
CPPUNIT_TEST(test_options_string_list_custom_delimiters);
40+
CPPUNIT_TEST(test_options_string_list_escape);
41+
CPPUNIT_TEST(test_options_string_list_custom_delimiters_escape);
4042
CPPUNIT_TEST(test_options_string_set);
4143
CPPUNIT_TEST(test_options_list_add);
4244
CPPUNIT_TEST(test_options_list_add_item);
@@ -54,6 +56,8 @@ class OptionTest : public CppUnit::TestCase {
5456
void test_options_string_list();
5557
void test_options_string_list_delimiters();
5658
void test_options_string_list_custom_delimiters();
59+
void test_options_string_list_escape();
60+
void test_options_string_list_custom_delimiters_escape();
5761
void test_options_string_set();
5862
void test_options_list_add();
5963
void test_options_list_add_item();

0 commit comments

Comments
 (0)