--- a/test/webdav_resource.c Mon Feb 09 19:10:37 2026 +0100 +++ b/test/webdav_resource.c Tue Feb 10 20:41:15 2026 +0100 @@ -270,3 +270,27 @@ dav_session_destroy(sn); } } + +CX_TEST(test_dav_copy_webdav) { + CX_TEST_DO { + DavSession *sn = get_test_webdav_session(); + + DavResource *res1 = dav_resource_new(sn, "/test_dav_copy_webdav.txt"); + CX_TEST_ASSERT(!dav_create(res1)); + + cxstring content = cx_str("Copy Test Data"); + dav_set_content_data(res1, content.ptr, content.length); + CX_TEST_ASSERT(!dav_store(res1)); + + DavResource *res2 = dav_resource_new(sn, "/test_dav_copy_webdav_dest.txt"); + CX_TEST_ASSERT(!dav_exists(res2)); + + CX_TEST_ASSERT(!dav_copy(res1, res2->path)); + CX_TEST_ASSERT(dav_exists(res2)); + CX_TEST_ASSERT(!dav_load(res2)); + // contentlength could be greater if encryption is enabled + CX_TEST_ASSERT(res2->contentlength >= content.length); + + dav_session_destroy(sn); + } +}