Skip to content

Commit 8a82914

Browse files
committed
tests: Add test for multi-chunk uploaded out of order
1 parent 1aa27d4 commit 8a82914

File tree

1 file changed

+31
-8
lines changed

1 file changed

+31
-8
lines changed

t/upload.t

+31-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use File::Basename qw(dirname);
55

66
use lib dirname(__FILE__) . "/lib";
77

8-
use Test::Nginx::Socket tests => 22;
8+
use Test::Nginx::Socket tests => 27;
99
use Test::Nginx::UploadModule;
1010

1111

@@ -20,7 +20,6 @@ location = /upload/ {
2020
upload_set_form_field "upload_content_type" "$upload_content_type";
2121
upload_set_form_field "upload_tmp_path" "$upload_tmp_path";
2222
upload_set_form_field "upload_content_range" "$upload_content_range";
23-
upload_aggregate_form_field "upload_file_size" "$upload_file_size";
2423
upload_max_file_size 0;
2524
upload_pass_args on;
2625
upload_cleanup 400 404 499 500-505;
@@ -49,7 +48,6 @@ upload_content_type = text/plain
4948
upload_field_name = file
5049
upload_file_name = test.txt
5150
upload_file_number = 1
52-
upload_file_size = 4
5351
upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/1/0000000001
5452
}
5553
--- upload_file_like eval
@@ -80,7 +78,6 @@ upload_content_type = text/plain
8078
upload_field_name = file
8179
upload_file_name = test.txt
8280
upload_file_number = 1
83-
upload_file_size = 4
8481
upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/2/0000000002
8582
}]
8683
--- upload_file_like eval
@@ -110,7 +107,6 @@ upload_content_type = text/plain
110107
upload_field_name = file
111108
upload_file_name = test.txt
112109
upload_file_number = 1
113-
upload_file_size = 262144
114110
upload_tmp_path = ${ENV{TEST_NGINX_UPLOAD_PATH}}/store/3/0000000003
115111
}]
116112
--- upload_file_like eval
@@ -121,7 +117,6 @@ qr/^(??{'x' x 262144})$/
121117
location = /upload/ {
122118
upload_pass @upstream;
123119
upload_resumable on;
124-
upload_aggregate_form_field "upload_file_size" "$upload_file_size";
125120
upload_set_form_field "upload_tmp_path" "$upload_tmp_path";
126121
upload_max_file_size 0;
127122
upload_pass_args on;
@@ -146,8 +141,7 @@ Content-Disposition: form-data; name="file"; filename="test.txt"}]
146141
--- error_code eval
147142
[201, 200]
148143
--- 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
151145
}]
152146
--- upload_file_like eval
153147
qr/^(??{'x' x 262144})$/
@@ -156,3 +150,32 @@ qr/^(??{'x' x 262144})$/
156150
# (Test::Nginx::UploadModule::http_config adds request time to the end of
157151
# the access log)
158152
[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

Comments
 (0)