add webdav store/load test dav-2

Thu, 29 Jan 2026 21:43:12 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Thu, 29 Jan 2026 21:43:12 +0100
branch
dav-2
changeset 906
c3d91432de2c
parent 905
bc4238f9abdb
child 907
119197afb22d

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

mercurial