aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSense Egbert Hofstede <sense@ubuntu.com>2010-08-24 16:04:05 +0200
committerSense Egbert Hofstede <sense@ubuntu.com>2010-08-24 16:04:05 +0200
commitc553ba560850d76ee92d705bfc37a0fa39a37d72 (patch)
tree1e7542e2f2768bf97fbe65a7a6efc6d243863166 /tests
parent1a0c666b3461d13265a52d35e38d260d975f02aa (diff)
parentb51c1debf9807ad357564975c394badbafccaa1b (diff)
downloadlibayatana-appindicator-c553ba560850d76ee92d705bfc37a0fa39a37d72.tar.gz
libayatana-appindicator-c553ba560850d76ee92d705bfc37a0fa39a37d72.tar.bz2
libayatana-appindicator-c553ba560850d76ee92d705bfc37a0fa39a37d72.zip
Merging with trunk
Diffstat (limited to 'tests')
-rw-r--r--tests/test-approver.c2
-rw-r--r--tests/test-libappindicator.c133
2 files changed, 134 insertions, 1 deletions
diff --git a/tests/test-approver.c b/tests/test-approver.c
index bc25761..2665505 100644
--- a/tests/test-approver.c
+++ b/tests/test-approver.c
@@ -128,7 +128,7 @@ check_for_service (gpointer user_data)
NOTIFICATION_WATCHER_DBUS_IFACE);
g_debug("Registering Approver");
- org_kde_StatusNotifierWatcher_register_notification_approver_async (proxy, APPROVER_PATH, &cats, register_cb, NULL);
+ org_kde_StatusNotifierWatcher_x_ayatana_register_notification_approver_async (proxy, APPROVER_PATH, &cats, register_cb, NULL);
return FALSE;
}
diff --git a/tests/test-libappindicator.c b/tests/test-libappindicator.c
index 86879b3..8d12ac5 100644
--- a/tests/test-libappindicator.c
+++ b/tests/test-libappindicator.c
@@ -163,12 +163,145 @@ test_libappindicator_init (void)
}
void
+test_libappindicator_set_label (void)
+{
+ AppIndicator * ci = app_indicator_new ("my-id",
+ "my-name",
+ APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
+
+ g_assert(ci != NULL);
+ g_assert(app_indicator_get_label(ci) == NULL);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ /* First check all the clearing modes, this is important as
+ we're going to use them later, we need them to work. */
+ app_indicator_set_label(ci, NULL, NULL);
+
+ g_assert(app_indicator_get_label(ci) == NULL);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ app_indicator_set_label(ci, "", NULL);
+
+ g_assert(app_indicator_get_label(ci) == NULL);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ app_indicator_set_label(ci, NULL, "");
+
+ g_assert(app_indicator_get_label(ci) == NULL);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ app_indicator_set_label(ci, "", "");
+
+ g_assert(app_indicator_get_label(ci) == NULL);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ app_indicator_set_label(ci, "label", "");
+
+ g_assert(g_strcmp0(app_indicator_get_label(ci), "label") == 0);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ app_indicator_set_label(ci, NULL, NULL);
+
+ g_assert(app_indicator_get_label(ci) == NULL);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ app_indicator_set_label(ci, "label", "guide");
+
+ g_assert(g_strcmp0(app_indicator_get_label(ci), "label") == 0);
+ g_assert(g_strcmp0(app_indicator_get_label_guide(ci), "guide") == 0);
+
+ app_indicator_set_label(ci, "label2", "guide");
+
+ g_assert(g_strcmp0(app_indicator_get_label(ci), "label2") == 0);
+ g_assert(g_strcmp0(app_indicator_get_label_guide(ci), "guide") == 0);
+
+ app_indicator_set_label(ci, "trick-label", "trick-guide");
+
+ g_assert(g_strcmp0(app_indicator_get_label(ci), "trick-label") == 0);
+ g_assert(g_strcmp0(app_indicator_get_label_guide(ci), "trick-guide") == 0);
+
+ g_object_unref(G_OBJECT(ci));
+ return;
+}
+
+void
+label_signals_cb (AppIndicator * appindicator, gchar * label, gchar * guide, gpointer user_data)
+{
+ gint * label_signals_count = (gint *)user_data;
+ (*label_signals_count)++;
+ return;
+}
+
+void
+label_signals_check (void)
+{
+ while (g_main_context_pending(NULL)) {
+ g_main_context_iteration(NULL, TRUE);
+ }
+
+ return;
+}
+
+void
+test_libappindicator_label_signals (void)
+{
+ gint label_signals_count = 0;
+ AppIndicator * ci = app_indicator_new ("my-id",
+ "my-name",
+ APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
+
+ g_assert(ci != NULL);
+ g_assert(app_indicator_get_label(ci) == NULL);
+ g_assert(app_indicator_get_label_guide(ci) == NULL);
+
+ g_signal_connect(G_OBJECT(ci), APP_INDICATOR_SIGNAL_NEW_LABEL, G_CALLBACK(label_signals_cb), &label_signals_count);
+
+ /* Shouldn't be a signal as it should be stuck in idle */
+ app_indicator_set_label(ci, "label", "guide");
+ g_assert(label_signals_count == 0);
+
+ /* Should show up after idle processing */
+ label_signals_check();
+ g_assert(label_signals_count == 1);
+
+ /* Shouldn't signal with no change */
+ label_signals_count = 0;
+ app_indicator_set_label(ci, "label", "guide");
+ label_signals_check();
+ g_assert(label_signals_count == 0);
+
+ /* Change one, we should get one signal */
+ app_indicator_set_label(ci, "label2", "guide");
+ label_signals_check();
+ g_assert(label_signals_count == 1);
+
+ /* Change several times, one signal */
+ label_signals_count = 0;
+ app_indicator_set_label(ci, "label1", "guide0");
+ app_indicator_set_label(ci, "label1", "guide1");
+ app_indicator_set_label(ci, "label2", "guide2");
+ app_indicator_set_label(ci, "label3", "guide3");
+ label_signals_check();
+ g_assert(label_signals_count == 1);
+
+ /* Clear should signal too */
+ label_signals_count = 0;
+ app_indicator_set_label(ci, NULL, NULL);
+ label_signals_check();
+ g_assert(label_signals_count == 1);
+
+ return;
+}
+
+void
test_libappindicator_props_suite (void)
{
g_test_add_func ("/indicator-application/libappindicator/init", test_libappindicator_init);
g_test_add_func ("/indicator-application/libappindicator/init_props", test_libappindicator_init_with_props);
g_test_add_func ("/indicator-application/libappindicator/init_set_props", test_libappindicator_init_set_props);
g_test_add_func ("/indicator-application/libappindicator/prop_signals", test_libappindicator_prop_signals);
+ g_test_add_func ("/indicator-application/libappindicator/set_label", test_libappindicator_set_label);
+ g_test_add_func ("/indicator-application/libappindicator/label_signals", test_libappindicator_label_signals);
return;
}