diff options
Diffstat (limited to 'Swiften/Parser/PayloadParsers/UnitTest/StorageParserTest.cpp')
| -rw-r--r-- | Swiften/Parser/PayloadParsers/UnitTest/StorageParserTest.cpp | 67 | 
1 files changed, 67 insertions, 0 deletions
| diff --git a/Swiften/Parser/PayloadParsers/UnitTest/StorageParserTest.cpp b/Swiften/Parser/PayloadParsers/UnitTest/StorageParserTest.cpp new file mode 100644 index 0000000..fa188b7 --- /dev/null +++ b/Swiften/Parser/PayloadParsers/UnitTest/StorageParserTest.cpp @@ -0,0 +1,67 @@ +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include "Swiften/Parser/PayloadParsers/StorageParser.h" +#include "Swiften/Parser/PayloadParsers/UnitTest/PayloadParserTester.h" + +using namespace Swift; + +class StorageParserTest : public CppUnit::TestFixture +{ +		CPPUNIT_TEST_SUITE(StorageParserTest); +		CPPUNIT_TEST(testParse_Conference); +		CPPUNIT_TEST(testParse_MultipleConferences); +		CPPUNIT_TEST_SUITE_END(); + +	public: +		StorageParserTest() {} + +		void testParse_Conference() { +			StorageParser testling; +			PayloadParserTester parser(&testling); + +			CPPUNIT_ASSERT(parser.parse( +				"<storage xmlns='storage:bookmarks'>" +					"<conference " +							"name='Council of Oberon' " +							"autojoin='true' jid='council@conference.underhill.org'>" +						"<nick>Puck</nick>" +						"<password>MyPass</password>" +					"</conference>" +				"</storage>")); + +			Storage* payload = dynamic_cast<Storage*>(testling.getPayload().get()); +			std::vector<Storage::Conference> conferences = payload->getConferences(); +			CPPUNIT_ASSERT_EQUAL(1U, conferences.size()); +			CPPUNIT_ASSERT_EQUAL(String("Council of Oberon"), conferences[0].name); +			CPPUNIT_ASSERT_EQUAL(JID("council@conference.underhill.org"), conferences[0].jid); +			CPPUNIT_ASSERT(conferences[0].autoJoin); +			CPPUNIT_ASSERT_EQUAL(String("Puck"), conferences[0].nick); +			CPPUNIT_ASSERT_EQUAL(String("MyPass"), conferences[0].password); +		} + +		void testParse_MultipleConferences() { +			StorageParser testling; +			PayloadParserTester parser(&testling); + +			CPPUNIT_ASSERT(parser.parse( +				"<storage xmlns='storage:bookmarks'>" +					"<conference " +							"name='Council of Oberon' " +							"jid='council@conference.underhill.org' />" +					"<conference " +							"name='Tea party' " +							"jid='teaparty@wonderland.lit' />" +				"</storage>")); + +			Storage* payload = dynamic_cast<Storage*>(testling.getPayload().get()); +			std::vector<Storage::Conference> conferences = payload->getConferences(); +			CPPUNIT_ASSERT_EQUAL(2U, conferences.size()); +			CPPUNIT_ASSERT_EQUAL(String("Council of Oberon"), conferences[0].name); +			CPPUNIT_ASSERT_EQUAL(JID("council@conference.underhill.org"), conferences[0].jid); +			CPPUNIT_ASSERT_EQUAL(String("Tea party"), conferences[1].name); +			CPPUNIT_ASSERT_EQUAL(JID("teaparty@wonderland.lit"), conferences[1].jid); +		} +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(StorageParserTest); | 
 Swift
 Swift