# HG changeset patch # User Olaf Wintermann # Date 1579284499 -3600 # Node ID c0afce708b1dd2f59288745de8ffc33d7e2b4497 # Parent 3c23855f7b4617bd5d7d1e973039017dee979ef1 add tests for some webdav plist util functions diff -r 3c23855f7b46 -r c0afce708b1d src/server/test/main.c --- a/src/server/test/main.c Fri Jan 17 17:42:10 2020 +0100 +++ b/src/server/test/main.c Fri Jan 17 19:08:19 2020 +0100 @@ -74,6 +74,8 @@ ucx_test_register(suite, test_wsxml_get_required_namespaces); // webdav tests + ucx_test_register(suite, test_webdav_plist_add); + ucx_test_register(suite, test_webdav_plist_size); ucx_test_register(suite, test_propfind_parse); ucx_test_register(suite, test_proppatch_parse); ucx_test_register(suite, test_lock_parse); diff -r 3c23855f7b46 -r c0afce708b1d src/server/test/webdav.c --- a/src/server/test/webdav.c Fri Jan 17 17:42:10 2020 +0100 +++ b/src/server/test/webdav.c Fri Jan 17 19:08:19 2020 +0100 @@ -216,6 +216,77 @@ response); } + +UCX_TEST(test_webdav_plist_add) { + Session *sn = testutil_session(); + + UCX_TEST_BEGIN; + + WebdavPList *begin = NULL; + WebdavPList *end = NULL; + + WebdavProperty p1, p2, p3; + ZERO(&p1, sizeof(WebdavProperty)); + ZERO(&p2, sizeof(WebdavProperty)); + ZERO(&p3, sizeof(WebdavProperty)); + int r; + + r = webdav_plist_add(sn->pool, &begin, &end, &p1); + + UCX_TEST_ASSERT(r == 0, "add 1 failed"); + UCX_TEST_ASSERT(begin && end, "ptrs are NULL"); + UCX_TEST_ASSERT(begin == end, "begin != end"); + UCX_TEST_ASSERT(begin->prev == NULL, "begin->prev not NULL"); + UCX_TEST_ASSERT(begin->next == NULL, "begin->next not NULL"); + + r = webdav_plist_add(sn->pool, &begin, &end, &p2); + + UCX_TEST_ASSERT(r == 0, "add 2 failed"); + UCX_TEST_ASSERT(begin && end, "add2: ptrs are NULL"); + UCX_TEST_ASSERT(begin->next, "begin->next is NULL"); + UCX_TEST_ASSERT(begin->next == end, "begin->next != end"); + UCX_TEST_ASSERT(end->prev = begin, "end->prev != begin"); + UCX_TEST_ASSERT(begin->prev == NULL, "add2: begin->prev not NULL"); + UCX_TEST_ASSERT(end->next == NULL, "add2: end->next not NULL"); + + r = webdav_plist_add(sn->pool, &begin, &end, &p3); + + UCX_TEST_ASSERT(r == 0, "add 3 failed"); + UCX_TEST_ASSERT(begin && end, "add3: ptrs are NULL"); + UCX_TEST_ASSERT(begin->next == end->prev, "begin->next != end->prev"); + + UCX_TEST_END; + + testutil_destroy_session(sn); +} + +UCX_TEST(test_webdav_plist_size) { + Session *sn = testutil_session(); + + UCX_TEST_BEGIN; + + WebdavPList *begin = NULL; + WebdavPList *end = NULL; + + WebdavProperty p1, p2, p3; + ZERO(&p1, sizeof(WebdavProperty)); + ZERO(&p2, sizeof(WebdavProperty)); + ZERO(&p3, sizeof(WebdavProperty)); + int r; + + UCX_TEST_ASSERT(webdav_plist_size(begin) == 0, "size != 0"); + r = webdav_plist_add(sn->pool, &begin, &end, &p1); + UCX_TEST_ASSERT(webdav_plist_size(begin) == 1, "size != 1"); + r = webdav_plist_add(sn->pool, &begin, &end, &p2); + UCX_TEST_ASSERT(webdav_plist_size(begin) == 2, "size != 2"); + r = webdav_plist_add(sn->pool, &begin, &end, &p3); + UCX_TEST_ASSERT(webdav_plist_size(begin) == 3, "size != 3"); + + UCX_TEST_END; + + testutil_destroy_session(sn); +} + UCX_TEST(test_propfind_parse) { Session *sn = testutil_session(); Request *rq = testutil_request(sn->pool, "PROPFIND", "/"); diff -r 3c23855f7b46 -r c0afce708b1d src/server/test/webdav.h --- a/src/server/test/webdav.h Fri Jan 17 17:42:10 2020 +0100 +++ b/src/server/test/webdav.h Fri Jan 17 19:08:19 2020 +0100 @@ -38,6 +38,9 @@ extern "C" { #endif +UCX_TEST(test_webdav_plist_add); +UCX_TEST(test_webdav_plist_size); + UCX_TEST(test_propfind_parse); UCX_TEST(test_proppatch_parse); UCX_TEST(test_lock_parse);