#include "support.h" #include #include "formats/vformats-xml/vformat.c" #include "formats/vformats-xml/xmlformat-common.c" #include "formats/vformats-xml/xmlformat-vcard.c" START_TEST (merger_new) { char *testbed = setup_testbed("merger"); OSyncError *error = NULL; OSyncCapabilities *capabilities = osync_capabilities_new(&error); fail_unless(capabilities != NULL, NULL); fail_unless(error == NULL, NULL); OSyncMerger *merger = osync_merger_new(capabilities, &error); fail_unless(merger != NULL, NULL); fail_unless(error == NULL, NULL); osync_merger_ref(merger); osync_merger_unref(merger); osync_merger_unref(merger); destroy_testbed(testbed); } END_TEST START_TEST (merger_merge) { char *testbed = setup_testbed("merger"); char *buffer; unsigned int size; OSyncError *error = NULL; OSyncXMLFormat *xmlformat, *xmlformat_entire; OSyncCapabilities *capabilities; fail_unless(osync_file_read("contact.xml", &buffer, &size, &error), NULL); xmlformat = osync_xmlformat_parse(buffer, size, &error); fail_unless(xmlformat != NULL, NULL); fail_unless(error == NULL, NULL); g_free(buffer); osync_xmlformat_sort(xmlformat); fail_unless(osync_file_read("contact-full.xml", &buffer, &size, &error), NULL); xmlformat_entire = osync_xmlformat_parse(buffer, size, &error); fail_unless(xmlformat_entire != NULL, NULL); fail_unless(error == NULL, NULL); g_free(buffer); osync_xmlformat_sort(xmlformat_entire); fail_unless(osync_file_read("capabilities.xml", &buffer, &size, &error), NULL); capabilities = osync_capabilities_parse(buffer, size, &error); fail_unless(capabilities != NULL, NULL); fail_unless(error == NULL, NULL); g_free(buffer); osync_capabilities_sort(capabilities); OSyncMerger *merger = osync_merger_new(capabilities, &error); fail_unless(merger != NULL, NULL); fail_unless(error == NULL, NULL); osync_merger_merge(merger, xmlformat, xmlformat_entire); osync_merger_unref(merger); osync_capabilities_unref(capabilities); osync_xmlformat_unref(xmlformat); osync_xmlformat_unref(xmlformat_entire); destroy_testbed(testbed); } END_TEST START_TEST (merger_demerge) { char *testbed = setup_testbed("merger"); char *buffer; unsigned int size; OSyncError *error = NULL; OSyncXMLFormat *xmlformat, *xmlformat_entire; OSyncCapabilities *capabilities; fail_unless(osync_file_read("contact.xml", &buffer, &size, &error), NULL); xmlformat = osync_xmlformat_parse(buffer, size, &error); fail_unless(xmlformat != NULL, NULL); fail_unless(error == NULL, NULL); g_free(buffer); osync_xmlformat_sort(xmlformat); fail_unless(osync_file_read("contact-full.xml", &buffer, &size, &error), NULL); xmlformat_entire = osync_xmlformat_parse(buffer, size, &error); fail_unless(xmlformat_entire != NULL, NULL); fail_unless(error == NULL, NULL); g_free(buffer); osync_xmlformat_sort(xmlformat_entire); fail_unless(osync_file_read("capabilities.xml", &buffer, &size, &error), NULL); capabilities = osync_capabilities_parse(buffer, size, &error); fail_unless(capabilities != NULL, NULL); fail_unless(error == NULL, NULL); //printf("\n%s", buffer); g_free(buffer); osync_capabilities_sort(capabilities); //osync_xmlformat_assemble(xmlformat, &buffer, &size); printf("\n%s", buffer); g_free(buffer); //osync_xmlformat_assemble(xmlformat_entire, &buffer, &size); printf("\n%s", buffer); g_free(buffer); OSyncMerger *merger = osync_merger_new(capabilities, &error); fail_unless(merger != NULL, NULL); fail_unless(error == NULL, NULL); osync_merger_merge(merger, xmlformat, xmlformat_entire); //osync_xmlformat_assemble(xmlformat, &buffer, &size); printf("\nMERGED:\n%s", buffer); g_free(buffer); osync_merger_demerge(merger, xmlformat); //osync_xmlformat_assemble(xmlformat, &buffer, &size); printf("\nDEMERGED:\n%s", buffer); g_free(buffer); osync_merger_unref(merger); osync_capabilities_unref(capabilities); osync_xmlformat_unref(xmlformat); osync_xmlformat_unref(xmlformat_entire); destroy_testbed(testbed); } END_TEST START_TEST (conv_vcard) { char *testbed = setup_testbed("vcards"); char *buffer; unsigned int size; osync_bool ret, free_input; OSyncError *error = NULL; char *xmlformat = NULL; // (OSyncXMLFormat*) fail_unless(osync_file_read( "evolution2/evo2-full1.vcf", &buffer, &size, &error), NULL); ret = conv_vcard_to_xmlformat(buffer, size, &xmlformat, &size, &free_input, "VCARD_EXTENSION=Evolution", &error); fail_unless(ret == TRUE, NULL); fail_unless(error == NULL, NULL); if(free_input) g_free(buffer); ret = conv_xmlformat_to_vcard(xmlformat, size, &buffer, &size, &free_input, "VCARD_EXTENSION=Evolution", &error, VFORMAT_CARD_30); fail_unless(ret == TRUE, NULL); fail_unless(error == NULL, NULL); //printf("%s", buffer); if(free_input) g_free(buffer); destroy_testbed(testbed); } END_TEST Suite *filter_suite(void) { Suite *s = suite_create("Merger"); create_case(s, "merger_new", merger_new); create_case(s, "merger_merge", merger_merge); create_case(s, "merger_demerge", merger_demerge); create_case(s, "conv_vcard", conv_vcard); return s; } int main(void) { int nf; Suite *s = filter_suite(); SRunner *sr; sr = srunner_create(s); srunner_run_all(sr, CK_NORMAL); nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; }