[next] telepathy-glib: TpCapabilities: Add more unit tests for the case of extra unknown fixed props
Simon McVittie
smcv at kemper.freedesktop.org
Wed Apr 25 07:26:06 PDT 2012
Module: telepathy-glib
Branch: next
Commit: b2cde22bbf29015c644a6552cfad26d0ca9aabc9
URL: http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=b2cde22bbf29015c644a6552cfad26d0ca9aabc9
Author: Xavier Claessens <xavier.claessens at collabora.co.uk>
Date: Tue Apr 17 12:44:35 2012 +0200
TpCapabilities: Add more unit tests for the case of extra unknown fixed props
---
tests/capabilities.c | 65 ++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/tests/capabilities.c b/tests/capabilities.c
index 7b82195..61c1ce6 100644
--- a/tests/capabilities.c
+++ b/tests/capabilities.c
@@ -269,7 +269,8 @@ add_stream_tube_class (GPtrArray *classes,
static void
add_dbus_tube_class (GPtrArray *classes,
TpHandleType handle_type,
- const gchar *service_name)
+ const gchar *service_name,
+ gboolean add_extra_fixed)
{
GHashTable *fixed;
const gchar * const allowed[] = { NULL };
@@ -288,6 +289,9 @@ add_dbus_tube_class (GPtrArray *classes,
service_name);
}
+ if (add_extra_fixed)
+ tp_asv_set_boolean (fixed, "ExtraBadgersRequired", TRUE);
+
arr = tp_value_array_build (2,
TP_HASH_TYPE_STRING_VARIANT_MAP, fixed,
G_TYPE_STRV, allowed,
@@ -433,7 +437,7 @@ test_supports_tube (Test *test,
/* Connection capabilities */
classes = g_ptr_array_sized_new (2);
add_stream_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL);
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL, FALSE);
caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
"channel-classes", classes,
@@ -463,7 +467,7 @@ test_supports_tube (Test *test,
/* TpCapabilities containing the private dbus tube caps without service */
classes = g_ptr_array_sized_new (1);
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL, FALSE);
caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
"channel-classes", classes,
@@ -495,8 +499,8 @@ test_supports_tube (Test *test,
/* TpCapabilities containing the private and muc dbus tube caps without
* service */
classes = g_ptr_array_sized_new (2);
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL);
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_ROOM, NULL);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL, FALSE);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_ROOM, NULL, FALSE);
caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
"channel-classes", classes,
@@ -528,10 +532,10 @@ test_supports_tube (Test *test,
/* TpCapabilities containing the private and muc dbus tube caps and
* one with a service */
classes = g_ptr_array_sized_new (4);
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL);
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_ROOM, NULL);
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, "com.Test");
- add_dbus_tube_class (classes, TP_HANDLE_TYPE_ROOM, "com.Test");
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL, FALSE);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_ROOM, NULL, FALSE);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, "com.Test", FALSE);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_ROOM, "com.Test", FALSE);
caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
"channel-classes", classes,
@@ -563,11 +567,29 @@ test_supports_tube (Test *test,
"com.Badger"));
g_object_unref (caps);
+
+ /* Any extra fixed prop make it unsupported */
+ classes = g_ptr_array_sized_new (1);
+ add_dbus_tube_class (classes, TP_HANDLE_TYPE_CONTACT, NULL, TRUE);
+
+ caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
+ "channel-classes", classes,
+ "contact-specific", TRUE,
+ NULL);
+
+ g_boxed_free (TP_ARRAY_TYPE_REQUESTABLE_CHANNEL_CLASS_LIST,
+ classes);
+
+ g_assert (!tp_capabilities_supports_dbus_tubes (caps,
+ TP_HANDLE_TYPE_CONTACT, NULL));
+
+ g_object_unref (caps);
}
static void
add_room_list_class (GPtrArray *classes,
- gboolean server)
+ gboolean server,
+ gboolean add_extra_fixed)
{
GHashTable *fixed;
const gchar * const allowed[] = {
@@ -583,6 +605,9 @@ add_room_list_class (GPtrArray *classes,
TP_HANDLE_TYPE_NONE,
NULL);
+ if (add_extra_fixed)
+ tp_asv_set_boolean (fixed, "ExtraBadgersRequired", TRUE);
+
arr = tp_value_array_build (2,
TP_HASH_TYPE_STRING_VARIANT_MAP, fixed,
G_TYPE_STRV, server ? allowed : no_allowed,
@@ -621,7 +646,7 @@ test_supports_room_list (Test *test,
/* Support room list but no server */
classes = g_ptr_array_sized_new (4);
add_ft_class (classes);
- add_room_list_class (classes, FALSE);
+ add_room_list_class (classes, FALSE, FALSE);
caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
"channel-classes", classes,
@@ -639,7 +664,7 @@ test_supports_room_list (Test *test,
/* Support room list with server */
classes = g_ptr_array_sized_new (4);
add_ft_class (classes);
- add_room_list_class (classes, TRUE);
+ add_room_list_class (classes, TRUE, FALSE);
caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
"channel-classes", classes,
@@ -653,6 +678,22 @@ test_supports_room_list (Test *test,
g_assert (with_server);
g_object_unref (caps);
+
+ /* Any extra fixed prop make it unsupported */
+ classes = g_ptr_array_sized_new (1);
+ add_room_list_class (classes, FALSE, TRUE);
+
+ caps = tp_tests_object_new_static_class (TP_TYPE_CAPABILITIES,
+ "channel-classes", classes,
+ "contact-specific", FALSE,
+ NULL);
+
+ g_boxed_free (TP_ARRAY_TYPE_REQUESTABLE_CHANNEL_CLASS_LIST,
+ classes);
+
+ g_assert (!tp_capabilities_supports_room_list (caps, NULL));
+
+ g_object_unref (caps);
}
static void
More information about the telepathy-commits
mailing list