From ea65b672e75d2b544a2d9c3ef0d497c1e66075bc Mon Sep 17 00:00:00 2001 From: Robert Robinson Date: Sat, 12 Sep 2015 22:10:28 -0600 Subject: Initial cut at getting the stanzas to work. (cherry picked from commit 8c7df49) --- tests/test_stanza_xep_0122.py | 137 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 tests/test_stanza_xep_0122.py (limited to 'tests') diff --git a/tests/test_stanza_xep_0122.py b/tests/test_stanza_xep_0122.py new file mode 100644 index 00000000..2330b6a2 --- /dev/null +++ b/tests/test_stanza_xep_0122.py @@ -0,0 +1,137 @@ +import unittest +from sleekxmpp import Message +from sleekxmpp.test import SleekTest +from sleekxmpp.thirdparty import OrderedDict + +import sleekxmpp.plugins.xep_0004 as xep_0004 +import sleekxmpp.plugins.xep_0122 as xep_0122 +from sleekxmpp.xmlstream import register_stanza_plugin + + +class TestDataForms(SleekTest): + + def setUp(self): + register_stanza_plugin(Message, xep_0004.Form) + register_stanza_plugin(xep_0004.Form, xep_0004.FormField, iterable=True) + register_stanza_plugin(xep_0004.FormField, xep_0004.FieldOption, iterable=True) + register_stanza_plugin(xep_0004.FormField, xep_0122.FormValidation) + + def test_basic_validation(self): + """Testing using multiple instructions elements in a data form.""" + msg = self.Message() + form = msg['form'] + field = form.addField(var='f1', + ftype='text-single', + label='Text', + desc='A text field', + required=True, + value='Some text!') + + validation = field['validate'] + validation['datatype'] = 'xs:string' + validation.set_basic(True) + + self.check(msg, """ + + + + A text field + + Some text! + + + + + + + """) + + def test_open_validation(self): + """Testing using multiple instructions elements in a data form.""" + msg = self.Message() + form = msg['form'] + field = form.addField(var='f1', + ftype='text-single', + label='Text', + desc='A text field', + required=True, + value='Some text!') + + validation = field['validate'] + validation.set_open(True) + + self.check(msg, """ + + + + A text field + + Some text! + + + + + + + """) + + def test_regex_validation(self): + """Testing using multiple instructions elements in a data form.""" + msg = self.Message() + form = msg['form'] + field = form.addField(var='f1', + ftype='text-single', + label='Text', + desc='A text field', + required=True, + value='Some text!') + + validation = field['validate'] + validation.set_regex('[0-9]+') + + self.check(msg, """ + + + + A text field + + Some text! + + [0-9]+ + + + + + """) + + def test_range_validation(self): + """Testing using multiple instructions elements in a data form.""" + msg = self.Message() + form = msg['form'] + field = form.addField(var='f1', + ftype='text-single', + label='Text', + desc='A text field', + required=True, + value='Some text!') + + validation = field['validate'] + validation.set_range(True, minimum=0, maximum=10) + + self.check(msg, """ + + + + A text field + + Some text! + + + + + + + """) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestDataForms) -- cgit v1.2.3