diff options
Diffstat (limited to 'Swiften/Parser/UnitTest/BOSHBodyExtractorTest.cpp')
| -rw-r--r-- | Swiften/Parser/UnitTest/BOSHBodyExtractorTest.cpp | 104 | 
1 files changed, 104 insertions, 0 deletions
| diff --git a/Swiften/Parser/UnitTest/BOSHBodyExtractorTest.cpp b/Swiften/Parser/UnitTest/BOSHBodyExtractorTest.cpp new file mode 100644 index 0000000..fc7d17b --- /dev/null +++ b/Swiften/Parser/UnitTest/BOSHBodyExtractorTest.cpp @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2011 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/Parser/PlatformXMLParserFactory.h> +#include <Swiften/Parser/BOSHBodyExtractor.h> + +using namespace Swift; + +class BOSHBodyExtractorTest : public CppUnit::TestFixture { +		CPPUNIT_TEST_SUITE(BOSHBodyExtractorTest); +		CPPUNIT_TEST(testGetBody); +		CPPUNIT_TEST(testGetBody_EmptyContent); +		CPPUNIT_TEST(testGetBody_EmptyContent2); +		CPPUNIT_TEST(testGetBody_EmptyElementEmptyContent); +		CPPUNIT_TEST(testGetBody_InvalidStartTag); +		CPPUNIT_TEST(testGetBody_InvalidStartTag2); +		CPPUNIT_TEST(testGetBody_IncompleteStartTag); +		CPPUNIT_TEST(testGetBody_InvalidEndTag); +		CPPUNIT_TEST(testGetBody_InvalidEndTag2); +		CPPUNIT_TEST_SUITE_END(); + +	public: +		void testGetBody() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<body a1='a\"1' a2=\"a'2\" boo='bar'   >" +						"foo <message> <body> bar" +					"</body   >  ")); + +			CPPUNIT_ASSERT(testling.getBody()); +			CPPUNIT_ASSERT_EQUAL(std::string("a\"1"), testling.getBody()->attributes.getAttribute("a1")); +			CPPUNIT_ASSERT_EQUAL(std::string("foo <message> <body> bar"), testling.getBody()->content); +		} + +		void testGetBody_EmptyContent() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<body foo='bar'/>")); + +			CPPUNIT_ASSERT(testling.getBody()); +			CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getBody()->attributes.getAttribute("foo")); +			CPPUNIT_ASSERT(testling.getBody()->content.empty()); +		} + +		void testGetBody_EmptyContent2() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<body foo='bar'></body>")); + +			CPPUNIT_ASSERT(testling.getBody()); +			CPPUNIT_ASSERT_EQUAL(std::string("bar"), testling.getBody()->attributes.getAttribute("foo")); +			CPPUNIT_ASSERT(testling.getBody()->content.empty()); +		} + +		void testGetBody_EmptyElementEmptyContent() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<body/>")); + +			CPPUNIT_ASSERT(testling.getBody()); +		} + +		void testGetBody_InvalidStartTag() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<bodi></body>")); + +			CPPUNIT_ASSERT(!testling.getBody()); +		} + +		void testGetBody_InvalidStartTag2() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<bodyy></body>")); + +			CPPUNIT_ASSERT(!testling.getBody()); +		} + +		void testGetBody_IncompleteStartTag() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<body")); + +			CPPUNIT_ASSERT(!testling.getBody()); +		} + +		void testGetBody_InvalidEndTag() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<body></bodi>")); + +			CPPUNIT_ASSERT(!testling.getBody()); +		} + +		void testGetBody_InvalidEndTag2() { +			BOSHBodyExtractor testling(&parserFactory, createByteArray( +					"<body><b/body>")); + +			CPPUNIT_ASSERT(!testling.getBody()); +		} + +	private: +		PlatformXMLParserFactory parserFactory; +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(BOSHBodyExtractorTest); | 
 Swift
 Swift