Use CSIDL_LOCAL_APPDATA on Windows
[platform/upstream/glib.git] / gio / tests / testapp.c
index 85f93b7..413c1c6 100644 (file)
@@ -1,4 +1,4 @@
-#include <gio.h>
+#include <gio/gio.h>
 #include <gstdio.h>
 #include <string.h>
 
@@ -12,7 +12,7 @@ static gboolean action3_added = FALSE;
 static void
 on_app_action (GApplication *application,
                const gchar  *action_name,
-               guint         action_timestamp)
+               GVariant     *platform_data)
 {
   if (strcmp (action_name, "action1") == 0)
     exit (1);
@@ -31,6 +31,26 @@ on_app_activated (GApplication  *application,
                  GVariant      *args,
                  GVariant      *platform_data)
 {
+  GVariantIter iter;
+  const char *key;
+  GVariant *value;
+  char *cwd;
+
+  cwd = g_get_current_dir ();
+  g_variant_iter_init (&iter, platform_data);
+  while (g_variant_iter_next (&iter, "{&sv}", &key, &value))
+    {
+      const char *activate_cwd;
+
+      if (strcmp (key, "cwd") != 0)
+       continue;
+
+      activate_cwd = g_variant_get_bytestring (value);
+      g_assert_cmpstr (cwd, ==, activate_cwd);
+      g_variant_unref (value);
+    }
+
+  g_free (cwd);
 }
 
 static gboolean
@@ -60,9 +80,13 @@ main (int argc, char *argv[])
   }
 #endif
 
-  app = g_application_new ("org.gtk.test.app");
+  app = g_application_unregistered_try_new ("org.gtk.test.app", 
+                                           argc, argv, NULL);
   if (!(argc > 1 && strcmp (argv[1], "--non-unique") == 0))
-    g_application_register_with_data (app, argc, argv, NULL);
+    {
+      if (!g_application_register (app))
+       exit (0);
+    }
 
   if (g_application_is_remote (app))
     {
@@ -72,7 +96,7 @@ main (int argc, char *argv[])
     {
       g_application_add_action (app, "action1", "Action1");
       g_application_add_action (app, "action2", "Action2");
-      g_signal_connect (app, "action",
+      g_signal_connect (app, "action-with-data",
                         G_CALLBACK (on_app_action), NULL);
       g_signal_connect (app, "prepare-activation",
                         G_CALLBACK (on_app_activated), NULL);