/* * Copyright (c) 2012-2014 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 org.junit.BeforeClass; import org.junit.Test; import com.isode.stroke.elements.Form; import com.isode.stroke.elements.Form.Type; import com.isode.stroke.elements.FormField; import com.isode.stroke.elements.FormField.Option; import com.isode.stroke.elements.FormItem; 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 = new FormField(FormField.Type.UNKNOWN_TYPE); field.setName("field name"); field.setLabel("description"); field.addValue("someText"); form.addReportedField(field); FormItem item = new FormItem(); field = new FormField(FormField.Type.UNKNOWN_TYPE); field.setName("itemField"); field.addValue("itemValue"); item.addItemField(field); form.addItem(item); field = new FormField(FormField.Type.HIDDEN_TYPE, "jabber:bot"); field.setName("FORM_TYPE"); form.addField(field); form.addField(new FormField(FormField.Type.FIXED_TYPE, "Section 1: Bot Info")); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE); field.setName("botname"); field.setLabel("The name of your bot"); form.addField(field); field = new FormField(FormField.Type.TEXT_MULTI_TYPE, "This is a bot.\nA quite good one actually"); field.setName("description"); field.setLabel("Helpful description of your bot"); form.addField(field); field = new FormField(FormField.Type.BOOLEAN_TYPE); field.setBoolValue(true); field.setName("public"); field.setLabel("Public bot?"); field.setRequired(true); form.addField(field); field = new FormField(FormField.Type.TEXT_PRIVATE_TYPE); field.setName("password"); field.setLabel("Password for special access"); form.addField(field); field = new FormField(FormField.Type.LIST_MULTI_TYPE); field.addValue("news"); field.addValue("search"); 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 = new FormField(FormField.Type.LIST_SINGLE_TYPE, "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); String jid = "user@example.com"; field = new FormField(FormField.Type.JID_SINGLE_TYPE); field.addValue(jid); field.setName("jidSingle"); field.setLabel("jidSingleLabel"); field.setDescription("jidSingleDescription"); form.addField(field); field = new FormField(FormField.Type.JID_MULTI_TYPE); field.addValue("foo@bar.com"); field.addValue("baz@fum.org"); field.setName("invitelist"); field.setLabel("People to invite"); field.setDescription("Tell all your friends about your new bot!"); form.addField(field); assertEquals( "" + "" + "" + "someText" + "" + "" + "" + "" + "itemValue" + "" + "" + "" + "jabber:bot" + "" + "Section 1: Bot Info" + "" + "This is a bot.A quite good one actually" + "" + "" + "1" + "" + "" + "" + "news" + "search" + "" + "" + "" + "" + "" + "" + "" + "20" + "" + "" + "" + "" + "" + "" + "" + "" + "jidSingleDescription" + "user@example.com" + "" + "" + "Tell all your friends about your new bot!" + "foo@bar.com" + "baz@fum.org" + "" + "", /* + "0" + "Fixed>" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "textPrivateVal" + "" + "" + "" + "" + "" */ testling.serialize(form)); } }