--- a/libpurple/protocols/jabber/tests/test_jabber_jutil.c Sun Nov 10 09:52:48 2019 +0000
+++ b/libpurple/protocols/jabber/tests/test_jabber_jutil.c Sun Nov 10 22:22:21 2019 -0500
@@ -7,41 +7,41 @@
#include "protocols/jabber/jutil.h"
+PurpleTestStringData test_jabber_util_get_resource_exists_data[] = { + {"foo@bar/baz", "baz"}, + {"foo@bar/baz/bat", "baz/bat"}, + {"bar/baz/bat", "baz/bat"}, -test_jabber_util_get_resource_exists(void) {
- PurpleTestStringData data[] = {
- { "foo@bar/baz", "baz" },
- { "foo@bar/baz/bat", "baz/bat" },
- { "bar/baz/bat", "baz/bat" },
- purple_test_string_compare_free(jabber_get_resource, data);
+test_jabber_util_get_resource_exists(const PurpleTestStringData *data) + g_assert_cmpstr(data->output, ==, jabber_get_resource(data->input)); +PurpleTestStringData test_jabber_util_get_resource_none_data[] = { -test_jabber_util_get_resource_none(void) {
- PurpleTestStringData data[] = {
- purple_test_string_compare_free(jabber_get_resource, data);
+test_jabber_util_get_resource_none(const PurpleTestStringData *data) + g_assert_cmpstr(data->output, ==, jabber_get_resource(data->input)); +PurpleTestStringData test_jabber_util_get_bare_jid_data[] = { + {"foo@bar", "foo@bar"}, + {"foo@bar/baz", "foo@bar"}, -test_jabber_util_get_bare_jid(void) {
- PurpleTestStringData data[] = {
- { "foo@bar", "foo@bar" },
- { "foo@bar/baz", "foo@bar" },
- purple_test_string_compare_free(jabber_get_bare_jid, data);
+test_jabber_util_get_bare_jid(const PurpleTestStringData *data) + g_assert_cmpstr(data->output, ==, jabber_get_bare_jid(data->input)); @@ -70,23 +70,21 @@
+const gchar *test_jabber_util_nodeprep_validate_illegal_chars_data[] = { -test_jabber_util_nodeprep_validate_illegal_chars(void) {
- const gchar *data[] = {
- for(i = 0; data[i]; i++)
- g_assert_false(jabber_nodeprep_validate(data[i]));
+test_jabber_util_nodeprep_validate_illegal_chars(const gchar *data) + g_assert_false(jabber_nodeprep_validate(data)); @@ -98,75 +96,70 @@
+const gchar *test_jabber_util_jabber_id_new_valid_data[] = { + "gmail.com/Test@alkjaweflkj", + "noone@example.com/Test12345", + "noone@example.com/Test@12345", + "noone@example.com/Te/st@12@//345", + "わいど@conference.jabber.org", + "まりるーむ@conference.jabber.org", + "noone@example.com/まりるーむ", + "noone@example/stuff.org", + "noone@nödåtXäYZ.example", + "noone@nödåtXäYZ.example/まりるーむ", + "noone@310.0.42.230/s", + "noone@[::1]", /* IPv6 */ + "noone@[3001:470:1f05:d58::2]", + "noone@[3001:470:1f05:d58::2]/foo", -test_jabber_util_jabber_id_new_valid(void) {
- const gchar *jids[] = {
- "gmail.com/Test@alkjaweflkj",
- "noone@example.com/Test12345",
- "noone@example.com/Test@12345",
- "noone@example.com/Te/st@12@//345",
- "わいど@conference.jabber.org",
- "まりるーむ@conference.jabber.org",
- "noone@example.com/まりるーむ",
- "noone@example/stuff.org",
- "noone@nödåtXäYZ.example",
- "noone@nödåtXäYZ.example/まりるーむ",
- "noone@310.0.42.230/s",
- "noone@[::1]", /* IPv6 */
- "noone@[3001:470:1f05:d58::2]",
- "noone@[3001:470:1f05:d58::2]/foo",
+test_jabber_util_jabber_id_new_valid(const gchar *data) + JabberID *jid = jabber_id_new(data); - for(i = 0; jids[i]; i++) {
- JabberID *jid = jabber_id_new(jids[i]);
+const gchar *test_jabber_util_jabber_id_new_invalid_data[] = { + "noone@@example.com/Test12345", + "no@one@example.com/Test12345", + "@example.com/Test@12345", + "noone@gmail_stuff.org", + "noone@gmail[stuff.org", + "noone@gmail\\stuff.org", + * RFC 3454 Section 6 reads, in part, + * "If a string contains any RandALCat character, the + * string MUST NOT contain any LCat character." + * The character is U+066D (ARABIC FIVE POINTED STAR). + "foo@example.com/٭simplexe٭", -test_jabber_util_jabber_id_new_invalid(void) {
- const gchar *jids[] = {
- "noone@@example.com/Test12345",
- "no@one@example.com/Test12345",
- "@example.com/Test@12345",
- "noone@gmail_stuff.org",
- "noone@gmail[stuff.org",
- "noone@gmail\\stuff.org",
- * RFC 3454 Section 6 reads, in part,
- * "If a string contains any RandALCat character, the
- * string MUST NOT contain any LCat character."
- * The character is U+066D (ARABIC FIVE POINTED STAR).
- "foo@example.com/٭simplexe٭",
- for(i = 0; jids[i]; i++)
- g_assert_null(jabber_id_new(jids[i]));
+test_jabber_util_jabber_id_new_invalid(const gchar *jid) + g_assert_null(jabber_id_new(jid)); #define assert_jid_parts(expect_node, expect_domain, str) G_STMT_START { \
@@ -209,60 +202,85 @@
assert_jid_parts("noone", "өexample.com", "noone@Өexample.com");
-partial_jabber_normalize(const gchar *str) {
- return jabber_normalize(NULL, str);
+PurpleTestStringData test_jabber_util_jabber_normalize_data[] = { + {"NoOnE@ExAMplE.com", "noone@example.com"}, + {"NoOnE@ExampLE.cOM/", "noone@example.com"}, + {"NoONe@exAMPle.CoM/resource", "noone@example.com"}, -test_jabber_util_jabber_normalize(void) {
- PurpleTestStringData data[] = {
- "NoONe@exAMPle.CoM/resource",
- purple_test_string_compare(partial_jabber_normalize, data);
+test_jabber_util_jabber_normalize(const PurpleTestStringData *data) + g_assert_cmpstr(data->output, ==, jabber_normalize(NULL, data->input)); main(gint argc, gchar **argv) {
g_test_init(&argc, &argv, NULL);
- g_test_add_func("/jabber/util/get_resource/exists",
- test_jabber_util_get_resource_exists);
- g_test_add_func("/jabber/util/get_resource/none",
- test_jabber_util_get_resource_none);
+ for (i = 0; test_jabber_util_get_resource_exists_data[i].input; i++) { + test_name = g_strdup_printf("/jabber/util/get_resource/exists/%d", i); + test_name, &test_jabber_util_get_resource_exists_data[i], + (GTestDataFunc)test_jabber_util_get_resource_exists); + for (i = 0; test_jabber_util_get_resource_none_data[i].input; i++) { + test_name = g_strdup_printf("/jabber/util/get_resource/none/%d", i); + g_test_add_data_func(test_name, + &test_jabber_util_get_resource_none_data[i], + (GTestDataFunc)test_jabber_util_get_resource_none); - g_test_add_func("/jabber/util/get_bare_jid",
- test_jabber_util_get_bare_jid);
+ for (i = 0; test_jabber_util_get_bare_jid_data[i].input; i++) { + test_name = g_strdup_printf("/jabber/util/get_bare_jid/%d", i); + g_test_add_data_func(test_name, &test_jabber_util_get_bare_jid_data[i], + (GTestDataFunc)test_jabber_util_get_bare_jid); g_test_add_func("/jabber/util/nodeprep/validate/valid",
test_jabber_util_nodeprep_validate);
- g_test_add_func("/jabber/util/nodeprep/validate/illegal_chars",
- test_jabber_util_nodeprep_validate_illegal_chars);
+ for (i = 0; test_jabber_util_nodeprep_validate_illegal_chars_data[i]; i++) { + test_name = g_strdup_printf( + "/jabber/util/nodeprep/validate/illegal_chars/%d", i); + test_jabber_util_nodeprep_validate_illegal_chars_data[i], + test_jabber_util_nodeprep_validate_illegal_chars); g_test_add_func("/jabber/util/nodeprep/validate/too_long",
test_jabber_util_nodeprep_validate_too_long);
- g_test_add_func("/jabber/util/id_new/valid",
- test_jabber_util_jabber_id_new_valid);
- g_test_add_func("/jabber/util/id_new/invalid",
- test_jabber_util_jabber_id_new_invalid);
+ for (i = 0; test_jabber_util_jabber_id_new_valid_data[i]; i++) { + test_name = g_strdup_printf("/jabber/util/id_new/valid/%d", i); + test_name, test_jabber_util_jabber_id_new_valid_data[i], + (GTestDataFunc)test_jabber_util_jabber_id_new_valid); + for (i = 0; test_jabber_util_jabber_id_new_invalid_data[i]; i++) { + test_name = g_strdup_printf("/jabber/util/id_new/invalid/%d", i); + test_name, test_jabber_util_jabber_id_new_invalid_data[i], + (GTestDataFunc)test_jabber_util_jabber_id_new_invalid); g_test_add_func("/jabber/util/id_new/jid_parts",
test_jabber_util_jid_parts);
- g_test_add_func("/jabber/util/normalize",
- test_jabber_util_jabber_normalize);
+ for (i = 0; test_jabber_util_jabber_normalize_data[i].input; i++) { + test_name = g_strdup_printf("/jabber/util/normalize/%d", i); + g_test_add_data_func(test_name, + &test_jabber_util_jabber_normalize_data[i], + (GTestDataFunc)test_jabber_util_jabber_normalize);