1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Added contact tests

This commit is contained in:
James Booth 2014-01-05 01:17:11 +00:00
parent 80acfdae9a
commit 5898da963a
3 changed files with 326 additions and 1 deletions

View File

@ -111,5 +111,297 @@ void contact_presence_offline(void **state)
assert_string_equal("offline", presence); assert_string_equal("offline", presence);
p_contact_free(contact); p_contact_free(contact);
}
void contact_presence_uses_highest_priority(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "both",
"is offline", FALSE);
Resource *resource10 = resource_new("resource10", RESOURCE_ONLINE, NULL, 10, NULL);
Resource *resource20 = resource_new("resource20", RESOURCE_CHAT, NULL, 20, NULL);
Resource *resource30 = resource_new("resource30", RESOURCE_AWAY, NULL, 30, NULL);
Resource *resource1 = resource_new("resource1", RESOURCE_XA, NULL, 1, NULL);
Resource *resource2 = resource_new("resource2", RESOURCE_DND, NULL, 2, NULL);
p_contact_set_presence(contact, resource10);
p_contact_set_presence(contact, resource20);
p_contact_set_presence(contact, resource30);
p_contact_set_presence(contact, resource1);
p_contact_set_presence(contact, resource2);
const char *presence = p_contact_presence(contact);
assert_string_equal("away", presence);
p_contact_free(contact);
}
void contact_presence_chat_when_same_prioroty(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "both",
"is offline", FALSE);
Resource *resource_online = resource_new("resource_online", RESOURCE_ONLINE, NULL, 10, NULL);
Resource *resource_chat = resource_new("resource_chat", RESOURCE_CHAT, NULL, 10, NULL);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 10, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_online);
p_contact_set_presence(contact, resource_chat);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
const char *presence = p_contact_presence(contact);
assert_string_equal("chat", presence);
p_contact_free(contact);
}
void contact_presence_online_when_same_prioroty(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "both",
"is offline", FALSE);
Resource *resource_online = resource_new("resource_online", RESOURCE_ONLINE, NULL, 10, NULL);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 10, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_online);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
const char *presence = p_contact_presence(contact);
assert_string_equal("online", presence);
p_contact_free(contact);
}
void contact_presence_away_when_same_prioroty(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "both",
"is offline", FALSE);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 10, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
const char *presence = p_contact_presence(contact);
assert_string_equal("away", presence);
p_contact_free(contact);
}
void contact_presence_xa_when_same_prioroty(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "both",
"is offline", FALSE);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
const char *presence = p_contact_presence(contact);
assert_string_equal("xa", presence);
p_contact_free(contact);
}
void contact_presence_dnd(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "both",
"is offline", FALSE);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_dnd);
const char *presence = p_contact_presence(contact);
assert_string_equal("dnd", presence);
p_contact_free(contact);
}
void contact_subscribed_when_to(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "to",
"is offline", FALSE);
gboolean result = p_contact_subscribed(contact);
assert_true(result);
p_contact_free(contact);
}
void contact_subscribed_when_both(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "both",
"is offline", FALSE);
gboolean result = p_contact_subscribed(contact);
assert_true(result);
p_contact_free(contact);
}
void contact_not_subscribed_when_from(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, "from",
"is offline", FALSE);
gboolean result = p_contact_subscribed(contact);
assert_false(result);
p_contact_free(contact);
}
void contact_not_subscribed_when_no_subscription_value(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, NULL,
"is offline", FALSE);
gboolean result = p_contact_subscribed(contact);
assert_false(result);
p_contact_free(contact);
}
void contact_not_available(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, NULL,
"is offline", FALSE);
gboolean result = p_contact_is_available(contact);
assert_false(result);
p_contact_free(contact);
}
void contact_not_available_when_highest_priority_away(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, NULL,
"is offline", FALSE);
Resource *resource_online = resource_new("resource_online", RESOURCE_ONLINE, NULL, 10, NULL);
Resource *resource_chat = resource_new("resource_chat", RESOURCE_CHAT, NULL, 10, NULL);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 20, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_online);
p_contact_set_presence(contact, resource_chat);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
gboolean result = p_contact_is_available(contact);
assert_false(result);
p_contact_free(contact);
}
void contact_not_available_when_highest_priority_xa(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, NULL,
"is offline", FALSE);
Resource *resource_online = resource_new("resource_online", RESOURCE_ONLINE, NULL, 10, NULL);
Resource *resource_chat = resource_new("resource_chat", RESOURCE_CHAT, NULL, 10, NULL);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 10, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 20, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_online);
p_contact_set_presence(contact, resource_chat);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
gboolean result = p_contact_is_available(contact);
assert_false(result);
p_contact_free(contact);
}
void contact_not_available_when_highest_priority_dnd(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, NULL,
"is offline", FALSE);
Resource *resource_online = resource_new("resource_online", RESOURCE_ONLINE, NULL, 10, NULL);
Resource *resource_chat = resource_new("resource_chat", RESOURCE_CHAT, NULL, 10, NULL);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 10, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 20, NULL);
p_contact_set_presence(contact, resource_online);
p_contact_set_presence(contact, resource_chat);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
gboolean result = p_contact_is_available(contact);
assert_false(result);
p_contact_free(contact);
}
void contact_available_when_highest_priority_online(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, NULL,
"is offline", FALSE);
Resource *resource_online = resource_new("resource_online", RESOURCE_ONLINE, NULL, 20, NULL);
Resource *resource_chat = resource_new("resource_chat", RESOURCE_CHAT, NULL, 10, NULL);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 10, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_online);
p_contact_set_presence(contact, resource_chat);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
gboolean result = p_contact_is_available(contact);
assert_true(result);
p_contact_free(contact);
}
void contact_available_when_highest_priority_chat(void **state)
{
PContact contact = p_contact_new("bob@server.com", "bob", NULL, NULL,
"is offline", FALSE);
Resource *resource_online = resource_new("resource_online", RESOURCE_ONLINE, NULL, 10, NULL);
Resource *resource_chat = resource_new("resource_chat", RESOURCE_CHAT, NULL, 20, NULL);
Resource *resource_away = resource_new("resource_away", RESOURCE_AWAY, NULL, 10, NULL);
Resource *resource_xa = resource_new("resource_xa", RESOURCE_XA, NULL, 10, NULL);
Resource *resource_dnd = resource_new("resource_dnd", RESOURCE_DND, NULL, 10, NULL);
p_contact_set_presence(contact, resource_online);
p_contact_set_presence(contact, resource_chat);
p_contact_set_presence(contact, resource_away);
p_contact_set_presence(contact, resource_xa);
p_contact_set_presence(contact, resource_dnd);
gboolean result = p_contact_is_available(contact);
assert_true(result);
p_contact_free(contact);
} }

View File

@ -6,3 +6,19 @@ void contact_string_when_name_exists(void **state);
void contact_string_when_name_not_exists(void **state); void contact_string_when_name_not_exists(void **state);
void contact_string_when_default_resource(void **state); void contact_string_when_default_resource(void **state);
void contact_presence_offline(void **state); void contact_presence_offline(void **state);
void contact_presence_uses_highest_priority(void **state);
void contact_presence_chat_when_same_prioroty(void **state);
void contact_presence_online_when_same_prioroty(void **state);
void contact_presence_away_when_same_prioroty(void **state);
void contact_presence_xa_when_same_prioroty(void **state);
void contact_presence_dnd(void **state);
void contact_subscribed_when_to(void **state);
void contact_subscribed_when_both(void **state);
void contact_not_subscribed_when_from(void **state);
void contact_not_subscribed_when_no_subscription_value(void **state);
void contact_not_available(void **state);
void contact_not_available_when_highest_priority_away(void **state);
void contact_not_available_when_highest_priority_xa(void **state);
void contact_not_available_when_highest_priority_dnd(void **state);
void contact_available_when_highest_priority_online(void **state);
void contact_available_when_highest_priority_chat(void **state);

View File

@ -266,6 +266,23 @@ int main(int argc, char* argv[]) {
unit_test(contact_string_when_name_not_exists), unit_test(contact_string_when_name_not_exists),
unit_test(contact_string_when_default_resource), unit_test(contact_string_when_default_resource),
unit_test(contact_presence_offline), unit_test(contact_presence_offline),
unit_test(contact_presence_uses_highest_priority),
unit_test(contact_presence_chat_when_same_prioroty),
unit_test(contact_presence_online_when_same_prioroty),
unit_test(contact_presence_away_when_same_prioroty),
unit_test(contact_presence_xa_when_same_prioroty),
unit_test(contact_presence_dnd),
unit_test(contact_subscribed_when_to),
unit_test(contact_subscribed_when_both),
unit_test(contact_not_subscribed_when_from),
unit_test(contact_not_subscribed_when_no_subscription_value),
unit_test(contact_not_available),
unit_test(contact_not_available_when_highest_priority_away),
unit_test(contact_not_available_when_highest_priority_xa),
unit_test(contact_not_available_when_highest_priority_dnd),
unit_test(contact_available_when_highest_priority_online),
unit_test(contact_available_when_highest_priority_chat),
}; };
return run_tests(tests); return run_tests(tests);
} }