feat: Add jid_is_valid_user_jid() to check for valid user JIDs
This one will need a localpart as well. It should be used when we want to message a user for example. While jid_is_valid() also returns TRUE for domain/server JIDs.
This commit is contained in:
@@ -152,6 +152,13 @@ jid_is_valid(const gchar* const str)
|
||||
return (jid != NULL);
|
||||
}
|
||||
|
||||
gboolean
|
||||
jid_is_valid_user_jid(const gchar* const str)
|
||||
{
|
||||
auto_jid Jid* jid = jid_create(str);
|
||||
return (jid != NULL && jid->localpart != NULL);
|
||||
}
|
||||
|
||||
Jid*
|
||||
jid_create_from_bare_and_resource(const gchar* const barejid, const gchar* const resource)
|
||||
{
|
||||
|
||||
@@ -53,6 +53,7 @@ typedef struct jid_t Jid;
|
||||
|
||||
Jid* jid_create(const gchar* const str);
|
||||
gboolean jid_is_valid(const gchar* const str);
|
||||
gboolean jid_is_valid_user_jid(const gchar* const str);
|
||||
Jid* jid_create_from_bare_and_resource(const gchar* const barejid, const gchar* const resource);
|
||||
void jid_destroy(Jid* jid);
|
||||
void jid_ref(Jid* jid);
|
||||
|
||||
@@ -154,6 +154,9 @@ main(int argc, char* argv[])
|
||||
cmocka_unit_test(jid_create__returns__null_from_empty_parts),
|
||||
cmocka_unit_test(jid_create__returns__null_from_multiple_at_in_bare),
|
||||
cmocka_unit_test(jid_create__returns__correct_parts_with_at_in_resource_only),
|
||||
cmocka_unit_test(jid_is_valid_user_jid__is__true_for_valid_user_jid),
|
||||
cmocka_unit_test(jid_is_valid_user_jid__is__false_for_domain_jid),
|
||||
cmocka_unit_test(jid_is_valid_user_jid__is__false_for_invalid_jid),
|
||||
cmocka_unit_test(jid_is_valid__is__true_for_valid_jid),
|
||||
cmocka_unit_test(jid_is_valid__is__false_for_invalid_jid),
|
||||
cmocka_unit_test(jid_is_valid__is__false_for_null),
|
||||
|
||||
@@ -306,6 +306,29 @@ jid_create__returns__correct_parts_with_at_in_resource_only(void** state)
|
||||
jid_destroy(result);
|
||||
}
|
||||
|
||||
void
|
||||
jid_is_valid_user_jid__is__true_for_valid_user_jid(void** state)
|
||||
{
|
||||
assert_true(jid_is_valid_user_jid("myuser@mydomain/laptop"));
|
||||
assert_true(jid_is_valid_user_jid("myuser@mydomain"));
|
||||
}
|
||||
|
||||
void
|
||||
jid_is_valid_user_jid__is__false_for_domain_jid(void** state)
|
||||
{
|
||||
assert_false(jid_is_valid_user_jid("mydomain/laptop"));
|
||||
assert_false(jid_is_valid_user_jid("mydomain"));
|
||||
}
|
||||
|
||||
void
|
||||
jid_is_valid_user_jid__is__false_for_invalid_jid(void** state)
|
||||
{
|
||||
assert_false(jid_is_valid_user_jid("@mydomain"));
|
||||
assert_false(jid_is_valid_user_jid("/laptop"));
|
||||
assert_false(jid_is_valid_user_jid(NULL));
|
||||
assert_false(jid_is_valid_user_jid(""));
|
||||
}
|
||||
|
||||
void
|
||||
jid_is_valid__is__true_for_valid_jid(void** state)
|
||||
{
|
||||
|
||||
@@ -30,6 +30,9 @@ void jid_create__returns__null_from_invalid_localpart_chars(void** state);
|
||||
void jid_create__returns__null_from_empty_parts(void** state);
|
||||
void jid_create__returns__null_from_multiple_at_in_bare(void** state);
|
||||
void jid_create__returns__correct_parts_with_at_in_resource_only(void** state);
|
||||
void jid_is_valid_user_jid__is__true_for_valid_user_jid(void** state);
|
||||
void jid_is_valid_user_jid__is__false_for_domain_jid(void** state);
|
||||
void jid_is_valid_user_jid__is__false_for_invalid_jid(void** state);
|
||||
void jid_is_valid__is__true_for_valid_jid(void** state);
|
||||
void jid_is_valid__is__false_for_invalid_jid(void** state);
|
||||
void jid_is_valid__is__false_for_null(void** state);
|
||||
|
||||
Reference in New Issue
Block a user