Thu, 29 Jan 2026 21:43:12 +0100
add webdav store/load test
| test/main.c | file | annotate | diff | comparison | revisions | |
| test/webdav_resource.c | file | annotate | diff | comparison | revisions | |
| test/webdav_resource.h | file | annotate | diff | comparison | revisions |
--- a/test/main.c Wed Jan 28 19:58:08 2026 +0100 +++ b/test/main.c Thu Jan 29 21:43:12 2026 +0100 @@ -90,6 +90,7 @@ cx_test_register(suite_webdav, test_dav_create_webdav); cx_test_register(suite_webdav, test_dav_store_content_webdav); cx_test_register(suite_webdav, test_dav_store_stream_webdav); + cx_test_register(suite_webdav, test_dav_store_load_webdav); } CxTestSuite* suite_webdav_enc = cx_test_suite_new("libidav webdav encryption"); @@ -100,6 +101,7 @@ cx_test_register(suite_webdav_enc, test_dav_create_webdav); cx_test_register(suite_webdav_enc, test_dav_store_content_webdav); cx_test_register(suite_webdav_enc, test_dav_store_stream_webdav); + //cx_test_register(suite_webdav_enc, test_dav_store_load_webdav); } cx_test_run_stdout(suite);
--- a/test/webdav_resource.c Wed Jan 28 19:58:08 2026 +0100 +++ b/test/webdav_resource.c Thu Jan 29 21:43:12 2026 +0100 @@ -30,6 +30,7 @@ #include "webdav_resource.h" #include <cx/buffer.h> +#include <cx/printf.h> CX_TEST_SUBROUTINE(test_default_properties, DavResource *res) { CX_TEST_ASSERT(res->contentlength > 0); @@ -132,3 +133,66 @@ fclose(f); } } + +CX_TEST(test_dav_store_load_webdav) { + CX_TEST_DO { + CxBuffer *buf1 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS); + CxBuffer *buf2 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS); + CxBuffer *buf3 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS); + + CxBuffer *resultBuf = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS); + + for(int i=0;i<100;i++) { + cx_bprintf(buf1, "Test Content %d\n", i); + } + for(int i=0;i<1234;i++) { + cx_bprintf(buf2, "%d Medium Buffer Content\n", i); + } + for(int i=0;i<345678;i++) { + cx_bprintf(buf3, "%d Large Buffer Content %d\n", i, i*7); + } + + DavSession *sn = get_test_webdav_session(); + + // test buf1 + buf1->pos = 0; + DavResource *res1 = dav_resource_new(sn, "/test_store_load1.txt"); + dav_set_content(res1, buf1, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek); + int ret = dav_store(res1); + CX_TEST_ASSERT(!ret); + ret = dav_get_content(res1, resultBuf, (dav_write_func)cxBufferWrite); + CX_TEST_ASSERT(!ret); + CX_TEST_ASSERT(resultBuf->size == buf1->size); + CX_TEST_ASSERT(!memcmp(resultBuf->space, buf1->space, buf1->size)); + cxBufferReset(resultBuf); + + // test buf2 + buf2->pos = 0; + DavResource *res2 = dav_resource_new(sn, "/test_store_load2.txt"); + dav_set_content(res2, buf2, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek); + ret = dav_store(res2); + CX_TEST_ASSERT(!ret); + ret = dav_get_content(res2, resultBuf, (dav_write_func)cxBufferWrite); + CX_TEST_ASSERT(!ret); + CX_TEST_ASSERT(resultBuf->size == buf2->size); + CX_TEST_ASSERT(!memcmp(resultBuf->space, buf2->space, buf2->size)); + cxBufferReset(resultBuf); + + // test buf3 + buf3->pos = 0; + DavResource *res3 = dav_resource_new(sn, "/test_store_load3.txt"); + dav_set_content(res3, buf3, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek); + ret = dav_store(res3); + CX_TEST_ASSERT(!ret); + ret = dav_get_content(res3, resultBuf, (dav_write_func)cxBufferWrite); + CX_TEST_ASSERT(!ret); + CX_TEST_ASSERT(resultBuf->size == buf3->size); + CX_TEST_ASSERT(!memcmp(resultBuf->space, buf3->space, buf3->size)); + cxBufferReset(resultBuf); + + dav_session_destroy(sn); + cxBufferFree(buf1); + cxBufferFree(buf2); + cxBufferFree(buf3); + } +}
--- a/test/webdav_resource.h Wed Jan 28 19:58:08 2026 +0100 +++ b/test/webdav_resource.h Thu Jan 29 21:43:12 2026 +0100 @@ -40,6 +40,7 @@ CX_TEST(test_dav_create_webdav); CX_TEST(test_dav_store_content_webdav); CX_TEST(test_dav_store_stream_webdav); +CX_TEST(test_dav_store_load_webdav); #ifdef __cplusplus