Prepare the aggregator asynchronously (as clients will)
authorTravis Reitter <travis.reitter@collabora.co.uk>
Mon, 6 Sep 2010 20:55:40 +0000 (13:55 -0700)
committerTravis Reitter <travis.reitter@collabora.co.uk>
Wed, 22 Sep 2010 17:06:00 +0000 (10:06 -0700)
Helps bgo#629008.

tests/telepathy/contact-retrieval.vala

index f3ff908..9d0a79a 100644 (file)
@@ -168,17 +168,35 @@ public class ContactRetrievalTests : Folks.TestCase
 
           assert (removed == null);
         });
-      aggregator.prepare ();
 
       /* Kill the main loop after a few seconds. If there are still individuals
-       * in the set of expected individuals, the aggregator has either failed
-       * or been too slow (which we can consider to be failure). */
+       * in the set of expected individuals, the aggregator has either failed or
+       * been too slow (which we can consider to be failure). */
       Timeout.add_seconds (3, () =>
         {
           main_loop.quit ();
           return false;
         });
 
+      Idle.add (() =>
+        {
+          aggregator.prepare.begin ((s,r) =>
+            {
+              try
+                {
+                  aggregator.prepare.end (r);
+                }
+              catch (GLib.Error e1)
+                {
+                  GLib.critical ("failed to prepare aggregator: %s",
+                    e1.message);
+                  assert_not_reached ();
+                }
+            });
+
+          return false;
+        });
+
       main_loop.run ();
 
       /* We should have enumerated exactly the individuals in the set */