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);
 | 
						|
	}
 | 
						|
};
 |