~ubuntu-branches/ubuntu/saucy/curl/saucy-201307251546

« back to all changes in this revision

Viewing changes to tests/data/test1404

  • Committer: Package Import Robot
  • Author(s): Alessandro Ghedini
  • Date: 2012-03-23 16:24:51 UTC
  • mto: (3.6.1 experimental) (1.3.1)
  • mto: This revision was merged to the branch mainline in revision 59.
  • Revision ID: package-import@ubuntu.com-20120323162451-z4gstlabjkgnrh7h
Tags: upstream-7.25.0
ImportĀ upstreamĀ versionĀ 7.25.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
HTTP RFC1867-type formposting - -F with three files, one with explicit type
 
31
 </name>
 
32
 <command>
 
33
http://%HOSTIP:%HTTPPORT/we/want/1404 -F name=value -F 'file=@log/test1404.txt,log/test1404.txt;type=magic/content,log/test1404.txt' --libcurl log/test1404.c
 
34
</command>
 
35
# We create this file before the command is invoked!
 
36
<file name="log/test1404.txt">
 
37
dummy data
 
38
</file>
 
39
</client>
 
40
 
 
41
# Verify data after the test has been "shot"
 
42
<verify>
 
43
<strip>
 
44
(^User-Agent:.*|-----+\w+)
 
45
</strip>
 
46
<protocol>
 
47
POST /we/want/1404 HTTP/1.1
 
48
User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
 
49
Host: %HOSTIP:%HTTPPORT
 
50
Accept: */*
 
51
Content-Length: 795
 
52
Expect: 100-continue
 
53
Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
 
54
 
 
55
------------------------------9ef8d6205763
 
56
Content-Disposition: form-data; name="name"
 
57
 
 
58
value
 
59
------------------------------9ef8d6205763
 
60
Content-Disposition: form-data; name="file"
 
61
Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa
 
62
 
 
63
Content-Disposition: attachment; filename="test1404.txt"
 
64
Content-Type: text/plain
 
65
 
 
66
dummy data
 
67
 
 
68
------------------------------9ef8d6205763
 
69
Content-Disposition: attachment; filename="test1404.txt"
 
70
Content-Type: magic/content
 
71
 
 
72
dummy data
 
73
 
 
74
------------------------------9ef8d6205763
 
75
Content-Disposition: attachment; filename="test1404.txt"
 
76
Content-Type: text/plain
 
77
 
 
78
dummy data
 
79
 
 
80
------------------------------aaaaaaaaaaaa--
 
81
------------------------------9ef8d6205763--
 
82
</protocol>
 
83
<stripfile>
 
84
# curl's default user-agent varies with version, libraries etc.
 
85
s/(USERAGENT, \")[^\"]+/${1}stripped/
 
86
# CURLOPT_SSL_VERIFYPEER and SSH_KNOWNHOSTS vary with configurations - just
 
87
# ignore them
 
88
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
 
89
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
 
90
</stripfile>
 
91
<file name="log/test1404.c" mode="text">
 
92
/********* Sample code generated by the curl command line tool **********
 
93
 * All curl_easy_setopt() options are documented at:
 
94
 * http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
 
95
 ************************************************************************/
 
96
#include <curl/curl.h>
 
97
 
 
98
int main(int argc, char *argv[])
 
99
{
 
100
  CURLcode ret;
 
101
  CURL *hnd;
 
102
  struct curl_httppost *post1;
 
103
  struct curl_httppost *postend;
 
104
 
 
105
  post1 = NULL;
 
106
  postend = NULL;
 
107
  curl_formadd(&post1, &postend,
 
108
               CURLFORM_COPYNAME, "name",
 
109
               CURLFORM_COPYCONTENTS, "value",
 
110
               CURLFORM_END);
 
111
  curl_formadd(&post1, &postend,
 
112
               CURLFORM_COPYNAME, "file",
 
113
               CURLFORM_FILE, "log/test1404.txt",
 
114
               CURLFORM_CONTENTTYPE, "text/plain",
 
115
               CURLFORM_FILE, "log/test1404.txt",
 
116
               CURLFORM_CONTENTTYPE, "magic/content",
 
117
               CURLFORM_FILE, "log/test1404.txt",
 
118
               CURLFORM_CONTENTTYPE, "text/plain",
 
119
               CURLFORM_END);
 
120
 
 
121
  hnd = curl_easy_init();
 
122
  curl_easy_setopt(hnd, CURLOPT_URL, "http://%HOSTIP:%HTTPPORT/we/want/1404");
 
123
  curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
 
124
  curl_easy_setopt(hnd, CURLOPT_HTTPPOST, post1);
 
125
  curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
 
126
  curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
 
127
  curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
 
128
  curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
 
129
 
 
130
  /* Here is a list of options the curl code used that cannot get generated
 
131
     as source easily. You may select to either not use them or implement
 
132
     them yourself.
 
133
 
 
134
  CURLOPT_WRITEDATA set to a objectpointer
 
135
  CURLOPT_WRITEFUNCTION set to a functionpointer
 
136
  CURLOPT_READDATA set to a objectpointer
 
137
  CURLOPT_READFUNCTION set to a functionpointer
 
138
  CURLOPT_SEEKDATA set to a objectpointer
 
139
  CURLOPT_SEEKFUNCTION set to a functionpointer
 
140
  CURLOPT_ERRORBUFFER set to a objectpointer
 
141
  CURLOPT_STDERR set to a objectpointer
 
142
  CURLOPT_DEBUGFUNCTION set to a functionpointer
 
143
  CURLOPT_DEBUGDATA set to a objectpointer
 
144
 
 
145
  */
 
146
 
 
147
  ret = curl_easy_perform(hnd);
 
148
 
 
149
  curl_easy_cleanup(hnd);
 
150
  hnd = NULL;
 
151
  curl_formfree(post1);
 
152
  post1 = NULL;
 
153
 
 
154
  return (int)ret;
 
155
}
 
156
/**** End of sample code ****/
 
157
</file>
 
158
</verify>
 
159
</testcase>