Ignore:
Timestamp:
Jan 5, 2010, 2:55:40 PM (12 years ago)
Author:
Ralph Meijer <ralphm@…>
Branch:
default
Message:

Make PubSubRequest?.options be a form and use new form type checking

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wokkel/test/test_pubsub.py

    r59 r81  
    1 # Copyright (c) 2003-2009 Ralph Meijer
     1# Copyright (c) 2003-2010 Ralph Meijer
    22# See LICENSE for details.
    33
     
    806806        self.assertEqual('test', request.nodeIdentifier)
    807807        self.assertEqual(JID('user@example.org/Home'), request.subscriber)
    808         self.assertEqual({'pubsub#deliver': '1'}, request.options)
     808        self.assertEqual({'pubsub#deliver': '1'}, request.options.getValues())
    809809
    810810
     
    826826
    827827        request = pubsub.PubSubRequest.fromElement(parseXml(xml))
    828         self.assertEqual({}, request.options)
     828        self.assertEqual('cancel', request.options.formType)
    829829
    830830
     
    841841              <x xmlns='jabber:x:data' type='result'>
    842842                <field var='FORM_TYPE' type='hidden'>
    843                   <value>http://jabber.org/protocol/pubsub#node_config</value>
     843                  <value>http://jabber.org/protocol/pubsub#subscribe_options</value>
    844844                </field>
    845845                <field var='pubsub#deliver'><value>1</value></field>
     
    854854                                parseXml(xml))
    855855        self.assertEqual('bad-request', err.condition)
     856        self.assertEqual("Unexpected form type 'result'", err.text)
    856857        self.assertEqual(None, err.appCondition)
    857858
     
    10541055        self.assertEqual('test', request.nodeIdentifier)
    10551056        self.assertEqual({'pubsub#deliver_payloads': '0',
    1056                           'pubsub#persist_items': '1'}, request.options)
     1057                          'pubsub#persist_items': '1'},
     1058                         request.options.getValues())
    10571059
    10581060
     
    10741076
    10751077        request = pubsub.PubSubRequest.fromElement(parseXml(xml))
    1076         self.assertEqual({}, request.options)
     1078        self.assertEqual('cancel', request.options.formType)
    10771079
    10781080
     
    11031105                                parseXml(xml))
    11041106        self.assertEqual('bad-request', err.condition)
     1107        self.assertEqual("Unexpected form type 'result'", err.text)
    11051108        self.assertEqual(None, err.appCondition)
    11061109
     
    18961899                                  'pubsub#persist_items': '1',
    18971900                                  'pubsub#owner': JID('user@example.org'),
    1898                                   'x-myfield': ['a', 'b']})
     1901                                  'x-myfield': 'a'})
    18991902
    19001903        def cb(element):
     
    19691972        def configureSet(request):
    19701973            self.assertEqual({'pubsub#deliver_payloads': False,
    1971                               'pubsub#persist_items': True}, request.options)
     1974                              'pubsub#persist_items': True},
     1975                             request.options.getValues())
    19721976            return defer.succeed(None)
    19731977
     
    20412045        def configureSet(request):
    20422046            self.assertEquals(['pubsub#deliver_payloads'],
    2043                               request.options.keys())
     2047                              request.options.fields.keys())
    20442048
    20452049        self.resource.getConfigurationOptions = getConfigurationOptions
     
    20732077        def cb(result):
    20742078            self.assertEquals('bad-request', result.condition)
     2079            self.assertEqual("Unexpected form type 'result'", result.text)
    20752080
    20762081        d = self.handleRequest(xml)
     
    25962601
    25972602
     2603    def test_setConfigurationOptionsDict(self):
     2604        """
     2605        Options should be passed as a dictionary, not a form.
     2606        """
     2607
     2608        xml = """
     2609        <iq type='set' to='pubsub.example.org'
     2610                       from='user@example.org'>
     2611          <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
     2612            <configure node='test'>
     2613              <x xmlns='jabber:x:data' type='submit'>
     2614                <field var='FORM_TYPE' type='hidden'>
     2615                  <value>http://jabber.org/protocol/pubsub#node_config</value>
     2616                </field>
     2617                <field var='pubsub#deliver_payloads'><value>0</value></field>
     2618                <field var='pubsub#persist_items'><value>1</value></field>
     2619              </x>
     2620            </configure>
     2621          </pubsub>
     2622        </iq>
     2623        """
     2624
     2625        def getConfigurationOptions():
     2626            return {
     2627                "pubsub#persist_items":
     2628                    {"type": "boolean",
     2629                     "label": "Persist items to storage"},
     2630                "pubsub#deliver_payloads":
     2631                    {"type": "boolean",
     2632                     "label": "Deliver payloads with event notifications"}
     2633                }
     2634
     2635        def setConfiguration(requestor, service, nodeIdentifier, options):
     2636            self.assertEquals({'pubsub#deliver_payloads': False,
     2637                               'pubsub#persist_items': True}, options)
     2638
     2639
     2640        self.service.getConfigurationOptions = getConfigurationOptions
     2641        self.service.setConfiguration = setConfiguration
     2642        return self.handleRequest(xml)
     2643
     2644
    25982645    def test_items(self):
    25992646        """
Note: See TracChangeset for help on using the changeset viewer.