libpurple/protocols/jabber/tests/test_jabber_digest_md5.c

changeset 37605
599b01f2f5a7
parent 31394
dd9b4ed08d0a
child 40358
e6fe6fc1f516
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/jabber/tests/test_jabber_digest_md5.c	Sun Mar 13 17:08:29 2016 -0500
@@ -0,0 +1,50 @@
+#include <glib.h>
+
+#include "util.h"
+#include "protocols/jabber/auth_digest_md5.h"
+#include "protocols/jabber/jutil.h"
+
+static void
+test_jabber_digest_md5_parsing(void) {
+	GHashTable *table;
+	const gchar *value = NULL;
+
+	#define check_value(name, expected) G_STMT_START {\
+		value = g_hash_table_lookup(table, (name)); \
+		g_assert_nonnull(value); \
+		g_assert_cmpstr((expected), ==, value); \
+	} G_STMT_END
+
+	table = jabber_auth_digest_md5_parse("r=\"realm\",token=   \"   asdf\"");
+	check_value("r", "realm");
+	check_value("token", "asdf");
+	g_hash_table_destroy(table);
+
+	table = jabber_auth_digest_md5_parse("r=\"a\", token=   \"   asdf\"");
+	check_value("r", "a");
+	check_value("token", "asdf");
+	g_hash_table_destroy(table);
+
+	table = jabber_auth_digest_md5_parse("r=\"\", token=   \"   asdf\"");
+	check_value("r", "");
+	check_value("token", "asdf");
+	g_hash_table_destroy(table);
+
+	table = jabber_auth_digest_md5_parse("realm=\"somerealm\",nonce=\"OA6MG9tEQGm2hh\",qop=\"auth\",charset=utf-8,algorithm=md5-sess");
+	check_value("realm", "somerealm");
+	check_value("nonce", "OA6MG9tEQGm2hh");
+	check_value("qop", "auth");
+	check_value("charset", "utf-8");
+	check_value("algorithm", "md5-sess");
+	g_hash_table_destroy(table);
+}
+
+gint
+main(gint argc, gchar **argv) {
+	g_test_init(&argc, &argv, NULL);
+
+	g_test_add_func("/jabber/digest/md5/parsing",
+	                test_jabber_digest_md5_parsing);
+
+	return g_test_run();
+}

mercurial