1 from . sleektest
import *
2 import sleekxmpp
.plugins
.xep_0004
as xep_0004
5 class TestDataForms(SleekTest
):
8 registerStanzaPlugin(Message
, xep_0004
.Form
)
9 registerStanzaPlugin(xep_0004
.Form
, xep_0004
.FormField
)
10 registerStanzaPlugin(xep_0004
.FormField
, xep_0004
.FieldOption
)
12 def testMultipleInstructions(self
):
13 """Testing using multiple instructions elements in a data form."""
15 msg
['form']['instructions'] = "Instructions\nSecond batch"
17 self
.checkMessage(msg
, """
19 <x xmlns="jabber:x:data" type="form">
20 <instructions>Instructions</instructions>
21 <instructions>Second batch</instructions>
26 def testAddField(self
):
27 """Testing adding fields to a data form."""
31 form
.addField(var
='f1',
38 self
.checkMessage(msg
, """
40 <x xmlns="jabber:x:data" type="form">
41 <field var="f1" type="text-single" label="Text">
42 <desc>A text field</desc>
44 <value>Some text!</value>
50 form
['fields'] = [('f1', {'type': 'text-single',
53 ('f2', {'type': 'text-private',
56 ('f3', {'type': 'text-multi',
58 'value': 'Enter message.\nA long one even.'}),
59 ('f4', {'type': 'list-single',
60 'label': 'Message Type',
61 'options': [{'label': 'Cool!',
65 self
.checkMessage(msg
, """
67 <x xmlns="jabber:x:data" type="form">
68 <field var="f1" type="text-single" label="Username">
71 <field var="f2" type="text-private" label="Password">
74 <field var="f3" type="text-multi" label="Message">
75 <value>Enter message.</value>
76 <value>A long one even.</value>
78 <field var="f4" type="list-single" label="Message Type">
79 <option label="Cool!">
82 <option label="Urgh!">
90 def testSetValues(self
):
91 """Testing setting form values"""
96 ('foo', {'type': 'text-single'}),
97 ('bar', {'type': 'list-multi'})])
99 form
.setValues({'foo': 'Foo!',
102 self
.checkMessage(msg
, """
104 <x xmlns="jabber:x:data" type="form">
105 <field var="foo" type="text-single">
108 <field var="bar" type="list-multi">
115 suite
= unittest
.TestLoader().loadTestsFromTestCase(TestDataForms
)