Sun, 19 Mar 2023 16:48:19 +0100
implement webdav xattr namespace lists
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2019 Olaf Wintermann. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef TEST_WEBDAV_H #define TEST_WEBDAV_H #include "../public/nsapi.h" #include "../public/webdav.h" #include "testutils.h" #include "test.h" #ifdef __cplusplus extern "C" { #endif void init_test_webdav_method( Session **out_sn, Request **out_rq, TestIOStream **out_st, pblock **out_pb, const char *method, const char *path, const char *request_body); UCX_TEST(test_webdav_plist_add); UCX_TEST(test_webdav_plist_size); UCX_TEST(test_propfind_parse); UCX_TEST(test_proppatch_parse); UCX_TEST(test_lock_parse); UCX_TEST(test_rqbody2buffer); UCX_TEST(test_webdav_plist_iterator); UCX_TEST(test_webdav_plist_iterator_remove_current); UCX_TEST(test_msresponse_addproperty); UCX_TEST(test_msresponse_addproperty_with_errors); UCX_TEST(test_webdav_propfind_init); UCX_TEST(test_webdav_op_propfind_begin); UCX_TEST(test_webdav_op_propfind_children); UCX_TEST(test_webdav_propfind); UCX_TEST(test_proppatch_msresponse); UCX_TEST(test_webdav_op_proppatch); UCX_TEST(test_webdav_proppatch); UCX_TEST(test_webdav_vfs_op_do); UCX_TEST(test_webdav_delete); UCX_TEST(test_webdav_put); /* --------------------------- PROPFIND --------------------------- */ #define TEST_PROPFIND1 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propfind xmlns:D=\"DAV:\"> \ <D:prop> \ <D:displayname/> \ <D:getcontentlength/> \ <D:getcontenttype/> \ <D:getlastmodified/> \ <D:resourcetype/> \ <D:getetag/> \ </D:prop> \ </D:propfind>" #define TEST_PROPFIND2 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propfind xmlns:D=\"DAV:\"> \ <D:prop xmlns:X=\"http://example.com/\"> \ <D:resourcetype/> \ <X:testprop/> \ <X:name/> \ <Z:testprop xmlns:Z=\"testns\"/>\ </D:prop> \ </D:propfind>" #define TEST_PROPFIND3 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propfind xmlns:D=\"DAV:\"> \ <D:allprop/> \ </D:propfind>" #define TEST_PROPFIND4 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propfind xmlns:D=\"DAV:\"> \ <D:propname/> \ </D:propfind>" #define TEST_PROPFIND5 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propfind xmlns:D=\"DAV:\"> \ <D:prop> \ <D:displayname/> \ <D:getcontentlength/> \ <D:getetag/> \ <D:getcontentlength/> \ <D:resourcetype/> \ </D:prop> \ </D:propfind>" #define TEST_PROPFIND6 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propfind xmlns:D=\"DAV:\"> \ <D:prop> \ <D:displayname/> \ <D:getcontentlength/> \ <D:getetag/> \ <D:resourcetype/> \ </D:prop> \ <D:allprop/> \ </D:propfind>" /* --------------------------- PROPPATCH --------------------------- */ #define TEST_PROPPATCH1 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propertyupdate xmlns:D=\"DAV:\" xmlns:X=\"http://example.com/\"> \ <D:set> \ <D:prop><X:test>test</X:test><D:creationdate>123</D:creationdate></D:prop> \ </D:set> \ </D:propertyupdate>" #define TEST_PROPPATCH2 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propertyupdate xmlns:D=\"DAV:\" xmlns:X=\"http://example.com/\"> \ <D:set> \ <D:prop> \ <X:a>test</X:a> \ <X:b>15</X:b> \ <X:c> \ <X:name test='test1' abc='def'>User</X:name><X:mail>user@host</X:mail> \ </X:c> \ <X:d><X:name>Test</X:name></X:d> \ </D:prop> \ </D:set> \ <D:remove> \ <D:prop> \ <X:e/> \ </D:prop> \ </D:remove> \ </D:propertyupdate>" #define TEST_PROPPATCH3 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propertyupdate xmlns:D=\"DAV:\" xmlns:X=\"http://example.com/\"> \ <D:set> \ <D:prop> \ <X:a>test</X:a> \ <X:fail>15</X:fail> \ </D:prop> \ </D:set> \ <D:remove> \ <D:prop> \ <X:e/> \ </D:prop> \ </D:remove> \ </D:propertyupdate>" #define TEST_PROPPATCH4 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:propertyupdate xmlns:D=\"DAV:\" xmlns:X=\"http://example.com/\"> \ <D:set> \ <D:prop><X:abort>error</X:abort></D:prop> \ </D:set> \ </D:propertyupdate>" /* --------------------------- LOCK --------------------------- */ #define TEST_LOCK1 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> \ <D:lockinfo xmlns:D=\"DAV:\"> \ <D:lockscope><D:shared/></D:lockscope> \ <D:locktype>D:write/></D:locktype> \ <D:owner>User</D:owner> \ </D:lockinfo>" #ifdef __cplusplus } #endif #endif /* TEST_WEBDAV_H */