diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) | 
| commit | f53a1ef582494458301b97bf6e546be52d7ff7e8 (patch) | |
| tree | 7571b5cbcbd8a8f1dd1c966c9045b6cb69f0e295 /Swiften/Parser/UnitTest/StreamFeaturesParserTest.cpp | |
| parent | 638345680d72ca6acaf123f2c8c1c391f696e371 (diff) | |
| download | swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.zip swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.tar.bz2  | |
Moving submodule contents back.
Diffstat (limited to 'Swiften/Parser/UnitTest/StreamFeaturesParserTest.cpp')
| -rw-r--r-- | Swiften/Parser/UnitTest/StreamFeaturesParserTest.cpp | 63 | 
1 files changed, 63 insertions, 0 deletions
diff --git a/Swiften/Parser/UnitTest/StreamFeaturesParserTest.cpp b/Swiften/Parser/UnitTest/StreamFeaturesParserTest.cpp new file mode 100644 index 0000000..7fd0512 --- /dev/null +++ b/Swiften/Parser/UnitTest/StreamFeaturesParserTest.cpp @@ -0,0 +1,63 @@ +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include "Swiften/Parser/StreamFeaturesParser.h" +#include "Swiften/Parser/UnitTest/ElementParserTester.h" + +using namespace Swift; + +class StreamFeaturesParserTest : public CppUnit::TestFixture +{ +		CPPUNIT_TEST_SUITE(StreamFeaturesParserTest); +		CPPUNIT_TEST(testParse); +		CPPUNIT_TEST(testParse_Empty); +		CPPUNIT_TEST_SUITE_END(); + +	public: +		StreamFeaturesParserTest() {} + +		void testParse() { +			StreamFeaturesParser testling; +			ElementParserTester parser(&testling); + +			CPPUNIT_ASSERT(parser.parse( +				"<stream:features xmlns:stream='http://etherx.jabber.org/streams'>" +					"<starttls xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>" +					"<compression xmlns=\"http://jabber.org/features/compress\">" +						"<method>zlib</method>" +						"<method>lzw</method>" +					"</compression>" +					"<mechanisms xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\">" +						"<mechanism>DIGEST-MD5</mechanism>" +						"<mechanism>PLAIN</mechanism>" +					"</mechanisms>" +					"<bind xmlns=\"urn:ietf:params:xml:ns:xmpp-bind\"/>" +					"<session xmlns=\"urn:ietf:params:xml:ns:xmpp-session\"/>" +				"</stream:features>")); + +			StreamFeatures* element = dynamic_cast<StreamFeatures*>(testling.getElement().get()); +			CPPUNIT_ASSERT(element->hasStartTLS()); +			CPPUNIT_ASSERT(element->hasSession()); +			CPPUNIT_ASSERT(element->hasResourceBind()); +			CPPUNIT_ASSERT(element->hasCompressionMethod("zlib")); +			CPPUNIT_ASSERT(element->hasCompressionMethod("lzw")); +			CPPUNIT_ASSERT(element->hasAuthenticationMechanisms()); +			CPPUNIT_ASSERT(element->hasAuthenticationMechanism("DIGEST-MD5")); +			CPPUNIT_ASSERT(element->hasAuthenticationMechanism("PLAIN")); +		} + +		void testParse_Empty() { +			StreamFeaturesParser testling; +			ElementParserTester parser(&testling); + +			parser.parse("<stream:features xmlns:stream='http://etherx.jabber.org/streams'/>"); + +			StreamFeatures* element = dynamic_cast<StreamFeatures*>(testling.getElement().get()); +			CPPUNIT_ASSERT(!element->hasStartTLS()); +			CPPUNIT_ASSERT(!element->hasSession()); +			CPPUNIT_ASSERT(!element->hasResourceBind()); +			CPPUNIT_ASSERT(!element->hasAuthenticationMechanisms()); +		} +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(StreamFeaturesParserTest);  | 
 Swift