Return to test1404 CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / tests / data |
1.1 ! misho 1: <testcase> ! 2: # Based on test 1315 ! 3: <info> ! 4: <keywords> ! 5: HTTP ! 6: HTTP FORMPOST ! 7: HTTP file upload ! 8: --libcurl ! 9: </keywords> ! 10: </info> ! 11: ! 12: # Server-side ! 13: <reply> ! 14: <data> ! 15: HTTP/1.1 200 OK ! 16: Date: Thu, 29 Jul 2008 14:49:00 GMT ! 17: Server: test-server/fake ! 18: Content-Length: 0 ! 19: Connection: close ! 20: ! 21: </data> ! 22: </reply> ! 23: ! 24: # Client-side ! 25: <client> ! 26: <server> ! 27: http ! 28: </server> ! 29: <name> ! 30: --libcurl for HTTP RFC1867-type formposting - -F with 3 files, one with explicit type & encoder ! 31: </name> ! 32: <setenv> ! 33: SSL_CERT_FILE= ! 34: </setenv> ! 35: <command> ! 36: http://%HOSTIP:%HTTPPORT/we/want/1404 -F name=value -F 'file=@log/test1404.txt,log/test1404.txt;type=magic/content;encoder=8bit,log/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/test1404.c ! 37: </command> ! 38: # We create this file before the command is invoked! ! 39: <file name="log/test1404.txt"> ! 40: dummy data ! 41: </file> ! 42: </client> ! 43: ! 44: # Verify data after the test has been "shot" ! 45: <verify> ! 46: <strip> ! 47: (^User-Agent:.*|-----+\w+) ! 48: </strip> ! 49: <protocol> ! 50: POST /we/want/1404 HTTP/1.1 ! 51: User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4 ! 52: Host: %HOSTIP:%HTTPPORT ! 53: Accept: */* ! 54: Content-Length: 882 ! 55: Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763 ! 56: ! 57: ------------------------------9ef8d6205763 ! 58: Content-Disposition: form-data; name="name" ! 59: ! 60: value ! 61: ------------------------------9ef8d6205763 ! 62: Content-Disposition: form-data; name="file" ! 63: Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa ! 64: ! 65: Content-Disposition: attachment; filename="test1404.txt" ! 66: Content-Type: text/plain ! 67: ! 68: dummy data ! 69: ! 70: ------------------------------9ef8d6205763 ! 71: Content-Disposition: attachment; filename="test1404.txt" ! 72: Content-Type: magic/content ! 73: Content-Transfer-Encoding: 8bit ! 74: ! 75: dummy data ! 76: ! 77: ------------------------------9ef8d6205763 ! 78: Content-Disposition: attachment; filename="test1404.txt" ! 79: Content-Type: text/plain ! 80: X-testheader-1: header 1 ! 81: X-testheader-2: header 2 ! 82: ! 83: dummy data ! 84: ! 85: ------------------------------aaaaaaaaaaaa-- ! 86: ! 87: ------------------------------9ef8d6205763-- ! 88: </protocol> ! 89: <stripfile> ! 90: # curl's default user-agent varies with version, libraries etc. ! 91: s/(USERAGENT, \")[^\"]+/${1}stripped/ ! 92: # CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with ! 93: # configurations - just ignore them ! 94: $_ = '' if /CURLOPT_SSL_VERIFYPEER/ ! 95: $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ ! 96: $_ = '' if /CURLOPT_HTTP_VERSION/ ! 97: $_ = '' if /CURLOPT_INTERLEAVEDATA/ ! 98: # CURL_DOES_CONVERSION generates an extra comment. ! 99: $_ = '' if /\/\* "value" \*\// ! 100: </stripfile> ! 101: <file name="log/test1404.c" mode="text"> ! 102: /********* Sample code generated by the curl command line tool ********** ! 103: * All curl_easy_setopt() options are documented at: ! 104: * https://curl.haxx.se/libcurl/c/curl_easy_setopt.html ! 105: ************************************************************************/ ! 106: #include <curl/curl.h> ! 107: ! 108: int main(int argc, char *argv[]) ! 109: { ! 110: CURLcode ret; ! 111: CURL *hnd; ! 112: curl_mime *mime1; ! 113: curl_mimepart *part1; ! 114: curl_mime *mime2; ! 115: curl_mimepart *part2; ! 116: struct curl_slist *slist1; ! 117: ! 118: mime1 = NULL; ! 119: mime2 = NULL; ! 120: slist1 = NULL; ! 121: slist1 = curl_slist_append(slist1, "X-testheader-1: header 1"); ! 122: slist1 = curl_slist_append(slist1, "X-testheader-2: header 2"); ! 123: ! 124: hnd = curl_easy_init(); ! 125: curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); ! 126: curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1404"); ! 127: mime1 = curl_mime_init(hnd); ! 128: part1 = curl_mime_addpart(mime1); ! 129: curl_mime_data(part1, "value", CURL_ZERO_TERMINATED); ! 130: curl_mime_name(part1, "name"); ! 131: part1 = curl_mime_addpart(mime1); ! 132: mime2 = curl_mime_init(hnd); ! 133: part2 = curl_mime_addpart(mime2); ! 134: curl_mime_filedata(part2, "log/test1404.txt"); ! 135: part2 = curl_mime_addpart(mime2); ! 136: curl_mime_filedata(part2, "log/test1404.txt"); ! 137: curl_mime_encoder(part2, "8bit"); ! 138: curl_mime_type(part2, "magic/content"); ! 139: part2 = curl_mime_addpart(mime2); ! 140: curl_mime_filedata(part2, "log/test1404.txt"); ! 141: curl_mime_headers(part2, slist1, 1); ! 142: slist1 = NULL; ! 143: curl_mime_subparts(part1, mime2); ! 144: mime2 = NULL; ! 145: curl_mime_name(part1, "file"); ! 146: curl_easy_setopt(hnd, CURLOPT_MIMEPOST, mime1); ! 147: curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped"); ! 148: curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); ! 149: curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ! 150: curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); ! 151: ! 152: /* Here is a list of options the curl code used that cannot get generated ! 153: as source easily. You may select to either not use them or implement ! 154: them yourself. ! 155: ! 156: CURLOPT_WRITEDATA set to a objectpointer ! 157: CURLOPT_WRITEFUNCTION set to a functionpointer ! 158: CURLOPT_READDATA set to a objectpointer ! 159: CURLOPT_READFUNCTION set to a functionpointer ! 160: CURLOPT_SEEKDATA set to a objectpointer ! 161: CURLOPT_SEEKFUNCTION set to a functionpointer ! 162: CURLOPT_ERRORBUFFER set to a objectpointer ! 163: CURLOPT_STDERR set to a objectpointer ! 164: CURLOPT_DEBUGFUNCTION set to a functionpointer ! 165: CURLOPT_DEBUGDATA set to a objectpointer ! 166: CURLOPT_HEADERFUNCTION set to a functionpointer ! 167: CURLOPT_HEADERDATA set to a objectpointer ! 168: ! 169: */ ! 170: ! 171: ret = curl_easy_perform(hnd); ! 172: ! 173: curl_easy_cleanup(hnd); ! 174: hnd = NULL; ! 175: curl_mime_free(mime1); ! 176: mime1 = NULL; ! 177: curl_mime_free(mime2); ! 178: mime2 = NULL; ! 179: curl_slist_free_all(slist1); ! 180: slist1 = NULL; ! 181: ! 182: return (int)ret; ! 183: } ! 184: /**** End of sample code ****/ ! 185: </file> ! 186: </verify> ! 187: </testcase>