3
#include <libdbustest/dbus-test.h>
5
#include "shared-values.h"
6
#include "hudtestutils.h"
11
DbusTestService *service = NULL;
12
GDBusConnection *connection = NULL;
13
DeeModel *results_model = NULL;
14
DeeModel *appstack_model = NULL;
16
hud_test_utils_start_hud_service (&service, &connection, &results_model,
19
HudManager *manager = hud_manager_new ("test.app");
20
hud_test_utils_process_mainloop (100);
22
dbus_mock_assert_method_call_results (connection, DBUS_NAME, DBUS_PATH,
23
"RegisterApplication",
24
"\\(\\[\\(\\d+, \\[<'test.app'>\\]\\)\\],\\)");
26
g_object_unref (manager);
28
hud_test_utils_stop_hud_service (service, connection, results_model,
33
test_manager_create_with_application ()
35
DbusTestService *service = NULL;
36
GDBusConnection *connection = NULL;
37
DeeModel *results_model = NULL;
38
DeeModel *appstack_model = NULL;
40
hud_test_utils_start_hud_service (&service, &connection, &results_model,
44
DBusMockProperties* properties = dbus_mock_new_properties ();
45
DBusMockMethods* methods = dbus_mock_new_methods ();
46
dbus_mock_methods_append (methods, "AddSources", "a(vso)a(vo)", "", "");
47
dbus_mock_add_object (connection, DBUS_NAME, DBUS_PATH, "/app/object",
48
"com.canonical.hud.Application", properties, methods);
51
GApplication *application = g_application_new("app.id", G_APPLICATION_FLAGS_NONE);
53
if (!g_application_register(application, NULL, &error))
55
g_error("%s", error->message);
58
HudManager *manager = hud_manager_new_for_application(application);
59
hud_test_utils_process_mainloop (100);
60
g_object_unref (manager);
62
dbus_mock_assert_method_call_results (connection, DBUS_NAME, DBUS_PATH,
63
"RegisterApplication",
64
"\\(\\[\\(\\d+, \\[<'app.id'>\\]\\)\\],\\)");
66
dbus_mock_assert_method_call_results (connection, DBUS_NAME, "/app/object",
68
"\\(\\[\\(\\d+, \\[<\\[\\(<-1>, 'app', objectpath '\\/app\\/id'\\)\\]>, <\\[\\(<-1>, objectpath '\\/com\\/canonical\\/hud\\/publisher0'\\)\\]>\\]\\)\\],\\)");
70
g_object_unref (application);
72
hud_test_utils_stop_hud_service (service, connection, results_model,
77
test_manager_add_actions ()
79
DbusTestService *service = NULL;
80
GDBusConnection *connection = NULL;
81
DeeModel *results_model = NULL;
82
DeeModel *appstack_model = NULL;
84
hud_test_utils_start_hud_service (&service, &connection, &results_model,
88
DBusMockProperties* properties = dbus_mock_new_properties ();
89
DBusMockMethods* methods = dbus_mock_new_methods ();
90
dbus_mock_methods_append (methods, "AddSources", "a(vso)a(vo)", "", "");
91
dbus_mock_add_object (connection, DBUS_NAME, DBUS_PATH, "/app/object",
92
"com.canonical.hud.Application", properties, methods);
95
HudManager *manager = hud_manager_new ("test.app");
96
hud_test_utils_process_mainloop (100);
98
HudActionPublisher *publisher = hud_action_publisher_new_for_id(NULL);
99
hud_action_publisher_add_action_group(publisher, "app", "/app/object");
100
hud_manager_add_actions(manager, publisher);
101
hud_test_utils_process_mainloop (100);
103
dbus_mock_assert_method_call_results (connection, DBUS_NAME, "/app/object",
105
"\\(\\[\\(\\d+, \\[<\\[\\(<-1>, 'app', objectpath '\\/app\\/object'\\)\\]>, <\\[\\(<-1>, objectpath '\\/com\\/canonical\\/hud\\/publisher'\\)\\]>\\]\\)\\],\\)");
107
g_object_unref (publisher);
108
g_object_unref (manager);
110
hud_test_utils_stop_hud_service (service, connection, results_model,
115
* the remove_actions method does nothing at the moment
119
test_manager_remove_actions ()
121
DbusTestService *service = NULL;
122
GDBusConnection *connection = NULL;
123
DeeModel *results_model = NULL;
124
DeeModel *appstack_model = NULL;
126
hud_test_utils_start_hud_service (&service, &connection, &results_model,
130
DBusMockProperties* properties = dbus_mock_new_properties ();
131
DBusMockMethods* methods = dbus_mock_new_methods ();
132
dbus_mock_methods_append (methods, "AddSources", "a(vso)a(vo)", "", "");
133
dbus_mock_add_object (connection, DBUS_NAME, DBUS_PATH, "/app/object",
134
"com.canonical.hud.Application", properties, methods);
137
HudManager *manager = hud_manager_new ("app.id");
138
hud_test_utils_process_mainloop (100);
140
HudActionPublisher *publisher = hud_action_publisher_new_for_id(NULL);
141
hud_action_publisher_add_action_group(publisher, "app", "/app/object");
142
hud_manager_add_actions(manager, publisher);
143
hud_test_utils_process_mainloop (100);
145
dbus_mock_assert_method_call_results (connection, DBUS_NAME, "/app/object",
147
"\\(\\[\\(\\d+, \\[<\\[\\(<-1>, 'app', objectpath '\\/app\\/object'\\)\\]>, <\\[\\(<-1>, objectpath '\\/com\\/canonical\\/hud\\/publisher'\\)\\]>\\]\\)\\],\\)");
148
dbus_mock_clear_method_calls(connection, DBUS_NAME, "/app/object");
150
hud_manager_remove_actions(manager, publisher);
151
hud_test_utils_process_mainloop (100);
153
g_object_unref (publisher);
154
g_object_unref (manager);
156
hud_test_utils_stop_hud_service (service, connection, results_model,
163
g_test_add_func ("/hud/hud/manager/create", test_manager_create);
164
g_test_add_func ("/hud/hud/manager/create_with_application", test_manager_create_with_application);
165
g_test_add_func ("/hud/hud/manager/add_actions", test_manager_add_actions);
166
g_test_add_func ("/hud/hud/manager/remove_actions", test_manager_remove_actions);
170
main (int argc, char * argv[])
172
#ifndef GLIB_VERSION_2_36
176
g_test_init(&argc, &argv, NULL);