summary refs log blame commit diff stats
path: root/cmd/cetus-nasa/cetus-nasa.go
blob: d71c41d7ba61856f0d4a5310bcabaed36d3c3292 (plain) (tree)
an class="w"> = field->values->data; break; } curr_field = g_slist_next(curr_field); } assert_int_equal(length, 1); assert_string_equal(value, "a new value"); form_destroy(form); } void add_unique_value_adds_when_none(void** state) { DataForm* form = _new_form(); g_hash_table_insert(form->tag_to_var, strdup("tag1"), strdup("var1")); g_hash_table_insert(form->tag_to_var, strdup("tag2"), strdup("var2")); FormField* field1 = _new_field(); field1->var = strdup("var1"); field1->type_t = FIELD_JID_MULTI; form->fields = g_slist_append(form->fields, field1); FormField* field2 = _new_field(); field2->var = strdup("var2"); field2->type_t = FIELD_LIST_SINGLE; field2->values = g_slist_append(field2->values, strdup("value2")); form->fields = g_slist_append(form->fields, field2); gboolean ret = form_add_unique_value(form, "tag1", "me@server.com"); int length = 0; char* value = NULL; 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); value = field->values->data; break; } curr_field = g_slist_next(curr_field); } assert_true(ret); assert_int_equal(length, 1); assert_string_equal(value, "me@server.com"); form_destroy(form); } void add_unique_value_does_nothing_when_exists(void** state) { DataForm* form = _new_form(); g_hash_table_insert(form->tag_to_var, strdup("tag1"), strdup("var1")); g_hash_table_insert(form->tag_to_var, strdup("tag2"), strdup("var2")); FormField* field1 = _new_field(); field1->var = strdup("var1"); field1->type_t = FIELD_JID_MULTI; field1->values = g_slist_append(field1->values, strdup("me@server.com")); form->fields = g_slist_append(form->fields, field1); FormField* field2 = _new_field(); field2->var = strdup("var2"); field2->type_t = FIELD_LIST_SINGLE; field2->values = g_slist_append(field2->values, strdup("value2")); form->fields = g_slist_append(form->fields, field2); gboolean ret = form_add_unique_value(form, "tag1", "me@server.com"); int length = 0; char* value = NULL; 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); value = field->values->data; break; } curr_field = g_slist_next(curr_field); } assert_false(ret); assert_int_equal(length, 1); assert_string_equal(value, "me@server.com"); form_destroy(form); } void add_unique_value_adds_when_doesnt_exist(void** state) { DataForm* form = _new_form(); g_hash_table_insert(form->tag_to_var, strdup("tag1"), strdup("var1")); g_hash_table_insert(form->tag_to_var, strdup("tag2"), strdup("var2")); FormField* field1 = _new_field(); field1->var = strdup("var1"); field1->type_t = FIELD_JID_MULTI; field1->values = g_slist_append(field1->values, strdup("dolan@server.com")); field1->values = g_slist_append(field1->values, strdup("kieran@server.com")); field1->values = g_slist_append(field1->values, strdup("chi@server.com")); form->fields = g_slist_append(form->fields, field1); FormField* field2 = _new_field(); field2->var = strdup("var2"); field2->type_t = FIELD_LIST_SINGLE; field2->values = g_slist_append(field2->values, strdup("value2")); form->fields = g_slist_append(form->fields, field2); gboolean ret = form_add_unique_value(form, "tag1", "me@server.com"); int length = 0; int 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, "me@server.com") == 0) { count++; } curr_value = g_slist_next(curr_value); } break; } curr_field = g_slist_next(curr_field); } assert_true(ret); assert_int_equal(length, 4); assert_int_equal(count, 1); form_destroy(form); } void add_value_adds_when_none(void** state) { 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); form_add_value(form, "tag1", "somevalue"); int length = 0; char* value = NULL; 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); value = field->values->data; break; } curr_field = g_slist_next(curr_field); } assert_int_equal(length, 1); assert_string_equal(value, "somevalue"); form_destroy(form); } void add_value_adds_when_some(void** state) { 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("some text")); field1->values = g_slist_append(field1->values, strdup("some more text")); field1->values = g_slist_append(field1->values, strdup("yet some more text")); form->fields = g_slist_append(form->fields, field1); form_add_value(form, "tag1", "new value"); int num_values = 0; int new_value_count = 0; GSList* curr_field = form->fields; while (curr_field != NULL) { FormField* field = curr_field->data; if (g_strcmp0(field->var, "var1") == 0) { GSList* curr_value = field->values; while (curr_value != NULL) { num_values++; if (g_strcmp0(curr_value->data, "new value") == 0) { new_value_count++; } curr_value = g_slist_next(curr_value); } break; } curr_field = g_slist_next(curr_field); } assert_int_equal(num_values, 4); assert_int_equal(new_value_count, 1); form_destroy(form); } void add_value_adds_when_exists(void** state) { 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("some text")); field1->values = g_slist_append(field1->values, strdup("some more text")); field1->values = g_slist_append(field1->values, strdup("yet some more text")); field1->values = g_slist_append(field1->values, strdup("new value")); form->fields = g_slist_append(form->fields, field1); form_add_value(form, "tag1", "new value"); int num_values = 0; int new_value_count = 0; GSList* curr_field = form->fields; while (curr_field != NULL) { FormField* field = curr_field->data; if (g_strcmp0(field->var, "var1") == 0) { GSList* curr_value = field->values; while (curr_value != NULL) { num_values++; if (g_strcmp0(curr_value->data, "new value") == 0) { new_value_count++; } curr_value = g_slist_next(curr_value); } break; } curr_field = g_slist_next(curr_field); } assert_int_equal(num_values, 5); assert_int_equal(new_value_count, 2); form_destroy(form); } void remove_value_does_nothing_when_none(void** state) { 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) { 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_removes_when_one(void** state) { 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_removes_when_many(void** state) { 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; 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, "value2") == 0) { value_count++; } curr_value = g_slist_next(curr_value); } } curr_field = g_slist_next(curr_field); } assert_true(res); assert_int_equal(length, 3); assert_int_equal(value_count, 0); form_destroy(form); } void remove_text_multi_value_does_nothing_when_none(void** state) { 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_text_multi_value(form, "tag1", 3); 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_text_multi_value_does_nothing_when_doesnt_exist(void** state) { 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_text_multi_value(form, "tag1", 5); 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_text_multi_value_removes_when_one(void** state) { 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_text_multi_value(form, "tag1", 1); 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_text_multi_value_removes_when_many(void** state) { 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_text_multi_value(form, "tag1", 2); 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, "value2") == 0) { value_count++; } curr_value = g_slist_next(curr_value); } } curr_field = g_slist_next(curr_field); } assert_true(res); assert_int_equal(length, 3); assert_int_equal(value_count, 0); form_destroy(form); }