test/webdav_resource.c

branch
dav-2
changeset 906
c3d91432de2c
parent 905
bc4238f9abdb
child 907
119197afb22d
equal deleted inserted replaced
905:bc4238f9abdb 906:c3d91432de2c
28 28
29 #include "webdav.h" 29 #include "webdav.h"
30 #include "webdav_resource.h" 30 #include "webdav_resource.h"
31 31
32 #include <cx/buffer.h> 32 #include <cx/buffer.h>
33 #include <cx/printf.h>
33 34
34 CX_TEST_SUBROUTINE(test_default_properties, DavResource *res) { 35 CX_TEST_SUBROUTINE(test_default_properties, DavResource *res) {
35 CX_TEST_ASSERT(res->contentlength > 0); 36 CX_TEST_ASSERT(res->contentlength > 0);
36 CX_TEST_ASSERT(res->creationdate > 0); 37 CX_TEST_ASSERT(res->creationdate > 0);
37 CX_TEST_ASSERT(res->lastmodified > 0); 38 CX_TEST_ASSERT(res->lastmodified > 0);
130 } 131 }
131 dav_session_destroy(sn); 132 dav_session_destroy(sn);
132 fclose(f); 133 fclose(f);
133 } 134 }
134 } 135 }
136
137 CX_TEST(test_dav_store_load_webdav) {
138 CX_TEST_DO {
139 CxBuffer *buf1 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
140 CxBuffer *buf2 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
141 CxBuffer *buf3 = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
142
143 CxBuffer *resultBuf = cxBufferCreate(NULL, NULL, 1024, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
144
145 for(int i=0;i<100;i++) {
146 cx_bprintf(buf1, "Test Content %d\n", i);
147 }
148 for(int i=0;i<1234;i++) {
149 cx_bprintf(buf2, "%d Medium Buffer Content\n", i);
150 }
151 for(int i=0;i<345678;i++) {
152 cx_bprintf(buf3, "%d Large Buffer Content %d\n", i, i*7);
153 }
154
155 DavSession *sn = get_test_webdav_session();
156
157 // test buf1
158 buf1->pos = 0;
159 DavResource *res1 = dav_resource_new(sn, "/test_store_load1.txt");
160 dav_set_content(res1, buf1, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek);
161 int ret = dav_store(res1);
162 CX_TEST_ASSERT(!ret);
163 ret = dav_get_content(res1, resultBuf, (dav_write_func)cxBufferWrite);
164 CX_TEST_ASSERT(!ret);
165 CX_TEST_ASSERT(resultBuf->size == buf1->size);
166 CX_TEST_ASSERT(!memcmp(resultBuf->space, buf1->space, buf1->size));
167 cxBufferReset(resultBuf);
168
169 // test buf2
170 buf2->pos = 0;
171 DavResource *res2 = dav_resource_new(sn, "/test_store_load2.txt");
172 dav_set_content(res2, buf2, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek);
173 ret = dav_store(res2);
174 CX_TEST_ASSERT(!ret);
175 ret = dav_get_content(res2, resultBuf, (dav_write_func)cxBufferWrite);
176 CX_TEST_ASSERT(!ret);
177 CX_TEST_ASSERT(resultBuf->size == buf2->size);
178 CX_TEST_ASSERT(!memcmp(resultBuf->space, buf2->space, buf2->size));
179 cxBufferReset(resultBuf);
180
181 // test buf3
182 buf3->pos = 0;
183 DavResource *res3 = dav_resource_new(sn, "/test_store_load3.txt");
184 dav_set_content(res3, buf3, (dav_read_func)cxBufferRead, (dav_seek_func)cxBufferSeek);
185 ret = dav_store(res3);
186 CX_TEST_ASSERT(!ret);
187 ret = dav_get_content(res3, resultBuf, (dav_write_func)cxBufferWrite);
188 CX_TEST_ASSERT(!ret);
189 CX_TEST_ASSERT(resultBuf->size == buf3->size);
190 CX_TEST_ASSERT(!memcmp(resultBuf->space, buf3->space, buf3->size));
191 cxBufferReset(resultBuf);
192
193 dav_session_destroy(sn);
194 cxBufferFree(buf1);
195 cxBufferFree(buf2);
196 cxBufferFree(buf3);
197 }
198 }

mercurial