static #if HAVE_SWIFTEN_3 FormField::ref #else TextPrivateFormField::ref #endif createTextPrivateField(const std::string &name, const std::string &label, bool required) { #if HAVE_SWIFTEN_3 FormField::ref field = SWIFTEN_SHRPTR_NAMESPACE::make_shared<FormField>(FormField::TextPrivateType); #else TextPrivateFormField::ref field = TextPrivateFormField::create(); #endif field->setName(name); field->setLabel(label); field->setRequired(required); return field; }
static #if HAVE_SWIFTEN_3 FormField::ref #else BooleanFormField::ref #endif createBooleanField(const std::string &name, const std::string &value, const std::string &label, bool required) { #if HAVE_SWIFTEN_3 FormField::ref field = SWIFTEN_SHRPTR_NAMESPACE::make_shared<FormField>(FormField::BooleanType, value); #else BooleanFormField::ref field = BooleanFormField::create(); field->setValue(value == "1"); #endif field->setName(name); field->setLabel(label); field->setRequired(required); return field; }
static #if HAVE_SWIFTEN_3 FormField::ref #else ListSingleFormField::ref #endif createListSingleField(const std::string &name, Swift::FormField::Option value, const std::string &label, const std::string &def, bool required) { #if HAVE_SWIFTEN_3 FormField::ref field = SWIFTEN_SHRPTR_NAMESPACE::make_shared<FormField>(FormField::ListSingleType); #else ListSingleFormField::ref field = ListSingleFormField::create(); #endif field->setName(name); field->setLabel(label); field->addOption(value); #if HAVE_SWIFTEN_3 field->addValue(def); #else field->setValue(def); #endif return field; }
void testSerialize_DataForm() { SearchPayloadSerializer testling; SearchPayload::ref payload(new SearchPayload()); boost::shared_ptr<Form> form(new Form(Form::ResultType)); FormField::ref field = boost::make_shared<FormField>(FormField::HiddenType, "jabber:iq:search"); field->setName("FORM_TYPE"); form->addField(field); // reported fields field = boost::make_shared<FormField>(FormField::TextSingleType); field->setName("first"); field->setLabel("Given Name"); form->addReportedField(field); field = boost::make_shared<FormField>(FormField::TextSingleType); field->setName("last"); field->setLabel("Family Name"); form->addReportedField(field); field = boost::make_shared<FormField>(FormField::JIDSingleType); field->setName("jid"); field->setLabel("Jabber ID"); form->addReportedField(field); field = boost::make_shared<FormField>(FormField::ListSingleType); field->setName("x-gender"); field->setLabel("Gender"); form->addReportedField(field); Form::FormItem firstItem; field = boost::make_shared<FormField>(FormField::TextSingleType, "Benvolio"); field->setName("first"); firstItem.push_back(field); field = boost::make_shared<FormField>(FormField::TextSingleType, "Montague"); field->setName("last"); firstItem.push_back(field); field = boost::make_shared<FormField>(FormField::TextSingleType, "*****@*****.**"); field->setName("jid"); firstItem.push_back(field); field = boost::make_shared<FormField>(FormField::ListSingleType, "male"); field->setName("x-gender"); firstItem.push_back(field); Form::FormItem secondItem; field = boost::make_shared<FormField>(FormField::TextSingleType, "Romeo"); field->setName("first"); secondItem.push_back(field); field = boost::make_shared<FormField>(FormField::TextSingleType, "Montague"); field->setName("last"); secondItem.push_back(field); field = boost::make_shared<FormField>(FormField::TextSingleType, "*****@*****.**"); field->setName("jid"); secondItem.push_back(field); field = boost::make_shared<FormField>(FormField::ListSingleType, "male"); field->setName("x-gender"); secondItem.push_back(field); form->addItem(firstItem); form->addItem(secondItem); payload->setForm(form); CPPUNIT_ASSERT_EQUAL(std::string( "<query xmlns=\"jabber:iq:search\">" "<x type=\"result\" xmlns=\"jabber:x:data\">" "<field type=\"hidden\" var=\"FORM_TYPE\">" "<value>jabber:iq:search</value>" "</field>" "<reported>" "<field label=\"Given Name\" type=\"text-single\" var=\"first\"/>" "<field label=\"Family Name\" type=\"text-single\" var=\"last\"/>" "<field label=\"Jabber ID\" type=\"jid-single\" var=\"jid\"/>" "<field label=\"Gender\" type=\"list-single\" var=\"x-gender\"/>" "</reported>" "<item>" "<field var=\"first\"><value>Benvolio</value></field>" "<field var=\"last\"><value>Montague</value></field>" "<field var=\"jid\"><value>[email protected]</value></field>" "<field var=\"x-gender\"><value>male</value></field>" "</item>" "<item>" "<field var=\"first\"><value>Romeo</value></field>" "<field var=\"last\"><value>Montague</value></field>" "<field var=\"jid\"><value>[email protected]</value></field>" "<field var=\"x-gender\"><value>male</value></field>" "</item>" "</x>" "</query>"), testling.serialize(payload)); }