/* ====================================================================
* Copyright (c) 2006, Martin Hauner
* http://subcommander.tigris.org
*
* Subcommander is licensed as described in the file doc/COPYING, which
* you should have received as part of this distribution.
* ====================================================================
*/
#include "UtfTest.h"
// cppunit
#include <cppunit/TestSuite.h>
#include <cppunit/TestCaller.h>
// sc
#include "util/utf.h"
// svn
#include <svn_io.h>
UtfTest::UtfTest() : CppUnit::TestCase("UtfTest")
{
}
UtfTest::~UtfTest()
{
}
void UtfTest::setUp()
{
}
void UtfTest::tearDown()
{
}
CppUnit::Test *UtfTest::suite()
{
CppUnit::TestSuite *newSuite = new CppUnit::TestSuite("FileTest");
newSuite->addTest(new CppUnit::TestCaller<UtfTest>("testUtf8",&UtfTest::testUtf8) );
newSuite->addTest(new CppUnit::TestCaller<UtfTest>("testUtf32be",&UtfTest::testUtf32be) );
newSuite->addTest(new CppUnit::TestCaller<UtfTest>("testUtf32le",&UtfTest::testUtf32le) );
newSuite->addTest(new CppUnit::TestCaller<UtfTest>("testUtf16be",&UtfTest::testUtf16be) );
newSuite->addTest(new CppUnit::TestCaller<UtfTest>("testUtf16le",&UtfTest::testUtf16le) );
return newSuite;
}
void UtfTest::testUtf8()
{
svn_error_t* err;
svn_stringbuf_t* filebuf = NULL;
err = svn_stringbuf_from_file( &filebuf, "../../tests/util/files/utf/utf-8.txt", _pool );
CPPUNIT_ASSERT( err == SVN_NO_ERROR );
utf utf8( (const unsigned char*)filebuf->data, filebuf->len );
CPPUNIT_ASSERT( utf8.hasEncoding() );
CPPUNIT_ASSERT_EQUAL( sc::String("utf-8"), utf8.getEncoding() );
CPPUNIT_ASSERT( utf8.hasBom() );
CPPUNIT_ASSERT( ! utf8.isBigEndian() );
CPPUNIT_ASSERT( ! utf8.isLittleEndian() );
}
void UtfTest::testUtf32be()
{
svn_error_t* err;
svn_stringbuf_t* filebuf = NULL;
err = svn_stringbuf_from_file( &filebuf, "../../tests/util/files/utf/utf-32be.txt", _pool );
CPPUNIT_ASSERT( err == SVN_NO_ERROR );
utf utf( (const unsigned char*)filebuf->data, filebuf->len );
CPPUNIT_ASSERT( utf.hasEncoding() );
CPPUNIT_ASSERT_EQUAL( sc::String("utf-32be"), utf.getEncoding() );
CPPUNIT_ASSERT( utf.hasBom() );
CPPUNIT_ASSERT( utf.isBigEndian() );
CPPUNIT_ASSERT( ! utf.isLittleEndian() );
}
void UtfTest::testUtf32le()
{
svn_error_t* err;
svn_stringbuf_t* filebuf = NULL;
err = svn_stringbuf_from_file( &filebuf, "../../tests/util/files/utf/utf-32le.txt", _pool );
CPPUNIT_ASSERT( err == SVN_NO_ERROR );
utf utf( (const unsigned char*)filebuf->data, filebuf->len );
CPPUNIT_ASSERT( utf.hasEncoding() );
CPPUNIT_ASSERT_EQUAL( sc::String("utf-32le"), utf.getEncoding() );
CPPUNIT_ASSERT( utf.hasBom() );
CPPUNIT_ASSERT( ! utf.isBigEndian() );
CPPUNIT_ASSERT( utf.isLittleEndian() );
}
void UtfTest::testUtf16be()
{
svn_error_t* err;
svn_stringbuf_t* filebuf = NULL;
err = svn_stringbuf_from_file( &filebuf, "../../tests/util/files/utf/utf-16be.txt", _pool );
CPPUNIT_ASSERT( err == SVN_NO_ERROR );
utf utf( (const unsigned char*)filebuf->data, filebuf->len );
CPPUNIT_ASSERT( utf.hasEncoding() );
CPPUNIT_ASSERT_EQUAL( sc::String("utf-16be"), utf.getEncoding() );
CPPUNIT_ASSERT( utf.hasBom() );
CPPUNIT_ASSERT( utf.isBigEndian() );
CPPUNIT_ASSERT( ! utf.isLittleEndian() );
}
void UtfTest::testUtf16le()
{
svn_error_t* err;
svn_stringbuf_t* filebuf = NULL;
err = svn_stringbuf_from_file( &filebuf, "../../tests/util/files/utf/utf-16le.txt", _pool );
CPPUNIT_ASSERT( err == SVN_NO_ERROR );
utf utf( (const unsigned char*)filebuf->data, filebuf->len );
CPPUNIT_ASSERT( utf.hasEncoding() );
CPPUNIT_ASSERT_EQUAL( sc::String("utf-16le"), utf.getEncoding() );
CPPUNIT_ASSERT( utf.hasBom() );
CPPUNIT_ASSERT( ! utf.isBigEndian() );
CPPUNIT_ASSERT( utf.isLittleEndian() );
}
syntax highlighted by Code2HTML, v. 0.9.1