test/webdav_resource.c

Wed, 11 Feb 2026 16:11:53 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Wed, 11 Feb 2026 16:11:53 +0100
branch
dav-2
changeset 912
4a51f896015e
parent 911
73f5a1a6dcf1
permissions
-rw-r--r--

add test_dav_create_collection_webdav

902
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2026 Olaf Wintermann. All rights reserved.
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #include "webdav.h"
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 #include "webdav_resource.h"
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
32 #include <cx/buffer.h>
906
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
33 #include <cx/printf.h>
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
34
903
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
35 CX_TEST_SUBROUTINE(test_default_properties, DavResource *res) {
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
36 CX_TEST_ASSERT(res->contentlength > 0);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
37 CX_TEST_ASSERT(res->creationdate > 0);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
38 CX_TEST_ASSERT(res->lastmodified > 0);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
39 CX_TEST_ASSERT(res->exists);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
40 CX_TEST_ASSERT(res->contenttype);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
41 CX_TEST_ASSERT(!res->iscollection);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
42 CX_TEST_ASSERT(res->href);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
43 }
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
44
902
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 CX_TEST(test_dav_load_webdav) {
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 CX_TEST_DO {
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 DavSession *sn = get_test_webdav_session();
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 DavResource *res = dav_resource_new(sn, "/hello.txt");
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 CX_TEST_ASSERT(res);
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50 int ret = dav_load(res);
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 CX_TEST_ASSERT(ret == 0);
903
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
52 CX_TEST_CALL_SUBROUTINE(test_default_properties, res);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
53 dav_session_destroy(sn);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
54 }
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
55 }
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
56
908
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
57 CX_TEST(test_dav_load_content_webdav) {
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
58 CX_TEST_DO {
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
59 DavSession *sn = get_test_webdav_session();
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
60 CxBuffer *buf = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
61 DavResource *res = dav_resource_new(sn, "/hello.txt");
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
62 CX_TEST_ASSERT(res);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
63 int ret = dav_load(res);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
64 CX_TEST_ASSERT(!ret);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
65 ret = dav_get_content(res, buf, (dav_write_func)cxBufferWrite);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
66 CX_TEST_ASSERT(!ret);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
67 CX_TEST_ASSERT(!cx_strcmp(cx_strn(buf->space, buf->size), cx_str("Hello World!\n")));
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
68 dav_session_destroy(sn);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
69 cxBufferFree(buf);
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
70 }
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
71 }
69a2c7fe642c add test_dav_load_content_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 907
diff changeset
72
903
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
73 CX_TEST(test_dav_exists_webdav) {
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
74 CX_TEST_DO {
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
75 DavSession *sn = get_test_webdav_session();
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
76 DavResource *res = dav_resource_new(sn, "/hello.txt");
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
77 CX_TEST_ASSERT(res);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
78 int exists = dav_exists(res);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
79 CX_TEST_ASSERT(exists);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
80 CX_TEST_CALL_SUBROUTINE(test_default_properties, res);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
81 dav_session_destroy(sn);
902
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 }
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83 }
903
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
84
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
85 CX_TEST(test_dav_create_webdav) {
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
86 CX_TEST_DO {
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
87 DavSession *sn = get_test_webdav_session();
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
88 // test1: check if the resource exists and create it after that
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
89 DavResource *res = dav_resource_new(sn, "/test_create.txt");
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
90 CX_TEST_ASSERT(res);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
91 int exists = dav_exists(res); // the resource should not exist yet
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
92 CX_TEST_ASSERT(!exists);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
93 int ret = dav_create(res); // create the resource
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
94 CX_TEST_ASSERT(!ret);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
95 exists = dav_exists(res); // the resource should exist now
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
96 CX_TEST_ASSERT(exists);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
97 CX_TEST_ASSERT(res->lastmodified > 0); // some properties should be loaded by dav_exists()
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
98 CX_TEST_ASSERT(res->contenttype);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
99
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
100 // test2: create a resource without calling dav_exists first
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
101 DavResource *res2 = dav_resource_new(sn, "/test_create2.txt");
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
102 ret = dav_create(res2);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
103 CX_TEST_ASSERT(!ret);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
104 CX_TEST_ASSERT(dav_exists(res2));
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
105 CX_TEST_ASSERT(res2->lastmodified > 0);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
106 CX_TEST_ASSERT(res2->contenttype);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
107
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
108 dav_session_destroy(sn);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
109 }
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
110 }
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
111
912
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
112 CX_TEST(test_dav_create_collection_webdav) {
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
113 CX_TEST_DO {
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
114 DavSession *sn = get_test_webdav_session();
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
115
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
116 DavResource *col1 = dav_resource_new(sn, "/test_create_collection1");
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
117 col1->iscollection = TRUE;
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
118 CX_TEST_ASSERT(!dav_exists(col1)); // the resource should not exist yet
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
119 CX_TEST_ASSERT(!dav_create(col1)); // create the resource
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
120 CX_TEST_ASSERT(dav_exists(col1)); // the resource should exist now
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
121
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
122 DavResource *col2 = dav_resource_new(sn, col1->path);
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
123 CX_TEST_ASSERT(dav_exists(col2));
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
124 CX_TEST_ASSERT(col2->iscollection);
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
125
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
126 dav_session_destroy(sn);
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
127 }
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
128 }
4a51f896015e add test_dav_create_collection_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 911
diff changeset
129
903
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
130 CX_TEST(test_dav_store_content_webdav) {
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
131 CX_TEST_DO {
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
132 DavSession *sn = get_test_webdav_session();
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
133 DavResource *res = dav_resource_new(sn, "/test_store_content.txt");
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
134 cxstring content = cx_str("test_store_content test content\n");
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
135 dav_set_content_data(res, content.ptr, content.length);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
136 int ret = dav_store(res);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
137 CX_TEST_ASSERT(!ret);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
138 CX_TEST_ASSERT(!dav_load(res));
905
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
139 if(!test_session_is_encrypted()) {
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
140 CX_TEST_ASSERT(res->contentlength == content.length);
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
141 }
903
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
142 dav_session_destroy(sn);
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
143 }
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
144 }
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
145
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
146 CX_TEST(test_dav_store_stream_webdav) {
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
147 CX_TEST_DO {
905
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
148 FILE *f = fopen("test_dav_store_stream_webdav.txt", "w+");
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
149 cxstring line = cx_str("test_dav_store_stream_webdav test content\n");
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
150 for(int i=0;i<1000;i++) {
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
151 fwrite(line.ptr, 1, line.length, f);
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
152 }
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
153 fseek(f, 0, SEEK_SET);
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
154 size_t len = 1000 * line.length;
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
155
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
156 DavSession *sn = get_test_webdav_session();
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
157 DavResource *res = dav_resource_new(sn, "/test_store_file.txt");
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
158 dav_set_content(res, f, (dav_read_func)fread, (dav_seek_func)fseek);
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
159
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
160 int ret = dav_store(res);
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
161 CX_TEST_ASSERT(!ret);
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
162 CX_TEST_ASSERT(!dav_load(res));
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
163 if(!test_session_is_encrypted()) {
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
164 CX_TEST_ASSERT(res->contentlength == len);
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
165 }
905
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
166 dav_session_destroy(sn);
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
167 fclose(f);
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
168 }
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
169 }
906
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
170
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
171 CX_TEST(test_dav_store_load_webdav) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
172 CX_TEST_DO {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
173 CxBuffer *buf1 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
174 CxBuffer *buf2 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
175 CxBuffer *buf3 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
176
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
177 CxBuffer *resultBuf = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
178
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
179 for(int i=0;i<100;i++) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
180 cx_bprintf(buf1, "Test Content %d\n", i);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
181 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
182 for(int i=0;i<1234;i++) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
183 cx_bprintf(buf2, "%d Medium Buffer Content\n", i);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
184 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
185 for(int i=0;i<345678;i++) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
186 cx_bprintf(buf3, "%d Large Buffer Content %d\n", i, i*7);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
187 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
188
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
189 DavSession *sn = get_test_webdav_session();
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
190
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
191 // test buf1
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
192 buf1->pos = 0;
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
193 DavResource *res1 = dav_resource_new(sn, "/test_store_load1.txt");
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
194 dav_set_content(res1, buf1, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
195 int ret = dav_store(res1);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
196 CX_TEST_ASSERT(!ret);
907
119197afb22d fix test_dav_store_load_webdav in case encryption is enabled
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 906
diff changeset
197 ret = dav_load(res1);
119197afb22d fix test_dav_store_load_webdav in case encryption is enabled
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 906
diff changeset
198 CX_TEST_ASSERT(!ret);
906
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
199 ret = dav_get_content(res1, resultBuf, (dav_write_func)cxBufferWrite);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
200 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
201 CX_TEST_ASSERT(resultBuf->size == buf1->size);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
202 CX_TEST_ASSERT(!memcmp(resultBuf->space, buf1->space, buf1->size));
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
203 cxBufferReset(resultBuf);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
204
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
205 // test buf2
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
206 buf2->pos = 0;
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
207 DavResource *res2 = dav_resource_new(sn, "/test_store_load2.txt");
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
208 dav_set_content(res2, buf2, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
209 ret = dav_store(res2);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
210 CX_TEST_ASSERT(!ret);
907
119197afb22d fix test_dav_store_load_webdav in case encryption is enabled
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 906
diff changeset
211 ret = dav_load(res2);
119197afb22d fix test_dav_store_load_webdav in case encryption is enabled
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 906
diff changeset
212 CX_TEST_ASSERT(!ret);
906
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
213 ret = dav_get_content(res2, resultBuf, (dav_write_func)cxBufferWrite);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
214 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
215 CX_TEST_ASSERT(resultBuf->size == buf2->size);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
216 CX_TEST_ASSERT(!memcmp(resultBuf->space, buf2->space, buf2->size));
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
217 cxBufferReset(resultBuf);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
218
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
219 // test buf3
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
220 buf3->pos = 0;
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
221 DavResource *res3 = dav_resource_new(sn, "/test_store_load3.txt");
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
222 dav_set_content(res3, buf3, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
223 ret = dav_store(res3);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
224 CX_TEST_ASSERT(!ret);
907
119197afb22d fix test_dav_store_load_webdav in case encryption is enabled
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 906
diff changeset
225 ret = dav_load(res3);
119197afb22d fix test_dav_store_load_webdav in case encryption is enabled
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 906
diff changeset
226 CX_TEST_ASSERT(!ret);
906
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
227 ret = dav_get_content(res3, resultBuf, (dav_write_func)cxBufferWrite);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
228 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
229 CX_TEST_ASSERT(resultBuf->size == buf3->size);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
230 CX_TEST_ASSERT(!memcmp(resultBuf->space, buf3->space, buf3->size));
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
231 cxBufferReset(resultBuf);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
232
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
233 dav_session_destroy(sn);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
234 cxBufferFree(buf1);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
235 cxBufferFree(buf2);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
236 cxBufferFree(buf3);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
237 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
238 }
909
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
239
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
240 CX_TEST(test_dav_store_properties_webdav) {
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
241 CX_TEST_DO {
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
242 DavSession *sn = get_test_webdav_session();
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
243
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
244 DavResource *res1 = dav_resource_new(sn, "/test_store_properties1.txt");
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
245 int ret = dav_create(res1);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
246 CX_TEST_ASSERT(!ret);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
247
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
248 char *name1 = "testprop1";
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
249 char *name2 = "testprop2";
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
250 char *value1 = "test value 1";
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
251 char *value2 = "hello value 2";
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
252 dav_set_string_property_ns(res1, DAV_TEST_NS, name1, value1);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
253 dav_set_string_property_ns(res1, DAV_TEST_NS, name2, value2);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
254
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
255 ret = dav_store(res1);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
256 CX_TEST_ASSERT(!ret);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
257
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
258 DavResource *res2 = dav_resource_new(sn, res1->path);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
259 ret = dav_load(res2);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
260 CX_TEST_ASSERT(!ret);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
261
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
262 char *strprop1 = dav_get_string_property_ns(res2, DAV_TEST_NS, name1);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
263 char *strprop2 = dav_get_string_property_ns(res2, DAV_TEST_NS, name2);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
264
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
265 CX_TEST_ASSERT(strprop1);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
266 CX_TEST_ASSERT(strprop2);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
267 CX_TEST_ASSERT(!strcmp(strprop1, value1));
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
268 CX_TEST_ASSERT(!strcmp(strprop2, value2));
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
269
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
270 dav_session_destroy(sn);
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
271 }
fb79c5c6bd7f add test_dav_store_properties_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 908
diff changeset
272 }
910
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
273
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
274 CX_TEST(test_dav_delete_webdav) {
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
275 CX_TEST_DO {
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
276 DavSession *sn = get_test_webdav_session();
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
277
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
278 DavResource *res1 = dav_resource_new(sn, "/test_dav_delete_webdav1.txt");
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
279 int ret = dav_create(res1);
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
280 CX_TEST_ASSERT(!ret);
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
281
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
282 CX_TEST_ASSERT(dav_exists(res1));
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
283 CX_TEST_ASSERT(!dav_delete(res1));
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
284
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
285 DavResource *res2 = dav_resource_new(sn, res1->path);
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
286 CX_TEST_ASSERT(!dav_exists(res2));
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
287
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
288 dav_session_destroy(sn);
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
289 }
bedd3aabcd36 add test_dav_delete_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 909
diff changeset
290 }
911
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
291
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
292 CX_TEST(test_dav_copy_webdav) {
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
293 CX_TEST_DO {
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
294 DavSession *sn = get_test_webdav_session();
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
295
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
296 DavResource *res1 = dav_resource_new(sn, "/test_dav_copy_webdav.txt");
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
297 CX_TEST_ASSERT(!dav_create(res1));
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
298
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
299 cxstring content = cx_str("Copy Test Data");
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
300 dav_set_content_data(res1, content.ptr, content.length);
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
301 CX_TEST_ASSERT(!dav_store(res1));
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
302
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
303 DavResource *res2 = dav_resource_new(sn, "/test_dav_copy_webdav_dest.txt");
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
304 CX_TEST_ASSERT(!dav_exists(res2));
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
305
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
306 CX_TEST_ASSERT(!dav_copy(res1, res2->path));
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
307 CX_TEST_ASSERT(dav_exists(res2));
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
308 CX_TEST_ASSERT(!dav_load(res2));
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
309 // contentlength could be greater if encryption is enabled
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
310 CX_TEST_ASSERT(res2->contentlength >= content.length);
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
311
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
312 dav_session_destroy(sn);
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
313 }
73f5a1a6dcf1 add test_dav_copy_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 910
diff changeset
314 }

mercurial