diff options
-rw-r--r-- | Swiften/IDN/SConscript | 6 | ||||
-rw-r--r-- | Swiften/IDN/UnitTest/StringPrepTest.cpp | 34 |
2 files changed, 39 insertions, 1 deletions
diff --git a/Swiften/IDN/SConscript b/Swiften/IDN/SConscript index 7382578..99b35fd 100644 --- a/Swiften/IDN/SConscript +++ b/Swiften/IDN/SConscript @@ -1,4 +1,4 @@ -Import("swiften_env") +Import("swiften_env", "env") myenv = swiften_env.Clone() myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"]) @@ -8,3 +8,7 @@ objects = myenv.SwiftenObject([ "IDNA.cpp", ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) + +env.Append(UNITTEST_SOURCES = [ + File("UnitTest/StringPrepTest.cpp"), + ]) diff --git a/Swiften/IDN/UnitTest/StringPrepTest.cpp b/Swiften/IDN/UnitTest/StringPrepTest.cpp new file mode 100644 index 0000000..beab01e --- /dev/null +++ b/Swiften/IDN/UnitTest/StringPrepTest.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include "Swiften/IDN/StringPrep.h" + +using namespace Swift; + +class StringPrepTest : public CppUnit::TestFixture { + CPPUNIT_TEST_SUITE(StringPrepTest); + CPPUNIT_TEST(testStringPrep); + CPPUNIT_TEST(testStringPrep_Empty); + CPPUNIT_TEST_SUITE_END(); + + public: + void testStringPrep() { + std::string result = StringPrep::getPrepared("tron\xc3\x87on", StringPrep::NamePrep); + + CPPUNIT_ASSERT_EQUAL(std::string("tron\xc3\xa7on"), result); + } + + void testStringPrep_Empty() { + CPPUNIT_ASSERT_EQUAL(std::string(""), StringPrep::getPrepared("", StringPrep::NamePrep)); + CPPUNIT_ASSERT_EQUAL(std::string(""), StringPrep::getPrepared("", StringPrep::XMPPNodePrep)); + CPPUNIT_ASSERT_EQUAL(std::string(""), StringPrep::getPrepared("", StringPrep::XMPPResourcePrep)); + } +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(StringPrepTest); |