}
static void
+finish_preload_engines_async (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GError *error = NULL;
+ ibus_bus_preload_engines_async_finish (bus, res, &error);
+ g_debug ("ibus_bus_preload_engines_async_finish: OK");
+ call_next_async_function ();
+}
+
+static void
+start_preload_engines_async (void)
+{
+ const gchar *preload_engines[] = { "xkb:us::eng", NULL };
+
+ ibus_bus_preload_engines_async (
+ bus,
+ preload_engines,
+ -1, /* timeout */
+ NULL, /* cancellable */
+ finish_preload_engines_async,
+ NULL); /* user_data */
+}
+
+static void
finish_exit_async (GObject *source_object,
GAsyncResult *res,
gpointer user_data)
start_is_global_engine_enabled_async,
start_set_global_engine_async,
start_get_global_engine_async,
+ start_preload_engines_async,
start_exit_async,
};
static guint index = 0;
(*async_functions[index++])();
}
+static void
+_bus_connected_cb (IBusBus *bus,
+ gpointer user_data)
+{
+ g_assert (ibus_bus_is_connected (bus));
+ ibus_quit ();
+}
+
+static void
+test_bus_new_async (void)
+{
+ g_object_unref (bus);
+ bus = ibus_bus_new_async ();
+ g_signal_connect (bus, "connected", G_CALLBACK (_bus_connected_cb), NULL);
+ ibus_main ();
+}
+
gint
main (gint argc,
gchar **argv)
{
gint result;
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
ibus_init ();
+ g_test_init (&argc, &argv, NULL);
bus = ibus_bus_new ();
g_object_unref (bus);
bus = ibus_bus_new (); // crosbug.com/17293
test_create_input_context_async);
g_test_add_func ("/ibus/get-engines-by-names", test_get_engines_by_names);
g_test_add_func ("/ibus/async-apis", test_async_apis);
+ g_test_add_func ("/ibus/bus-new-async", test_bus_new_async);
+ g_test_add_func ("/ibus/bus-new-async/list-engines", test_list_engines);
+ g_test_add_func ("/ibus/bus-new-async/list-active-engines", test_list_active_engines);
+ g_test_add_func ("/ibus/bus-new-async/create-input-context-async",
+ test_create_input_context_async);
+ g_test_add_func ("/ibus/bus-new-async/get-engines-by-names", test_get_engines_by_names);
+ g_test_add_func ("/ibus/bus-new-async/async-apis", test_async_apis);
result = g_test_run ();
g_object_unref (bus);