From 3a22719bd7a59d0eaaa6206c7fd289825365b3ff Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 13 Jan 2013 00:19:56 +0000 Subject: Added jid_create_room_jid --- src/jid.c | 12 ++++++++++++ src/jid.h | 1 + tests/test_jid.c | 16 ++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/src/jid.c b/src/jid.c index 4eef9384..04c69636 100644 --- a/src/jid.c +++ b/src/jid.c @@ -20,6 +20,7 @@ * */ +#include #include #include @@ -98,6 +99,17 @@ jid_create(const gchar * const str) } } +Jid * +jid_create_room_jid(const char * const room, const char * const nick) +{ + Jid *result; + char *jid = create_full_room_jid(room, nick); + result = jid_create(jid); + free(jid); + + return result; +} + /* * Given a full room JID of the form * room@server/nick diff --git a/src/jid.h b/src/jid.h index 3b172025..5a34c02e 100644 --- a/src/jid.h +++ b/src/jid.h @@ -36,6 +36,7 @@ struct jid_t { typedef struct jid_t Jid; Jid * jid_create(const gchar * const str); +Jid * jid_create_room_jid(const char * const room, const char * const nick); gboolean jid_is_room(const char * const room_jid); char * create_full_room_jid(const char * const room, diff --git a/tests/test_jid.c b/tests/test_jid.c index c86054bd..99ae4f12 100644 --- a/tests/test_jid.c +++ b/tests/test_jid.c @@ -105,6 +105,20 @@ void create_jid_from_bare_returns_domainpart(void) assert_string_equals("mydomain", result->domainpart); } +void create_room_jid_returns_room(void) +{ + Jid *result = jid_create_room_jid("room@conference.domain.org", "myname"); + + assert_string_equals("room@conference.domain.org", result->barejid); +} + +void create_room_jid_returns_nick(void) +{ + Jid *result = jid_create_room_jid("room@conference.domain.org", "myname"); + + assert_string_equals("myname", result->resourcepart); +} + void register_jid_tests(void) { TEST_MODULE("jid tests"); @@ -125,4 +139,6 @@ void register_jid_tests(void) TEST(create_jid_from_bare_returns_bare); TEST(create_jid_from_bare_returns_localpart); TEST(create_jid_from_bare_returns_domainpart); + TEST(create_room_jid_returns_room); + TEST(create_room_jid_returns_nick); } -- cgit 1.4.1-2-gfad0