diff options
-rw-r--r-- | Makefile.am | 10 | ||||
-rw-r--r-- | test/test_util.cxx | 54 |
2 files changed, 64 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index b3f62b6f7..1bacdcdbd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1056,6 +1056,7 @@ sparse-check: if ENABLE_TEST C_TESTS = \ + test/test_util \ test/test_byte_reverse \ test/test_pcm \ test/test_queue_priority @@ -1466,6 +1467,15 @@ test_run_inotify_LDADD = \ $(GLIB_LIBS) endif +test_test_util_SOURCES = \ + test/test_util.cxx +test_test_util_CPPFLAGS = $(AM_CPPFLAGS) $(CPPUNIT_CFLAGS) -DCPPUNIT_HAVE_RTTI=0 +test_test_util_CXXFLAGS = $(AM_CXXFLAGS) -Wno-error=deprecated-declarations +test_test_util_LDADD = \ + libutil.a \ + $(GLIB_LIBS) \ + $(CPPUNIT_LIBS) + test_test_byte_reverse_SOURCES = \ test/test_byte_reverse.cxx test_test_byte_reverse_CPPFLAGS = $(AM_CPPFLAGS) $(CPPUNIT_CFLAGS) -DCPPUNIT_HAVE_RTTI=0 diff --git a/test/test_util.cxx b/test/test_util.cxx new file mode 100644 index 000000000..eaa64f3e3 --- /dev/null +++ b/test/test_util.cxx @@ -0,0 +1,54 @@ +/* + * Unit tests for src/util/ + */ + +#include "config.h" +#include "util/UriUtil.hxx" + +#include <cppunit/TestFixture.h> +#include <cppunit/extensions/TestFactoryRegistry.h> +#include <cppunit/ui/text/TestRunner.h> +#include <cppunit/extensions/HelperMacros.h> + +#include <string.h> + +class UriUtilTest : public CppUnit::TestFixture { + CPPUNIT_TEST_SUITE(UriUtilTest); + CPPUNIT_TEST(TestSuffix); + CPPUNIT_TEST(TestRemoveAuth); + CPPUNIT_TEST_SUITE_END(); + +public: + void TestSuffix() { + CPPUNIT_ASSERT_EQUAL((const char *)nullptr, + uri_get_suffix("/foo/bar")); + CPPUNIT_ASSERT_EQUAL((const char *)nullptr, + uri_get_suffix("/foo.jpg/bar")); + CPPUNIT_ASSERT_EQUAL(0, strcmp(uri_get_suffix("/foo/bar.jpg"), + "jpg")); + CPPUNIT_ASSERT_EQUAL(0, strcmp(uri_get_suffix("/foo.png/bar.jpg"), + "jpg")); + } + + void TestRemoveAuth() { + CPPUNIT_ASSERT_EQUAL((char *)nullptr, + uri_remove_auth("http://www.example.com/")); + CPPUNIT_ASSERT_EQUAL(0, strcmp(uri_remove_auth("http://foo:bar@www.example.com/"), + "http://www.example.com/")); + CPPUNIT_ASSERT_EQUAL(0, strcmp(uri_remove_auth("http://foo@www.example.com/"), + "http://www.example.com/")); + CPPUNIT_ASSERT_EQUAL((char *)nullptr, + uri_remove_auth("http://www.example.com/f:oo@bar")); + } +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(UriUtilTest); + +int +main(gcc_unused int argc, gcc_unused char **argv) +{ + CppUnit::TextUi::TestRunner runner; + auto ®istry = CppUnit::TestFactoryRegistry::getRegistry(); + runner.addTest(registry.makeTest()); + return runner.run() ? EXIT_SUCCESS : EXIT_FAILURE; +} |