[folks] libsocialweb tests: disconnect all signals



commit a9e15326b07b0c284d50013e220717b375521a50
Author: Travis Reitter <travis reitter collabora co uk>
Date:   Thu Oct 10 16:23:32 2013 -0700

    libsocialweb tests: disconnect all signals
    
    Patch by Simon McVittie

 tests/libsocialweb/aggregation.vala |   28 ++++++++++++++++++----------
 tests/libsocialweb/dummy-lsw.vala   |   12 ++++++++----
 2 files changed, 26 insertions(+), 14 deletions(-)
---
diff --git a/tests/libsocialweb/aggregation.vala b/tests/libsocialweb/aggregation.vala
index ecb4c13..009bde9 100644
--- a/tests/libsocialweb/aggregation.vala
+++ b/tests/libsocialweb/aggregation.vala
@@ -100,11 +100,14 @@ public class AggregationTests : LibsocialwebTest.TestCase
       var lsw_backend = (!) this.lsw_backend;
       var mysocialnetwork1 = lsw_backend.add_service ("mysocialnetwork1");
       var mysocialnetwork2 = lsw_backend.add_service ("mysocialnetwork2");
+      var signals = new DisconnectionQueue ();
 
       /* Populate mysocialnetwork1 */
-      mysocialnetwork1.OpenViewCalled.connect((query, p, path) =>
+      signals.push (mysocialnetwork1,
+          mysocialnetwork1.OpenViewCalled.connect((query, p, path) =>
         {
-          mysocialnetwork1.contact_views[path].StartCalled.connect ( (path) =>
+          var view = mysocialnetwork1.contact_views[path];
+          signals.push (view, view.StartCalled.connect ( (path) =>
             {
               Idle.add (() =>
                 {
@@ -128,13 +131,15 @@ public class AggregationTests : LibsocialwebTest.TestCase
                     }
                   return false;
                 });
-            });
-        });
+            }));
+        }));
 
       /* Populate mysocialnetwork2 */
-      mysocialnetwork2.OpenViewCalled.connect((query, p, path) =>
+      signals.push (mysocialnetwork2,
+          mysocialnetwork2.OpenViewCalled.connect((query, p, path) =>
         {
-          mysocialnetwork2.contact_views[path].StartCalled.connect ( (path) =>
+          var view = mysocialnetwork2.contact_views[path];
+          signals.push (view, view.StartCalled.connect ( (path) =>
             {
               Idle.add (() =>
                 {
@@ -158,8 +163,8 @@ public class AggregationTests : LibsocialwebTest.TestCase
                     }
                   return false;
                 });
-            });
-        });
+            }));
+        }));
 
       var aggregator = IndividualAggregator.dup ();
       Individual[] individual_gathered = new Individual[0];
@@ -196,7 +201,8 @@ public class AggregationTests : LibsocialwebTest.TestCase
            && ((Folks.NameDetails) individual_gathered[1]).nickname == "Gargantua"));
 
       /* Check the result of link_personas */
-      aggregator.individuals_changed_detailed.connect ((changes) =>
+      signals.push (aggregator,
+          aggregator.individuals_changed_detailed.connect ((changes) =>
         {
           var added = changes.get_values ();
           var removed = changes.get_keys ();
@@ -226,7 +232,7 @@ public class AggregationTests : LibsocialwebTest.TestCase
             }
 
           main_loop.quit ();
-        });
+        }));
 
       /* Link personas */
       var personas = new HashSet<Persona> ();
@@ -254,6 +260,8 @@ public class AggregationTests : LibsocialwebTest.TestCase
         });
 
       TestUtils.loop_run_with_timeout (main_loop, 5);
+
+      signals.drain ();
     }
 }
 
diff --git a/tests/libsocialweb/dummy-lsw.vala b/tests/libsocialweb/dummy-lsw.vala
index d340e03..804a660 100644
--- a/tests/libsocialweb/dummy-lsw.vala
+++ b/tests/libsocialweb/dummy-lsw.vala
@@ -40,6 +40,7 @@ public class DummyLswTests : LibsocialwebTest.TestCase
       var lsw_backend = (!) this.lsw_backend;
       var mysocialnetwork = lsw_backend.add_service ("mysocialnetwork");
       var p = new GLib.HashTable<string,string> (null, null);
+      var signals = new DisconnectionQueue ();
 
       try
         {
@@ -71,11 +72,14 @@ public class DummyLswTests : LibsocialwebTest.TestCase
       /* Test adding two contacts */
 
       string view_path = "";
-      mysocialnetwork.OpenViewCalled.connect((query, p, path) =>
+      signals.push (mysocialnetwork,
+          mysocialnetwork.OpenViewCalled.connect((query, p, path) =>
         {
           debug ("mysocialnetwork.OpenViewCalled.connect");
           view_path = path;
-          mysocialnetwork.contact_views[path].StartCalled.connect ( (path) =>
+          var view = mysocialnetwork.contact_views[path];
+
+          signals.push (view, view.StartCalled.connect ( (path) =>
             {
               debug ("OpenViewCalled.connect");
               Idle.add (() =>
@@ -103,8 +107,8 @@ public class DummyLswTests : LibsocialwebTest.TestCase
                     }
                   return false;
                 });
-            });
-        });
+            }));
+        }));
 
       var aggregator = IndividualAggregator.dup ();
       Individual? i1 = null;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]