/* * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include <cppunit/extensions/HelperMacros.h> #include <cppunit/extensions/TestFactoryRegistry.h> #include <Swiften/Elements/Storage.h> #include <Swiften/Serializer/PayloadSerializers/UnitTest/PayloadsSerializer.h> using namespace Swift; class StorageSerializerTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(StorageSerializerTest); CPPUNIT_TEST(testSerialize); CPPUNIT_TEST(testSerialize_NoNickOrPassword); CPPUNIT_TEST_SUITE_END(); public: StorageSerializerTest() {} void testSerialize() { PayloadsSerializer serializer; std::shared_ptr<Storage> storage(new Storage()); Storage::Room room; room.name = "Council of Oberon"; room.autoJoin = true; room.jid = JID("council@conference.underhill.org"); room.nick = "Puck"; room.password = "MyPass"; storage->addRoom(room); Storage::URL url; url.name = "Complete Works of Shakespeare"; url.url = "http://the-tech.mit.edu/Shakespeare/"; storage->addURL(url); CPPUNIT_ASSERT_EQUAL(std::string( "<storage xmlns=\"storage:bookmarks\">" "<conference " "autojoin=\"1\" " "jid=\"council@conference.underhill.org\" " "name=\"Council of Oberon\">" "<nick>Puck</nick>" "<password>MyPass</password>" "</conference>" "<url name=\"Complete Works of Shakespeare\" url=\"http://the-tech.mit.edu/Shakespeare/\"/>" "</storage>"), serializer.serialize(storage)); } void testSerialize_NoNickOrPassword() { PayloadsSerializer serializer; std::shared_ptr<Storage> storage(new Storage()); Storage::Room room; room.name = "Council of Oberon"; room.autoJoin = true; room.jid = JID("council@conference.underhill.org"); storage->addRoom(room); CPPUNIT_ASSERT_EQUAL(std::string( "<storage xmlns=\"storage:bookmarks\">" "<conference " "autojoin=\"1\" " "jid=\"council@conference.underhill.org\" " "name=\"Council of Oberon\"/>" "</storage>"), serializer.serialize(storage)); } }; CPPUNIT_TEST_SUITE_REGISTRATION(StorageSerializerTest);