@@ -5,7 +5,7 @@ use File::Basename qw(dirname);
5
5
6
6
use lib dirname(__FILE__ ) . " /lib" ;
7
7
8
- use Test::Nginx::Socket tests => 22 ;
8
+ use Test::Nginx::Socket tests => 27 ;
9
9
use Test::Nginx::UploadModule;
10
10
11
11
@@ -20,7 +20,6 @@ location = /upload/ {
20
20
upload_set_form_field "upload_content_type" "$upload_content_type";
21
21
upload_set_form_field "upload_tmp_path" "$upload_tmp_path";
22
22
upload_set_form_field "upload_content_range" "$upload_content_range";
23
- upload_aggregate_form_field "upload_file_size" "$upload_file_size";
24
23
upload_max_file_size 0;
25
24
upload_pass_args on;
26
25
upload_cleanup 400 404 499 500-505;
@@ -49,7 +48,6 @@ upload_content_type = text/plain
49
48
upload_field_name = file
50
49
upload_file_name = test.txt
51
50
upload_file_number = 1
52
- upload_file_size = 4
53
51
upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/1/0000000001
54
52
}
55
53
--- upload_file_like eval
@@ -80,7 +78,6 @@ upload_content_type = text/plain
80
78
upload_field_name = file
81
79
upload_file_name = test.txt
82
80
upload_file_number = 1
83
- upload_file_size = 4
84
81
upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/2/0000000002
85
82
}]
86
83
--- upload_file_like eval
@@ -110,7 +107,6 @@ upload_content_type = text/plain
110
107
upload_field_name = file
111
108
upload_file_name = test.txt
112
109
upload_file_number = 1
113
- upload_file_size = 262144
114
110
upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/3/0000000003
115
111
}]
116
112
--- upload_file_like eval
@@ -121,7 +117,6 @@ qr/^(??{'x' x 262144})$/
121
117
location = /upload/ {
122
118
upload_pass @upstream;
123
119
upload_resumable on;
124
- upload_aggregate_form_field "upload_file_size" "$upload_file_size";
125
120
upload_set_form_field "upload_tmp_path" "$upload_tmp_path";
126
121
upload_max_file_size 0;
127
122
upload_pass_args on;
@@ -146,8 +141,7 @@ Content-Disposition: form-data; name="file"; filename="test.txt"}]
146
141
--- error_code eval
147
142
[201, 200]
148
143
--- response_body eval
149
- ["0-131071/262144", qq{upload_file_size = 262144
150
- upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/4/0000000004
144
+ ["0-131071/262144", qq{upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/4/0000000004
151
145
}]
152
146
--- upload_file_like eval
153
147
qr/^(??{'x' x 262144})$/
@@ -156,3 +150,32 @@ qr/^(??{'x' x 262144})$/
156
150
# (Test::Nginx::UploadModule::http_config adds request time to the end of
157
151
# the access log)
158
152
[qr/[34]\.\d\d\d$/, qr/[34]\.\d\d\d$/]
153
+
154
+ === TEST 5: multiple chunk uploads out-of-order
155
+ --- config eval: $::config
156
+ --- more_headers eval
157
+ [qq{X-Content-Range: bytes 131072-262143/262144
158
+ Session-ID: 0000000005
159
+ Content-Type: text/plain
160
+ Content-Disposition: form-data; name="file"; filename="test.txt"},
161
+ qq{X-Content-Range: bytes 0-131071/262144
162
+ Session-ID: 0000000005
163
+ Content-Type: text/plain
164
+ Content-Disposition: form-data; name="file"; filename="test.txt"}]
165
+ --- request eval
166
+ [["POST /upload/\r\n",
167
+ "b" x 131072],
168
+ ["POST /upload/\r\n",
169
+ "a" x 131072]]
170
+ --- error_code eval
171
+ [201, 200]
172
+ --- response_body eval
173
+ ["131072-262143/262144", qq{upload_content_range = bytes 0-131071/262144
174
+ upload_content_type = text/plain
175
+ upload_field_name = file
176
+ upload_file_name = test.txt
177
+ upload_file_number = 1
178
+ upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/5/0000000005
179
+ }]
180
+ --- upload_file_like eval
181
+ qr/^(??{'a' x 131072 . 'b' x 131072})$/
0 commit comments