11 activate (GAction *action,
15 Activation *activation = user_data;
18 activation->params = g_variant_ref (parameter);
20 activation->params = NULL;
21 activation->did_run = TRUE;
27 Activation a = { 0, };
30 action = g_action_new ("foo", NULL);
31 g_signal_connect (action, "activate", G_CALLBACK (activate), &a);
32 g_assert (!a.did_run);
33 g_action_activate (action, NULL);
37 g_action_set_enabled (action, FALSE);
38 g_action_activate (action, NULL);
39 g_assert (!a.did_run);
41 if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
43 g_action_activate (action, g_variant_new_string ("xxx"));
46 g_test_trap_assert_failed ();
48 g_object_unref (action);
49 g_assert (!a.did_run);
51 action = g_action_new ("foo", G_VARIANT_TYPE_STRING);
52 g_signal_connect (action, "activate", G_CALLBACK (activate), &a);
53 g_assert (!a.did_run);
54 g_action_activate (action, g_variant_new_string ("Hello world"));
56 g_assert_cmpstr (g_variant_get_string (a.params, NULL), ==, "Hello world");
57 g_variant_unref (a.params);
60 if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
62 g_action_activate (action, NULL);
66 g_test_trap_assert_failed ();
68 g_object_unref (action);
69 g_assert (!a.did_run);
73 test_simple_group (void)
75 GSimpleActionGroup *group;
76 Activation a = { 0, };
79 action = g_action_new ("foo", NULL);
80 g_signal_connect (action, "activate", G_CALLBACK (activate), &a);
81 g_assert (!a.did_run);
82 g_action_activate (action, NULL);
86 group = g_simple_action_group_new ();
87 g_simple_action_group_insert (group, action);
88 g_object_unref (action);
90 g_assert (!a.did_run);
91 g_action_group_activate (G_ACTION_GROUP (group), "foo", NULL);
95 g_object_unref (group);
96 g_assert (!a.did_run);
100 main (int argc, char **argv)
103 g_test_init (&argc, &argv, NULL);
105 g_test_add_func ("/actions/basic", test_basic);
106 g_test_add_func ("/actions/simplegroup", test_simple_group);
108 return g_test_run ();