@@ -41,6 +41,7 @@ class TestUtils : public TestFixture {
4141 TEST_CASE (trim);
4242 TEST_CASE (findAndReplace);
4343 TEST_CASE (replaceEscapeSequences);
44+ TEST_CASE (splitString);
4445 }
4546
4647 void isValidGlobPattern () const {
@@ -438,6 +439,50 @@ class TestUtils : public TestFixture {
438439 ASSERT_EQUALS (" \\ " , ::replaceEscapeSequences (" \\\\ " ));
439440 ASSERT_EQUALS (" \" " , ::replaceEscapeSequences (" \\\" " ));
440441 }
442+
443+ void splitString () const {
444+ {
445+ const auto l = ::splitString (" test" , ' ,' );
446+ ASSERT_EQUALS (1 , l.size ());
447+ ASSERT_EQUALS (" test" , *l.cbegin ());
448+ }
449+ {
450+ const auto l = ::splitString (" test,test" , ' ;' );
451+ ASSERT_EQUALS (1 , l.size ());
452+ ASSERT_EQUALS (" test,test" , *l.cbegin ());
453+ }
454+ {
455+ const auto l = ::splitString (" test,test" , ' ,' );
456+ ASSERT_EQUALS (2 , l.size ());
457+ auto it = l.cbegin ();
458+ ASSERT_EQUALS (" test" , *it++);
459+ ASSERT_EQUALS (" test" , *it);
460+ }
461+ {
462+ const auto l = ::splitString (" test,test," , ' ,' );
463+ ASSERT_EQUALS (3 , l.size ());
464+ auto it = l.cbegin ();
465+ ASSERT_EQUALS (" test" , *it++);
466+ ASSERT_EQUALS (" test" , *it++);
467+ ASSERT_EQUALS (" " , *it);
468+ }
469+ {
470+ const auto l = ::splitString (" test,,test" , ' ,' );
471+ ASSERT_EQUALS (3 , l.size ());
472+ auto it = l.cbegin ();
473+ ASSERT_EQUALS (" test" , *it++);
474+ ASSERT_EQUALS (" " , *it++);
475+ ASSERT_EQUALS (" test" , *it);
476+ }
477+ {
478+ const auto l = ::splitString (" ,test,test" , ' ,' );
479+ ASSERT_EQUALS (3 , l.size ());
480+ auto it = l.cbegin ();
481+ ASSERT_EQUALS (" " , *it++);
482+ ASSERT_EQUALS (" test" , *it++);
483+ ASSERT_EQUALS (" test" , *it);
484+ }
485+ }
441486};
442487
443488REGISTER_TEST (TestUtils)
0 commit comments