File tmc-fire-PropertiesChanged-on-URISchemes-change.patch of Package telepathy-mission-control

From 9c038fb370c25a2fb87fd80e71b4591cb81c5fa5 Mon Sep 17 00:00:00 2001
From: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Date: Mon, 07 Jan 2013 15:18:09 +0000
Subject: account-addressing: fire PropertiesChanged on URISchemes change

---
diff --git a/src/mcd-account-addressing.c b/src/mcd-account-addressing.c
index d5604cb..19d622d 100644
--- a/src/mcd-account-addressing.c
+++ b/src/mcd-account-addressing.c
@@ -60,6 +60,7 @@ addressing_set_uri_scheme_association (TpSvcAccountInterfaceAddressing *iface,
     {
       GPtrArray *new_schemes = g_ptr_array_new ();
       gchar **s;
+      GHashTable *changed;
 
       if (association)
         {
@@ -81,6 +82,14 @@ addressing_set_uri_scheme_association (TpSvcAccountInterfaceAddressing *iface,
       mcd_storage_set_strv (storage, account, SCHEMES,
           (const gchar * const *) new_schemes->pdata, FALSE);
 
+      changed = tp_asv_new (
+          "URISchemes", G_TYPE_STRV, new_schemes->pdata,
+          NULL);
+
+      tp_svc_dbus_properties_emit_properties_changed (self,
+          TP_IFACE_ACCOUNT_INTERFACE_ADDRESSING, changed, NULL);
+
+      g_hash_table_unref (changed);
       g_ptr_array_unref (new_schemes);
     }
 
diff --git a/tests/twisted/account/addressing.py b/tests/twisted/account/addressing.py
index 7032a81..e303c93 100755
--- a/tests/twisted/account/addressing.py
+++ b/tests/twisted/account/addressing.py
@@ -57,8 +57,24 @@ def test(q, bus, mc):
     uri_schemes = get_schemes (account_props)
     assertEquals (uri_schemes, ['mailto'])
 
-    # remove association to produce empty list 
+    q.expect('dbus-signal', signal='PropertiesChanged',
+        predicate=(lambda e:
+            e.args[0] == cs.ACCOUNT_IFACE_ADDRESSING and
+            set(e.args[1]['URISchemes']) == set(['mailto'])))
+
+    # add a second association
+    address_iface.SetURISchemeAssociation ('telnet', True)
+    uri_schemes = get_schemes (account_props)
+    assertSameSets (['mailto','telnet',], uri_schemes)
+
+    q.expect('dbus-signal', signal='PropertiesChanged',
+        predicate=(lambda e:
+            e.args[0] == cs.ACCOUNT_IFACE_ADDRESSING and
+            set(e.args[1]['URISchemes']) == set(['telnet', 'mailto'])))
+
+    # remove associations to produce empty list
     address_iface.SetURISchemeAssociation ('mailto', False)
+    address_iface.SetURISchemeAssociation ('telnet', False)
     uri_schemes = get_schemes (account_props)
     assertEquals (uri_schemes, [])
 
--
cgit v0.9.0.2-2-gbebe
openSUSE Build Service is sponsored by