50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
/*
|
|
* Unit tests for src/util/
|
|
*/
|
|
|
|
#include "check.h"
|
|
#include "util/MimeType.hxx"
|
|
|
|
#include <cppunit/TestFixture.h>
|
|
#include <cppunit/extensions/HelperMacros.h>
|
|
|
|
#include <string.h>
|
|
|
|
class MimeTypeTest : public CppUnit::TestFixture {
|
|
CPPUNIT_TEST_SUITE(MimeTypeTest);
|
|
CPPUNIT_TEST(TestBase);
|
|
CPPUNIT_TEST(TestParameters);
|
|
CPPUNIT_TEST_SUITE_END();
|
|
|
|
public:
|
|
void TestBase() {
|
|
CPPUNIT_ASSERT("" == GetMimeTypeBase(""));
|
|
CPPUNIT_ASSERT("" == GetMimeTypeBase(";"));
|
|
CPPUNIT_ASSERT("foo" == GetMimeTypeBase("foo"));
|
|
CPPUNIT_ASSERT("foo/bar" == GetMimeTypeBase("foo/bar"));
|
|
CPPUNIT_ASSERT("foo/bar" == GetMimeTypeBase("foo/bar;"));
|
|
CPPUNIT_ASSERT("foo/bar" == GetMimeTypeBase("foo/bar; x=y"));
|
|
CPPUNIT_ASSERT("foo/bar" == GetMimeTypeBase("foo/bar;x=y"));
|
|
}
|
|
|
|
void TestParameters() {
|
|
CPPUNIT_ASSERT(ParseMimeTypeParameters("").empty());
|
|
CPPUNIT_ASSERT(ParseMimeTypeParameters("foo/bar").empty());
|
|
CPPUNIT_ASSERT(ParseMimeTypeParameters("foo/bar;").empty());
|
|
CPPUNIT_ASSERT(ParseMimeTypeParameters("foo/bar;garbage").empty());
|
|
CPPUNIT_ASSERT(ParseMimeTypeParameters("foo/bar; garbage").empty());
|
|
|
|
auto p = ParseMimeTypeParameters("foo/bar;a=b");
|
|
CPPUNIT_ASSERT(!p.empty());
|
|
CPPUNIT_ASSERT(p["a"] == "b");
|
|
CPPUNIT_ASSERT(p.size() == 1);
|
|
|
|
p = ParseMimeTypeParameters("foo/bar; a=b;c;d=e ; f=g ");
|
|
CPPUNIT_ASSERT(!p.empty());
|
|
CPPUNIT_ASSERT(p["a"] == "b");
|
|
CPPUNIT_ASSERT(p["d"] == "e");
|
|
CPPUNIT_ASSERT(p["f"] == "g");
|
|
CPPUNIT_ASSERT(p.size() == 3);
|
|
}
|
|
};
|