/* * Copyright (c) 2010-2013 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 <boost/smart_ptr/make_shared.hpp> #include <Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.h> using namespace Swift; class InBandRegistrationPayloadSerializerTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(InBandRegistrationPayloadSerializerTest); CPPUNIT_TEST(testSerialize); CPPUNIT_TEST(testSerialize_Form); CPPUNIT_TEST_SUITE_END(); public: void testSerialize() { InBandRegistrationPayloadSerializer testling; boost::shared_ptr<InBandRegistrationPayload> registration(new InBandRegistrationPayload()); registration->setRegistered(true); std::string expectedResult = "<query xmlns=\"jabber:iq:register\">" "<registered/>" "</query>"; CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(registration)); } void testSerialize_Form() { InBandRegistrationPayloadSerializer testling; boost::shared_ptr<InBandRegistrationPayload> registration(new InBandRegistrationPayload()); registration->setInstructions("Use the enclosed form to register."); boost::shared_ptr<Form> form(new Form(Form::FormType)); form->setTitle("Contest Registration"); FormField::ref field = boost::make_shared<FormField>(FormField::HiddenType, "jabber:iq:register"); field->setName("FORM_TYPE"); form->addField(field); registration->setForm(form); std::string expectedResult = "<query xmlns=\"jabber:iq:register\">" "<instructions>Use the enclosed form to register.</instructions>" "<x type=\"form\" xmlns=\"jabber:x:data\">" "<title>Contest Registration</title>" "<field type=\"hidden\" var=\"FORM_TYPE\">" "<value>jabber:iq:register</value>" "</field>" "</x>" "</query>"; CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(registration)); } }; CPPUNIT_TEST_SUITE_REGISTRATION(InBandRegistrationPayloadSerializerTest);