1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Added tests for form_remove_value

This commit is contained in:
James Booth 2014-09-15 13:09:49 +01:00
parent d1ace3282c
commit ea24a7c4f6
3 changed files with 146 additions and 0 deletions

View File

@ -472,3 +472,141 @@ void add_value_adds_when_exists(void **state)
form_destroy(form);
}
void remove_value_does_nothing_when_none(void **state)
{
form_init_module();
DataForm *form = _new_form();
g_hash_table_insert(form->tag_to_var, strdup("tag1"), strdup("var1"));
FormField *field1 = _new_field();
field1->var = strdup("var1");
field1->type_t = FIELD_LIST_MULTI;
form->fields = g_slist_append(form->fields, field1);
gboolean res = form_remove_value(form, "tag1", "some value");
int length = -1;
GSList *curr_field = form->fields;
while (curr_field != NULL) {
FormField *field = curr_field->data;
if (g_strcmp0(field->var, "var1") == 0) {
length = g_slist_length(field->values);
}
curr_field = g_slist_next(curr_field);
}
assert_false(res);
assert_int_equal(length, 0);
form_destroy(form);
}
void remove_value_does_nothing_when_doesnt_exist(void **state)
{
form_init_module();
DataForm *form = _new_form();
g_hash_table_insert(form->tag_to_var, strdup("tag1"), strdup("var1"));
FormField *field1 = _new_field();
field1->var = strdup("var1");
field1->type_t = FIELD_LIST_MULTI;
field1->values = g_slist_append(field1->values, strdup("value1"));
field1->values = g_slist_append(field1->values, strdup("value2"));
field1->values = g_slist_append(field1->values, strdup("value3"));
field1->values = g_slist_append(field1->values, strdup("value4"));
form->fields = g_slist_append(form->fields, field1);
gboolean res = form_remove_value(form, "tag1", "value5");
int length = -1;
int value_count = 0;
GSList *curr_field = form->fields;
while (curr_field != NULL) {
FormField *field = curr_field->data;
if (g_strcmp0(field->var, "var1") == 0) {
length = g_slist_length(field->values);
GSList *curr_value = field->values;
while (curr_value != NULL) {
if (g_strcmp0(curr_value->data, "value5") == 0) {
value_count++;
}
curr_value = g_slist_next(curr_value);
}
}
curr_field = g_slist_next(curr_field);
}
assert_false(res);
assert_int_equal(length, 4);
assert_int_equal(value_count, 0);
form_destroy(form);
}
void remove_value_does_removes_when_one(void **state)
{
form_init_module();
DataForm *form = _new_form();
g_hash_table_insert(form->tag_to_var, strdup("tag1"), strdup("var1"));
FormField *field1 = _new_field();
field1->var = strdup("var1");
field1->type_t = FIELD_LIST_MULTI;
field1->values = g_slist_append(field1->values, strdup("value4"));
form->fields = g_slist_append(form->fields, field1);
gboolean res = form_remove_value(form, "tag1", "value4");
int length = -1;
GSList *curr_field = form->fields;
while (curr_field != NULL) {
FormField *field = curr_field->data;
if (g_strcmp0(field->var, "var1") == 0) {
length = g_slist_length(field->values);
}
curr_field = g_slist_next(curr_field);
}
assert_true(res);
assert_int_equal(length, 0);
form_destroy(form);
}
void remove_value_does_removes_when_many(void **state)
{
form_init_module();
DataForm *form = _new_form();
g_hash_table_insert(form->tag_to_var, strdup("tag1"), strdup("var1"));
FormField *field1 = _new_field();
field1->var = strdup("var1");
field1->type_t = FIELD_LIST_MULTI;
field1->values = g_slist_append(field1->values, strdup("value1"));
field1->values = g_slist_append(field1->values, strdup("value2"));
field1->values = g_slist_append(field1->values, strdup("value3"));
field1->values = g_slist_append(field1->values, strdup("value4"));
form->fields = g_slist_append(form->fields, field1);
gboolean res = form_remove_value(form, "tag1", "value2");
int length = -1;
GSList *curr_field = form->fields;
while (curr_field != NULL) {
FormField *field = curr_field->data;
if (g_strcmp0(field->var, "var1") == 0) {
length = g_slist_length(field->values);
}
curr_field = g_slist_next(curr_field);
}
assert_true(res);
assert_int_equal(length, 3);
form_destroy(form);
}

View File

@ -11,3 +11,7 @@ void add_unique_value_adds_when_doesnt_exist(void **state);
void add_value_adds_when_none(void **state);
void add_value_adds_when_some(void **state);
void add_value_adds_when_exists(void **state);
void remove_value_does_nothing_when_none(void **state);
void remove_value_does_nothing_when_doesnt_exist(void **state);
void remove_value_does_removes_when_one(void **state);
void remove_value_does_removes_when_many(void **state);

View File

@ -544,6 +544,10 @@ int main(int argc, char* argv[]) {
unit_test(add_value_adds_when_none),
unit_test(add_value_adds_when_some),
unit_test(add_value_adds_when_exists),
unit_test(remove_value_does_nothing_when_none),
unit_test(remove_value_does_nothing_when_doesnt_exist),
unit_test(remove_value_does_removes_when_one),
unit_test(remove_value_does_removes_when_many),
};
return run_tests(all_tests);