예제 #1
0
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;
}
예제 #2
0
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;
}
예제 #3
0
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));

		}