From 017d7ec62bf02c72729be668d1f8ef3b144222fb Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Sat, 13 Aug 2011 01:28:18 -0700 Subject: Add tests for setting a form's type to 'submit' or 'cancel'. Form fields now remember their current type if the type is deleted. This allows for fields to properly format their values if set after the form has been changed to the 'submit' type. --- tests/test_stanza_xep_0004.py | 78 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) (limited to 'tests/test_stanza_xep_0004.py') diff --git a/tests/test_stanza_xep_0004.py b/tests/test_stanza_xep_0004.py index 22f8b77d..e183e5e9 100644 --- a/tests/test_stanza_xep_0004.py +++ b/tests/test_stanza_xep_0004.py @@ -117,4 +117,82 @@ class TestDataForms(SleekTest): """) + def testSubmitType(self): + """Test that setting type to 'submit' clears extra details""" + msg = self.Message() + form = msg['form'] + + fields = OrderedDict() + fields['f1'] = {'type': 'text-single', + 'label': 'Username', + 'required': True} + fields['f2'] = {'type': 'text-private', + 'label': 'Password', + 'required': True} + fields['f3'] = {'type': 'text-multi', + 'label': 'Message', + 'value': 'Enter message.\nA long one even.'} + fields['f4'] = {'type': 'list-single', + 'label': 'Message Type', + 'options': [{'label': 'Cool!', + 'value': 'cool'}, + {'label': 'Urgh!', + 'value': 'urgh'}]} + form['fields'] = fields + + form['type'] = 'submit' + form['values'] = {'f1': 'username', + 'f2': 'hunter2', + 'f3': 'A long\nmultiline\nmessage', + 'f4': 'cool'} + + self.check(form, """ + + + username + + + hunter2 + + + A long + multiline + message + + + cool + + + """, use_values=False) + + def testCancelType(self): + """Test that setting type to 'cancel' clears all fields""" + msg = self.Message() + form = msg['form'] + + fields = OrderedDict() + fields['f1'] = {'type': 'text-single', + 'label': 'Username', + 'required': True} + fields['f2'] = {'type': 'text-private', + 'label': 'Password', + 'required': True} + fields['f3'] = {'type': 'text-multi', + 'label': 'Message', + 'value': 'Enter message.\nA long one even.'} + fields['f4'] = {'type': 'list-single', + 'label': 'Message Type', + 'options': [{'label': 'Cool!', + 'value': 'cool'}, + {'label': 'Urgh!', + 'value': 'urgh'}]} + form['fields'] = fields + + form['type'] = 'cancel' + + self.check(form, """ + + """) + + suite = unittest.TestLoader().loadTestsFromTestCase(TestDataForms) -- cgit v1.2.3