Add a test for g_dbus_proxy_get_cached_property_names
authorMatthias Clasen <mclasen@redhat.com>
Fri, 30 Jul 2010 20:21:49 +0000 (16:21 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 30 Jul 2010 23:51:22 +0000 (19:51 -0400)
gio/tests/gdbus-proxy.c

index 782bf77..3efef6c 100644 (file)
@@ -125,6 +125,37 @@ test_methods (GDBusProxy *proxy)
   g_dbus_proxy_set_default_timeout (proxy, -1);
 }
 
+static gboolean
+strv_equal (const gchar **strv, ...)
+{
+  gint count;
+  va_list list;
+  const gchar *str;
+  gboolean res;
+
+  res = TRUE;
+  count = 0;
+  va_start (list, strv);
+  while (1)
+    {
+      str = va_arg (list, const gchar *);
+      if (str == NULL)
+        break;
+      if (g_strcmp0 (str, strv[count]) != 0)
+        {
+          res = FALSE;
+          break;
+        }
+      count++;
+    }
+  va_end (list);
+
+  if (res)
+    res = g_strv_length ((gchar**)strv) == count;
+
+  return res;
+}
+
 /* ---------------------------------------------------------------------------------------------------- */
 /* Test that the property aspects of GDBusProxy works */
 /* ---------------------------------------------------------------------------------------------------- */
@@ -136,10 +167,44 @@ test_properties (GDBusProxy *proxy)
   GVariant *variant;
   GVariant *variant2;
   GVariant *result;
+  gchar **names;
 
   error = NULL;
 
   /*
+   * Check that we can list all cached properties.
+   */
+  names = g_dbus_proxy_get_cached_property_names (proxy);
+
+  g_assert (strv_equal (names,
+                        "PropertyThatWillBeInvalidated",
+                        "ab",
+                        "ad",
+                        "ai",
+                        "an",
+                        "ao",
+                        "aq",
+                        "as",
+                        "at",
+                        "au",
+                        "ax",
+                        "ay",
+                        "b",
+                        "d",
+                        "foo",
+                        "i",
+                        "n",
+                        "o",
+                        "q",
+                        "s",
+                        "t",
+                        "u",
+                        "x",
+                        "y"));
+
+  g_strfreev (names);
+
+  /*
    * Check that we can read cached properties.
    *
    * No need to test all properties - GVariant has already been tested