summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2011-02-18 16:42:52 +0000
committerWill Thompson <will.thompson@collabora.co.uk>2011-02-18 17:28:59 +0000
commit5961487b0ec321b72e58ab9823ccd6f0a0097c95 (patch)
tree10186201261ab3ccc74857b7a91e7cea365b6bc2 /tests
parent43523d6c224129aaeb64f55ceed3c6719c3e2919 (diff)
UpdateParameters: check for setting parameters to their default
A few patches ago, we made MC smarter about unsetting parameters which have default values. Here, we make the symmetrical case work: explicitly setting a previously-unset parameter to its default value should not need a reconnect to take effect. I really don't like how complicated check_parameter_update() has become, but this does actually seem to need to be this complicated to get every case right. Perhaps check_one_parameter() should be split into 'set' and 'unset' cases.
Diffstat (limited to 'tests')
-rw-r--r--tests/twisted/account-manager/update-parameters.py45
-rw-r--r--tests/twisted/telepathy/managers/fakecm.manager4
2 files changed, 46 insertions, 3 deletions
diff --git a/tests/twisted/account-manager/update-parameters.py b/tests/twisted/account-manager/update-parameters.py
index 08367c00..74998f80 100644
--- a/tests/twisted/account-manager/update-parameters.py
+++ b/tests/twisted/account-manager/update-parameters.py
@@ -33,8 +33,11 @@ def test(q, bus, mc):
tp_name_prefix + '.ConnectionManager.fakecm', bus=bus)
# Create an account
- params = dbus.Dictionary({"account": "someguy@example.com",
- "password": "secrecy", 'nickname': 'albinoblacksheep'}, signature='sv')
+ params = dbus.Dictionary(
+ {"account": "someguy@example.com",
+ "password": "secrecy",
+ "nickname": "albinoblacksheep",
+ }, signature='sv')
(cm_name_ref, account) = create_fakecm_account(q, bus, mc, params)
# Enable the account
@@ -196,6 +199,44 @@ def test(q, bus, mc):
not_yet = ret.value[0]
assertEquals(['nickname'], not_yet)
+ # Set contrived-example to its default value; since there's been no
+ # practical change, we shouldn't be told we need to reconnect to apply it.
+ call_async(q, account, 'UpdateParameters',
+ { 'contrived-example': dbus.UInt32(5) }, [])
+ ret, _ = q.expect_many(
+ EventPattern('dbus-return', method='UpdateParameters'),
+ EventPattern('dbus-signal',
+ path=account.object_path,
+ interface=cs.ACCOUNT, signal='AccountPropertyChanged',
+ args=[{'Parameters': {
+ 'account': r'\\',
+ 'password': 'secrecy',
+ 'secret-mushroom': '/Amanita muscaria/',
+ 'snakes': 42,
+ "contrived-example": 5,
+ }}]),
+ )
+ not_yet = ret.value[0]
+ assertEquals([], not_yet)
+
+ # Unset contrived-example; again, MC should be smart enough to know we
+ # don't need to do anything.
+ call_async(q, account, 'UpdateParameters', {}, ['contrived-example'])
+ ret, _ = q.expect_many(
+ EventPattern('dbus-return', method='UpdateParameters'),
+ EventPattern('dbus-signal',
+ path=account.object_path,
+ interface=cs.ACCOUNT, signal='AccountPropertyChanged',
+ args=[{'Parameters': {
+ 'account': r'\\',
+ 'password': 'secrecy',
+ 'secret-mushroom': '/Amanita muscaria/',
+ 'snakes': 42,
+ }}]),
+ )
+ not_yet = ret.value[0]
+ assertEquals([], not_yet)
+
accounts_dir = os.environ['MC_ACCOUNT_DIR']
# fd.o #28557: when the file has been updated, the account parameter
diff --git a/tests/twisted/telepathy/managers/fakecm.manager b/tests/twisted/telepathy/managers/fakecm.manager
index 23a074e5..e0e63d5d 100644
--- a/tests/twisted/telepathy/managers/fakecm.manager
+++ b/tests/twisted/telepathy/managers/fakecm.manager
@@ -10,6 +10,8 @@ param-register=b
param-com.example.Badgerable.Badgered=b dbus-property
param-secret-mushroom=s
param-snakes=u
+param-contrived-example=u
default-register=0
default-com.example.Badgerable.Badgered=0
-default-snakes=1
+default-com.example.Badgerable.Episode=5
+default-contrived-example=5