~sil2100/hud/hud_client_query_test_timeout_up

« back to all changes in this revision

Viewing changes to tests/test-hud-manager.c

  • Committer: Tarmac
  • Author(s): Pete Woods
  • Date: 2013-04-06 10:52:54 UTC
  • mfrom: (370.2.22 libhud-tests)
  • Revision ID: tarmac-20130406105254-wgz2ifd4f9aewrfz
Increase test coverage for libhud.

Approved by PS Jenkins bot, Ted Gould.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#include <hud.h>
 
3
#include <libdbustest/dbus-test.h>
 
4
 
 
5
#include "shared-values.h"
 
6
#include "hudtestutils.h"
 
7
 
 
8
static void
 
9
test_manager_create ()
 
10
{
 
11
  DbusTestService *service = NULL;
 
12
  GDBusConnection *connection = NULL;
 
13
  DeeModel *results_model = NULL;
 
14
  DeeModel *appstack_model = NULL;
 
15
 
 
16
  hud_test_utils_start_hud_service (&service, &connection, &results_model,
 
17
      &appstack_model);
 
18
 
 
19
  HudManager *manager = hud_manager_new ("test.app");
 
20
  hud_test_utils_process_mainloop (100);
 
21
 
 
22
  dbus_mock_assert_method_call_results (connection, DBUS_NAME, DBUS_PATH,
 
23
      "RegisterApplication",
 
24
      "\\(\\[\\(\\d+, \\[<'test.app'>\\]\\)\\],\\)");
 
25
 
 
26
  g_object_unref (manager);
 
27
 
 
28
  hud_test_utils_stop_hud_service (service, connection, results_model,
 
29
      appstack_model);
 
30
}
 
31
 
 
32
static void
 
33
test_manager_create_with_application ()
 
34
{
 
35
  DbusTestService *service = NULL;
 
36
  GDBusConnection *connection = NULL;
 
37
  DeeModel *results_model = NULL;
 
38
  DeeModel *appstack_model = NULL;
 
39
 
 
40
  hud_test_utils_start_hud_service (&service, &connection, &results_model,
 
41
      &appstack_model);
 
42
 
 
43
  {
 
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);
 
49
  }
 
50
 
 
51
  GApplication *application = g_application_new("app.id", G_APPLICATION_FLAGS_NONE);
 
52
  GError *error = NULL;
 
53
  if (!g_application_register(application, NULL, &error))
 
54
  {
 
55
    g_error("%s", error->message);
 
56
  }
 
57
 
 
58
  HudManager *manager = hud_manager_new_for_application(application);
 
59
  hud_test_utils_process_mainloop (100);
 
60
  g_object_unref (manager);
 
61
 
 
62
  dbus_mock_assert_method_call_results (connection, DBUS_NAME, DBUS_PATH,
 
63
      "RegisterApplication",
 
64
      "\\(\\[\\(\\d+, \\[<'app.id'>\\]\\)\\],\\)");
 
65
 
 
66
  dbus_mock_assert_method_call_results (connection, DBUS_NAME, "/app/object",
 
67
      "AddSources",
 
68
      "\\(\\[\\(\\d+, \\[<\\[\\(<-1>, 'app', objectpath '\\/app\\/id'\\)\\]>, <\\[\\(<-1>, objectpath '\\/com\\/canonical\\/hud\\/publisher0'\\)\\]>\\]\\)\\],\\)");
 
69
 
 
70
  g_object_unref (application);
 
71
 
 
72
  hud_test_utils_stop_hud_service (service, connection, results_model,
 
73
      appstack_model);
 
74
}
 
75
 
 
76
static void
 
77
test_manager_add_actions ()
 
78
{
 
79
  DbusTestService *service = NULL;
 
80
  GDBusConnection *connection = NULL;
 
81
  DeeModel *results_model = NULL;
 
82
  DeeModel *appstack_model = NULL;
 
83
 
 
84
  hud_test_utils_start_hud_service (&service, &connection, &results_model,
 
85
      &appstack_model);
 
86
 
 
87
  {
 
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);
 
93
  }
 
94
 
 
95
  HudManager *manager = hud_manager_new ("test.app");
 
96
  hud_test_utils_process_mainloop (100);
 
97
 
 
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);
 
102
 
 
103
  dbus_mock_assert_method_call_results (connection, DBUS_NAME, "/app/object",
 
104
        "AddSources",
 
105
        "\\(\\[\\(\\d+, \\[<\\[\\(<-1>, 'app', objectpath '\\/app\\/object'\\)\\]>, <\\[\\(<-1>, objectpath '\\/com\\/canonical\\/hud\\/publisher'\\)\\]>\\]\\)\\],\\)");
 
106
 
 
107
  g_object_unref (publisher);
 
108
  g_object_unref (manager);
 
109
 
 
110
  hud_test_utils_stop_hud_service (service, connection, results_model,
 
111
      appstack_model);
 
112
}
 
113
 
 
114
/**
 
115
 * the remove_actions method does nothing at the moment
 
116
 */
 
117
 
 
118
static void
 
119
test_manager_remove_actions ()
 
120
{
 
121
  DbusTestService *service = NULL;
 
122
  GDBusConnection *connection = NULL;
 
123
  DeeModel *results_model = NULL;
 
124
  DeeModel *appstack_model = NULL;
 
125
 
 
126
  hud_test_utils_start_hud_service (&service, &connection, &results_model,
 
127
      &appstack_model);
 
128
 
 
129
  {
 
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);
 
135
  }
 
136
 
 
137
  HudManager *manager = hud_manager_new ("app.id");
 
138
  hud_test_utils_process_mainloop (100);
 
139
 
 
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);
 
144
 
 
145
  dbus_mock_assert_method_call_results (connection, DBUS_NAME, "/app/object",
 
146
        "AddSources",
 
147
        "\\(\\[\\(\\d+, \\[<\\[\\(<-1>, 'app', objectpath '\\/app\\/object'\\)\\]>, <\\[\\(<-1>, objectpath '\\/com\\/canonical\\/hud\\/publisher'\\)\\]>\\]\\)\\],\\)");
 
148
  dbus_mock_clear_method_calls(connection, DBUS_NAME, "/app/object");
 
149
 
 
150
  hud_manager_remove_actions(manager, publisher);
 
151
  hud_test_utils_process_mainloop (100);
 
152
 
 
153
  g_object_unref (publisher);
 
154
  g_object_unref (manager);
 
155
 
 
156
  hud_test_utils_stop_hud_service (service, connection, results_model,
 
157
      appstack_model);
 
158
}
 
159
 
 
160
static void
 
161
test_suite (void)
 
162
{
 
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);
 
167
}
 
168
 
 
169
int
 
170
main (int argc, char * argv[])
 
171
{
 
172
#ifndef GLIB_VERSION_2_36
 
173
  g_type_init ();
 
174
#endif
 
175
 
 
176
  g_test_init(&argc, &argv, NULL);
 
177
 
 
178
  /* Test Suites */
 
179
  test_suite();
 
180
 
 
181
  return g_test_run();
 
182
}