summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Sluift/Tests/FormTest.lua')
-rw-r--r--Sluift/Tests/FormTest.lua43
1 files changed, 34 insertions, 9 deletions
diff --git a/Sluift/Tests/FormTest.lua b/Sluift/Tests/FormTest.lua
index 7b6b4af..d584646 100644
--- a/Sluift/Tests/FormTest.lua
+++ b/Sluift/Tests/FormTest.lua
@@ -1,7 +1,7 @@
--[[
- Copyright (c) 2013 Remko Tronçon
- Licensed under the GNU General Public License v3.
- See Documentation/Licenses/GPLv3.txt for more information.
+ Copyright (c) 2013-2016 Isode Limited.
+ All rights reserved.
+ See the COPYING file for more information.
--]]
example_form = [[
@@ -13,7 +13,10 @@ example_form = [[
</field>
<field type='fixed'><value>Section 1: Bot Info</value></field>
<field type='text-single' label='The name of your bot' var='botname'/>
- <field type='text-multi' label='Helpful description of your bot' var='description'/>
+ <field type='text-multi' label='Helpful description of your bot' var='description'>
+ <value>This is</value>
+ <value>my bot</value>
+ </field>
<field type='boolean' label='Public bot?' var='public'>
<required/>
</field>
@@ -59,10 +62,10 @@ assert(public_field['required'] == true)
-- Test multi field
features_field = form['fields'][8]
assert(features_field['name'] == 'features')
-assert(type(features_field['values']) == 'table')
-assert(#features_field['values'] == 2)
-assert(features_field['values'][1] == 'news')
-assert(features_field['values'][2] == 'search')
+assert(type(features_field['value']) == 'table')
+assert(#features_field['value'] == 2)
+assert(features_field['value'][1] == 'news')
+assert(features_field['value'][2] == 'search')
-- Test shortcut index
assert(form['features']['name'] == 'features')
@@ -71,9 +74,31 @@ assert(form['FORM_TYPE']['value'] == 'jabber:bot')
-- Test response form
submission = form:create_submission()
assert(#(submission.fields) == 8)
+description_submit_value = submission['description']['value']
+assert(type(description_submit_value) == 'table')
+assert(description_submit_value[1] == 'This is')
+assert(description_submit_value[2] == 'my bot')
+
submission['description'] = 'my description'
assert(submission['description']['value'] == 'my description')
submission['type'] = 'cancel'
-assert(#(submission.fields) == 8)
+
+-- Test text-multi field
+text_multi_field = form['fields'][4]
+assert(text_multi_field['name'] == 'description')
+assert(type(text_multi_field['value']) == 'table')
+
--print(sluift.to_xml({type = 'form', data = form}))
+
+-- test parsing an empty form -- this had issues as reported in SWIFT-174
+empty_form = [[<x xmlns='jabber:x:data' type='form'/>]]
+form = sluift.from_xml(empty_form)
+-- and check if we can access all fields without problems
+assert(type(form._type))
+assert(type(form.title))
+assert(type(form.instructions))
+assert(type(form.type))
+assert(type(form.fields))
+assert(type(form.items))
+assert(type(form.reported_items))