mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-29 20:56:21 +00:00
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);
|
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*
|
||||||
jid_create_from_bare_and_resource(const gchar* const barejid, const gchar* const resource)
|
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);
|
Jid* jid_create(const gchar* const str);
|
||||||
gboolean jid_is_valid(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);
|
Jid* jid_create_from_bare_and_resource(const gchar* const barejid, const gchar* const resource);
|
||||||
void jid_destroy(Jid* jid);
|
void jid_destroy(Jid* jid);
|
||||||
void jid_ref(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_empty_parts),
|
||||||
cmocka_unit_test(jid_create__returns__null_from_multiple_at_in_bare),
|
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_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__true_for_valid_jid),
|
||||||
cmocka_unit_test(jid_is_valid__is__false_for_invalid_jid),
|
cmocka_unit_test(jid_is_valid__is__false_for_invalid_jid),
|
||||||
cmocka_unit_test(jid_is_valid__is__false_for_null),
|
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);
|
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
|
void
|
||||||
jid_is_valid__is__true_for_valid_jid(void** state)
|
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_empty_parts(void** state);
|
||||||
void jid_create__returns__null_from_multiple_at_in_bare(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_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__true_for_valid_jid(void** state);
|
||||||
void jid_is_valid__is__false_for_invalid_jid(void** state);
|
void jid_is_valid__is__false_for_invalid_jid(void** state);
|
||||||
void jid_is_valid__is__false_for_null(void** state);
|
void jid_is_valid__is__false_for_null(void** state);
|
||||||
|
|||||||
Reference in New Issue
Block a user