From f09fd42645e2c25b2c62272a502e5fa6b598193c Mon Sep 17 00:00:00 2001 From: "Ignacio R. Morelle" Date: Wed, 4 Jun 2014 14:13:21 -0400 Subject: [PATCH] Add test cases for utils::wildcard_string_match() --- src/tests/test_serialization.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/tests/test_serialization.cpp b/src/tests/test_serialization.cpp index 100dc70b6c30..669fc975ff62 100644 --- a/src/tests/test_serialization.cpp +++ b/src/tests/test_serialization.cpp @@ -83,4 +83,30 @@ BOOST_AUTO_TEST_CASE( test_lowercase ) BOOST_CHECK_EQUAL ( utf8::lowercase("fO0") , "fo0" ); } +BOOST_AUTO_TEST_CASE( test_wildcard_string_match ) +{ + const std::string str = "foo bar baz"; + + BOOST_CHECK(utils::wildcard_string_match(str, "*bar*")); + + BOOST_CHECK(!utils::wildcard_string_match(str, "*BAR*")); + BOOST_CHECK(!utils::wildcard_string_match(str, "bar")); + + BOOST_CHECK(utils::wildcard_string_match(str, "*ba? b*")); + BOOST_CHECK(utils::wildcard_string_match(str, "*?a?*")); + + BOOST_CHECK(!utils::wildcard_string_match(str, "foo? ")); + BOOST_CHECK(!utils::wildcard_string_match(str, "?foo")); + + std::string superfluous_mask; + + superfluous_mask = std::string(str.length(), '?'); + BOOST_CHECK(utils::wildcard_string_match(str, superfluous_mask)); + BOOST_CHECK(utils::wildcard_string_match(str, superfluous_mask + '?')); + + superfluous_mask = std::string(str.length(), '*'); + BOOST_CHECK(utils::wildcard_string_match(str, superfluous_mask)); + BOOST_CHECK(utils::wildcard_string_match(str, superfluous_mask + '*')); +} + BOOST_AUTO_TEST_SUITE_END()