test/webdav_resource.c

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
permissions
-rw-r--r--

add webdav store/load test

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
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
57 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
58 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
59 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
60 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
61 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
62 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
63 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
64 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
65 dav_session_destroy(sn);
902
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 }
06fa328989ee integrate wsgidav into test suite
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 }
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
68
457faa53fd7e add tests for dav_exists, dav_create and dav_set_content/dav_store
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 902
diff changeset
69 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
70 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
71 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
72 // 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
73 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
74 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
75 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
76 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
77 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
78 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
79 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
80 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
81 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
82 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
83
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 // 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
85 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
86 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
87 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
88 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
89 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
90 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
91
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 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
93 }
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 }
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
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(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
97 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
98 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
99 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
100 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
101 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
102 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
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_load(res));
905
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
105 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
106 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
107 }
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
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 }
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
111
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
112 CX_TEST(test_dav_store_stream_webdav) {
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
113 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
114 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
115 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
116 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
117 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
118 }
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
119 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
120 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
121
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
122 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
123 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
124 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
125
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
126 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
127 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
128 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
129 if(!test_session_is_encrypted()) {
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
130 CX_TEST_ASSERT(res->contentlength == len);
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
131 }
905
bc4238f9abdb add additional test suite for webdav tests with enabled encryption
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 904
diff changeset
132 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
133 fclose(f);
904
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
134 }
7109de6bfad5 add test_dav_store_stream_webdav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 903
diff changeset
135 }
906
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
136
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
137 CX_TEST(test_dav_store_load_webdav) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
138 CX_TEST_DO {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
139 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
140 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
141 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
142
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
143 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
144
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
145 for(int i=0;i<100;i++) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
146 cx_bprintf(buf1, "Test Content %d\n", i);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
147 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
148 for(int i=0;i<1234;i++) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
149 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
150 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
151 for(int i=0;i<345678;i++) {
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
152 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
153 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
154
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
155 DavSession *sn = get_test_webdav_session();
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
156
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
157 // test buf1
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
158 buf1->pos = 0;
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
159 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
160 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
161 int ret = dav_store(res1);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
162 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
163 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
164 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
165 CX_TEST_ASSERT(resultBuf->size == buf1->size);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
166 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
167 cxBufferReset(resultBuf);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
168
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
169 // test buf2
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
170 buf2->pos = 0;
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
171 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
172 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
173 ret = dav_store(res2);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
174 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
175 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
176 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
177 CX_TEST_ASSERT(resultBuf->size == buf2->size);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
178 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
179 cxBufferReset(resultBuf);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
180
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
181 // test buf3
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
182 buf3->pos = 0;
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
183 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
184 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
185 ret = dav_store(res3);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
186 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
187 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
188 CX_TEST_ASSERT(!ret);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
189 CX_TEST_ASSERT(resultBuf->size == buf3->size);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
190 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
191 cxBufferReset(resultBuf);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
192
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
193 dav_session_destroy(sn);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
194 cxBufferFree(buf1);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
195 cxBufferFree(buf2);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
196 cxBufferFree(buf3);
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
197 }
c3d91432de2c add webdav store/load test
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 905
diff changeset
198 }

mercurial