Ignore:
Timestamp:
Aug 4, 2008, 8:55:45 AM (13 years ago)
Author:
Ralph Meijer <ralphm@…>
Branch:
default
Convert:
svn:b33ecbfc-034c-dc11-8662-000475d9059e/trunk@59
Message:

Implement type checking in data forms and incoming pubsub node config.

Author: ralphm.
Fixes #15.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wokkel/test/test_pubsub.py

    r27 r29  
    632632            form = data_form.Form.fromElement(element.configure.x)
    633633            self.assertEqual(NS_PUBSUB_CONFIG, form.formNamespace)
    634             fields = dict([(field.var, field) for field in form.fields])
     634            fields = form.fields
    635635
    636636            self.assertIn('pubsub#deliver_payloads', fields)
    637637            field = fields['pubsub#deliver_payloads']
    638638            self.assertEqual('boolean', field.fieldType)
    639             self.assertEqual(True, field.value)
     639            self.assertEqual(False, field.value)
    640640
    641641            self.assertIn('pubsub#persist_items', fields)
     
    674674        """
    675675
     676        def getConfigurationOptions():
     677            return {
     678                "pubsub#persist_items":
     679                    {"type": "boolean",
     680                     "label": "Persist items to storage"},
     681                "pubsub#deliver_payloads":
     682                    {"type": "boolean",
     683                     "label": "Deliver payloads with event notifications"}
     684                }
     685
    676686        def setConfiguration(requestor, service, nodeIdentifier, options):
    677687            self.assertEqual(JID('user@example.org'), requestor)
    678688            self.assertEqual(JID('pubsub.example.org'), service)
    679689            self.assertEqual('test', nodeIdentifier)
    680             self.assertEqual({'pubsub#deliver_payloads': '0',
    681                               'pubsub#persist_items': '1'}, options)
     690            self.assertEqual({'pubsub#deliver_payloads': False,
     691                              'pubsub#persist_items': True}, options)
    682692            return defer.succeed(None)
    683693
     694        self.service.getConfigurationOptions = getConfigurationOptions
    684695        self.service.setConfiguration = setConfiguration
    685696        return self.handleRequest(xml)
     
    714725
    715726
     727    def test_onConfigureSetIgnoreUnknown(self):
     728        """
     729        On a node configuration set request unknown fields should be ignored.
     730        """
     731
     732        xml = """
     733        <iq type='set' to='pubsub.example.org'
     734                       from='user@example.org'>
     735          <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
     736            <configure node='test'>
     737              <x xmlns='jabber:x:data' type='submit'>
     738                <field var='FORM_TYPE' type='hidden'>
     739                  <value>http://jabber.org/protocol/pubsub#node_config</value>
     740                </field>
     741                <field var='pubsub#deliver_payloads'><value>0</value></field>
     742                <field var='x-myfield'><value>1</value></field>
     743              </x>
     744            </configure>
     745          </pubsub>
     746        </iq>
     747        """
     748
     749        def getConfigurationOptions():
     750            return {
     751                "pubsub#persist_items":
     752                    {"type": "boolean",
     753                     "label": "Persist items to storage"},
     754                "pubsub#deliver_payloads":
     755                    {"type": "boolean",
     756                     "label": "Deliver payloads with event notifications"}
     757                }
     758
     759        def setConfiguration(requestor, service, nodeIdentifier, options):
     760            self.assertEquals(['pubsub#deliver_payloads'], options.keys())
     761
     762        self.service.getConfigurationOptions = getConfigurationOptions
     763        self.service.setConfiguration = setConfiguration
     764        return self.handleRequest(xml)
     765
     766
    716767    def test_onItems(self):
    717768        """
Note: See TracChangeset for help on using the changeset viewer.