diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2010-12-22 15:54:58 +0000 |
---|---|---|
committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2010-12-22 15:54:58 +0000 |
commit | 5b34520e25c014377a27f22d35b958ded994a2dd (patch) | |
tree | b3c3c0eb6e0d39d85ce823db1a35d3c317571c7e /tests/twisted/dispatcher/undispatchable.py | |
parent | 1d9f17613ac2ce1dc3928ab0848d7b9b987b6330 (diff) |
tests: move from test/ to tests/
So so annoying.
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Diffstat (limited to 'tests/twisted/dispatcher/undispatchable.py')
-rw-r--r-- | tests/twisted/dispatcher/undispatchable.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/twisted/dispatcher/undispatchable.py b/tests/twisted/dispatcher/undispatchable.py new file mode 100644 index 00000000..35b5f44f --- /dev/null +++ b/tests/twisted/dispatcher/undispatchable.py @@ -0,0 +1,75 @@ +# Copyright (C) 2009 Nokia Corporation +# Copyright (C) 2009 Collabora Ltd. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA + +import dbus +"""Regression test for dispatching an incoming channel for which there are no +handlers. +""" + +import dbus +import dbus.bus +import dbus.service + +from servicetest import EventPattern, tp_name_prefix, tp_path_prefix, \ + call_async, sync_dbus +from mctest import exec_test, SimulatedConnection, SimulatedClient, \ + create_fakecm_account, enable_fakecm_account, SimulatedChannel, \ + expect_client_setup +import constants as cs + +def test(q, bus, mc): + params = dbus.Dictionary({"account": "someguy@example.com", + "password": "secrecy"}, signature='sv') + cm_name_ref, account = create_fakecm_account(q, bus, mc, params) + conn = enable_fakecm_account(q, bus, mc, account, params) + + text_fixed_properties = dbus.Dictionary({ + cs.CHANNEL + '.TargetHandleType': cs.HT_CONTACT, + cs.CHANNEL + '.ChannelType': cs.CHANNEL_TYPE_TEXT, + }, signature='sv') + + # subscribe to the OperationList interface (MC assumes that until this + # property has been retrieved once, nobody cares) + + cd = bus.get_object(cs.CD, cs.CD_PATH) + cd_props = dbus.Interface(cd, cs.PROPERTIES_IFACE) + assert cd_props.Get(cs.CD_IFACE_OP_LIST, 'DispatchOperations') == [] + + channel_properties = dbus.Dictionary(text_fixed_properties, + signature='sv') + channel_properties[cs.CHANNEL + '.TargetID'] = 'juliet' + channel_properties[cs.CHANNEL + '.TargetHandle'] = \ + conn.ensure_handle(cs.HT_CONTACT, 'juliet') + channel_properties[cs.CHANNEL + '.InitiatorID'] = 'juliet' + channel_properties[cs.CHANNEL + '.InitiatorHandle'] = \ + conn.ensure_handle(cs.HT_CONTACT, 'juliet') + channel_properties[cs.CHANNEL + '.Requested'] = False + channel_properties[cs.CHANNEL + '.Interfaces'] = dbus.Array(signature='s') + + chan = SimulatedChannel(conn, channel_properties) + chan.announce() + + # In response, MC kills the channel + q.expect('dbus-method-call', path=chan.object_path, method='Close', + handled=True) + + # There are still no active channel dispatch operations + assert cd_props.Get(cs.CD_IFACE_OP_LIST, 'DispatchOperations') == [] + +if __name__ == '__main__': + exec_test(test, {}) |