/* * Copyright (c) 2012 Isode Limited, London, England. * All rights reserved. */ /* * Copyright (c) 2010 Remko Tronçon * All rights reserved. */ package com.isode.stroke.serializer.payloadserializers; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.BeforeClass; import org.junit.Test; import com.isode.stroke.elements.Form; import com.isode.stroke.elements.FormField; import com.isode.stroke.elements.Form.Type; import com.isode.stroke.elements.FormField.BooleanFormField; import com.isode.stroke.elements.FormField.FixedFormField; import com.isode.stroke.elements.FormField.HiddenFormField; import com.isode.stroke.elements.FormField.JIDMultiFormField; import com.isode.stroke.elements.FormField.ListMultiFormField; import com.isode.stroke.elements.FormField.ListSingleFormField; import com.isode.stroke.elements.FormField.Option; import com.isode.stroke.elements.FormField.TextMultiFormField; import com.isode.stroke.elements.FormField.TextPrivateFormField; import com.isode.stroke.elements.FormField.TextSingleFormField; import com.isode.stroke.jid.JID; public class FormSerializerTest { @BeforeClass public static void init() throws Exception { } @Test public void testSerializeFormInformation() { FormSerializer testling = new FormSerializer(); Form form = new Form(Type.FORM_TYPE); form.setTitle("Bot Configuration"); form .setInstructions("Hello!\nFill out this form to configure your new bot!"); assertEquals( "" + "Bot Configuration" + "Hello!" + "Fill out this form to configure your new bot!" + "", testling.serialize(form)); } @Test public void testSerializeFields() { FormSerializer testling = new FormSerializer(); Form form = new Form(Type.FORM_TYPE); FormField field = HiddenFormField.create("jabber:bot"); field.setName("FORM_TYPE"); form.addField(field); form.addField(FixedFormField.create("Section 1: Bot Info")); field = TextSingleFormField.create(); field.setName("botname"); field.setLabel("The name of your bot"); form.addField(field); field = TextMultiFormField .create("This is a bot.\nA quite good one actually"); field.setName("description"); field.setLabel("Helpful description of your bot"); form.addField(field); field = BooleanFormField.create(true); field.setName("public"); field.setLabel("Public bot?"); field.setRequired(true); form.addField(field); field = TextPrivateFormField.create(); field.setName("password"); field.setLabel("Password for special access"); form.addField(field); List values = new ArrayList(); values.add("news"); values.add("search"); field = ListMultiFormField.create(values); field.setName("features"); field.setLabel("What features will the bot support?"); field.addOption(new Option("Contests", "contests")); field.addOption(new Option("News", "news")); field.addOption(new Option("Polls", "polls")); field.addOption(new Option("Reminders", "reminders")); field.addOption(new Option("Search", "search")); form.addField(field); field = ListSingleFormField.create("20"); field.setName("maxsubs"); field.setLabel("Maximum number of subscribers"); field.addOption(new Option("10", "10")); field.addOption(new Option("20", "20")); field.addOption(new Option("30", "30")); field.addOption(new Option("50", "50")); field.addOption(new Option("100", "100")); field.addOption(new Option("", "none")); form.addField(field); List jids = new ArrayList(); jids.add(new JID("foo@bar.com")); jids.add(new JID("baz@fum.org")); field = JIDMultiFormField.create(jids); field.setName("invitelist"); field.setLabel("People to invite"); field.setDescription("Tell all your friends about your new bot!"); form.addField(field); assertEquals( "" + "" + "jabber:bot" + "" + "Section 1: Bot Info" + "" + "This is a bot.A quite good one actually" + "" + "" + "1" + "" + "" + "" + "news" + "search" + "" + "" + "" + "" + "" + "" + "" + "20" + "" + "" + "" + "" + "" + "" + "" + "" + "Tell all your friends about your new bot!" + "foo@bar.com" + "baz@fum.org" + "" + "", testling.serialize(form)); } }