/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include #include #include using namespace Swift; class SearchPayloadSerializerTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(SearchPayloadSerializerTest); CPPUNIT_TEST(testSerialize_Request); CPPUNIT_TEST(testSerialize_Items); CPPUNIT_TEST(testSerialize_DataForm); CPPUNIT_TEST_SUITE_END(); public: void testSerialize_Request() { SearchPayloadSerializer testling; SearchPayload::ref payload(new SearchPayload()); payload->setFirst("Juliet"); payload->setLast("Capulet"); CPPUNIT_ASSERT_EQUAL(std::string( "" "Juliet" "Capulet" "" ), testling.serialize(payload)); } void testSerialize_Items() { SearchPayloadSerializer testling; SearchPayload::ref payload(new SearchPayload()); SearchPayload::Item item1; item1.jid = JID("juliet@capulet.com"); item1.first = "Juliet"; item1.last = "Capulet"; item1.nick = "JuliC"; item1.email = "juliet@shakespeare.lit"; payload->addItem(item1); SearchPayload::Item item2; item2.jid = JID("tybalt@shakespeare.lit"); item2.first = "Tybalt"; item2.last = "Capulet"; item2.nick = "ty"; item2.email = "tybalt@shakespeare.lit"; payload->addItem(item2); CPPUNIT_ASSERT_EQUAL(std::string( "" "" "Juliet" "Capulet" "JuliC" "juliet@shakespeare.lit" "" "" "Tybalt" "Capulet" "ty" "tybalt@shakespeare.lit" "" "" ), testling.serialize(payload)); } void testSerialize_DataForm() { SearchPayloadSerializer testling; SearchPayload::ref payload(new SearchPayload()); boost::shared_ptr
form(new Form(Form::ResultType)); FormField::ref field = HiddenFormField::create("jabber:iq:search"); field->setName("FORM_TYPE"); form->addField(field); // reported fields field = TextSingleFormField::create(); field->setName("first"); field->setLabel("Given Name"); form->addReportedField(field); field = TextSingleFormField::create(); field->setName("last"); field->setLabel("Family Name"); form->addReportedField(field); field = JIDSingleFormField::create(); field->setName("jid"); field->setLabel("Jabber ID"); form->addReportedField(field); field = ListSingleFormField::create(); field->setName("x-gender"); field->setLabel("Gender"); form->addReportedField(field); Form::FormItem firstItem; field = TextSingleFormField::create("Benvolio"); field->setName("first"); firstItem.push_back(field); field = TextSingleFormField::create("Montague"); field->setName("last"); firstItem.push_back(field); field = TextSingleFormField::create("benvolio@montague.net"); field->setName("jid"); firstItem.push_back(field); field = ListSingleFormField::create("male"); field->setName("x-gender"); firstItem.push_back(field); Form::FormItem secondItem; field = TextSingleFormField::create("Romeo"); field->setName("first"); secondItem.push_back(field); field = TextSingleFormField::create("Montague"); field->setName("last"); secondItem.push_back(field); field = TextSingleFormField::create("romeo@montague.net"); field->setName("jid"); secondItem.push_back(field); field = ListSingleFormField::create("male"); field->setName("x-gender"); secondItem.push_back(field); form->addItem(firstItem); form->addItem(secondItem); payload->setForm(form); CPPUNIT_ASSERT_EQUAL(std::string( "" "" "" "jabber:iq:search" "" "" "" "" "" "" "" "" "Benvolio" "Montague" "benvolio@montague.net" "male" "" "" "Romeo" "Montague" "romeo@montague.net" "male" "" "" ""), testling.serialize(payload)); } }; CPPUNIT_TEST_SUITE_REGISTRATION(SearchPayloadSerializerTest);