Vendor Rack 1.1
Also clean up some View stuff.
This commit is contained in:
parent
77014652a3
commit
a705709f9a
74 changed files with 3080 additions and 608 deletions
3
vendor/plugins/rack/test/cgi/test.ru
vendored
3
vendor/plugins/rack/test/cgi/test.ru
vendored
|
@ -1,5 +1,4 @@
|
|||
#!/usr/bin/env ../../bin/rackup
|
||||
#\ -E deployment -I ../../lib
|
||||
#!/usr/bin/env ruby -I ../../lib ../../bin/rackup -E deployment -I ../../lib
|
||||
# -*- ruby -*-
|
||||
|
||||
require '../testrequest'
|
||||
|
|
259
vendor/plugins/rack/test/multipart/bad_robots
vendored
Normal file
259
vendor/plugins/rack/test/multipart/bad_robots
vendored
Normal file
|
@ -0,0 +1,259 @@
|
|||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="bbbbbbbbbbbbbbb"
|
||||
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="ccccccc"
|
||||
|
||||
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="file.name"
|
||||
|
||||
INPUTMSG.gz
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="file.content_type"
|
||||
|
||||
application/octet-stream
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="file.path"
|
||||
|
||||
/var/tmp/uploads/4/0001728414
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="file.md5"
|
||||
|
||||
aa73198feb4b4c1c3186f5e7466cbbcc
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="file.size"
|
||||
|
||||
13212
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="size"
|
||||
|
||||
80892
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="mail_server_id"
|
||||
|
||||
<1111111111.22222222.3333333333333.JavaMail.app@ffff-aaaa.dddd>
|
||||
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="addresses"
|
||||
|
||||
{"campsy_programmer@pinkedum.com":{"domain":"pinkedum.com","name":"Campsy Programmer","type":["env_sender"],"mailbox":"campsy_programmer"},"tex@rapidcity.com":{"domain":"rapidcity.com","name":"Big Tex","type":["env_recipients","to"],"mailbox":"tex"},"group-digests@linkedin.com":{"domain":"linkedin.com","name":"Group Members","type":["from"],"mailbox":"group-digests"}}
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="received_on"
|
||||
|
||||
2009-11-15T14:21:11Z
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="id"
|
||||
|
||||
dbfd9804d26d11deab24e3037639bf77
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
|
||||
Content-Disposition: form-data; name="ip_address"
|
||||
|
||||
127.0.0.1
|
||||
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon--
|
814
vendor/plugins/rack/test/multipart/fail_16384_nofile
vendored
Normal file
814
vendor/plugins/rack/test/multipart/fail_16384_nofile
vendored
Normal file
|
@ -0,0 +1,814 @@
|
|||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="_method"
|
||||
|
||||
put
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="authenticity_token"
|
||||
|
||||
XCUgSyYsZ+iHQunq/yCSKFzjeVmsXV/WcphHQ0J+05I=
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[SESE]"
|
||||
|
||||
BooBar
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[BBBBBBBBB]"
|
||||
|
||||
18
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[CCCCCCCCCCCCCCCCCCC]"
|
||||
|
||||
0
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[STARTFOO]"
|
||||
|
||||
2009-11-04
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[ENDFOO]"
|
||||
|
||||
2009-12-01
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[DDDDDDDD]"
|
||||
|
||||
0
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[DDDDDDDD]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[EEEEEEEEEE]"
|
||||
|
||||
10000
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[FFFFFFFFF]"
|
||||
|
||||
boskoizcool
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[GGGGGGGGGGG]"
|
||||
|
||||
0
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[GGGGGGGGGGG]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[YYYYYYYYYYYYYYY]"
|
||||
|
||||
5.00
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[ZZZZZZZZZZZZZ]"
|
||||
|
||||
mille
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[XXXXXXXXXXXXXXXXXXXXX]"
|
||||
|
||||
0
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][9]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][10]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][11]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][12]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][13]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][14]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][15]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][16]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][17]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][18]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][19]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][20]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][21]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][22]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][23]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][0]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][1]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][2]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][3]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][4]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][5]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][6]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][7]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][8]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][9]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][10]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][11]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][12]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][13]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][14]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][15]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][16]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][17]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][18]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][19]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][20]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][21]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][22]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][23]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][0]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][1]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][2]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][3]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][4]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][5]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][6]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][7]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][8]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][9]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][10]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][11]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][12]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][13]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][14]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][15]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][16]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][17]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][18]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][19]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][20]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][21]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][22]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][23]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][0]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][1]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][2]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][3]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][4]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][5]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][6]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][7]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][8]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][9]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][10]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][11]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][12]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][13]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][14]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][15]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][16]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][17]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][18]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][19]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][20]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][21]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][22]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][23]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][0]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][1]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][2]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][3]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][4]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][5]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][6]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][7]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][8]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][9]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][10]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][11]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][12]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][13]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][14]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][15]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][16]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][17]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][18]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][19]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][20]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][21]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][22]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][23]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][0]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][1]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][2]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][3]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][4]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][5]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][6]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][7]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][8]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][9]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][10]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][11]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][12]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][13]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][14]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][15]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][16]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][17]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][18]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][19]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][20]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][21]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][22]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][23]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][0]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][1]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][2]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][3]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][4]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][5]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][6]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][7]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][8]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][9]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][10]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][11]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][12]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][13]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][14]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][15]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][16]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][17]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][18]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][19]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][20]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][21]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][22]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][23]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][0]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][1]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][2]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][3]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][4]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][5]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][6]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][7]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][8]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[WWWWWWWWWWWWWWWWWWWWWWWWW][678][ZEZE]"
|
||||
|
||||
PLAPLAPLAINCINCINC
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[WWWWWWWWWWWWWWWWWWWWWWWWW][678][123412341234e]"
|
||||
|
||||
SITE
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[WWWWWWWWWWWWWWWWWWWWWWWWW][678][12345678901]"
|
||||
|
||||
56
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_type]"
|
||||
|
||||
none
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][has_hashashas_has]"
|
||||
|
||||
0
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][frefrefre_fre_freee]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][frefrefre_fre_frefre]"
|
||||
|
||||
forever
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][self_block]"
|
||||
|
||||
0
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][GGG_RULES][][COUCOUN]"
|
||||
|
||||
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][GGG_RULES][][REGREG]"
|
||||
|
||||
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][GGG_RULES][][c1c1]"
|
||||
|
||||
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA_TARTARTAR_wizard_rule"
|
||||
|
||||
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_rule]"
|
||||
|
||||
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[selection_selection]"
|
||||
|
||||
R
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-1][selection_selection]"
|
||||
|
||||
1
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-1][ba_unit_id]"
|
||||
|
||||
1015
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-2][selection_selection]"
|
||||
|
||||
2
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-2][ba_unit_id]"
|
||||
|
||||
1017
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
|
||||
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[tile_name]"
|
||||
|
||||
|
||||
------WebKitFormBoundaryWsY0GnpbI5U7ztzo--
|
||||
|
1
vendor/plugins/rack/test/multipart/file1.txt
vendored
Normal file
1
vendor/plugins/rack/test/multipart/file1.txt
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
contents
|
1
vendor/plugins/rack/test/rackup/.gitignore
vendored
Normal file
1
vendor/plugins/rack/test/rackup/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
log_output
|
31
vendor/plugins/rack/test/rackup/config.ru
vendored
Normal file
31
vendor/plugins/rack/test/rackup/config.ru
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
require "#{File.dirname(__FILE__)}/../testrequest"
|
||||
|
||||
$stderr = File.open("#{File.dirname(__FILE__)}/log_output", "w")
|
||||
|
||||
class EnvMiddleware
|
||||
def initialize(app)
|
||||
@app = app
|
||||
end
|
||||
|
||||
def call(env)
|
||||
# provides a way to test that lint is present
|
||||
if env["PATH_INFO"] == "/broken_lint"
|
||||
return [200, {}, ["Broken Lint"]]
|
||||
# provides a way to kill the process without knowing the pid
|
||||
elsif env["PATH_INFO"] == "/die"
|
||||
exit!
|
||||
end
|
||||
|
||||
env["test.$DEBUG"] = $DEBUG
|
||||
env["test.$EVAL"] = BUKKIT if defined?(BUKKIT)
|
||||
env["test.$VERBOSE"] = $VERBOSE
|
||||
env["test.$LOAD_PATH"] = $LOAD_PATH
|
||||
env["test.stderr"] = File.expand_path($stderr.path)
|
||||
env["test.Ping"] = defined?(Ping)
|
||||
env["test.pid"] = Process.pid
|
||||
@app.call(env)
|
||||
end
|
||||
end
|
||||
|
||||
use EnvMiddleware
|
||||
run TestRequest.new
|
|
@ -28,15 +28,13 @@ context "Rack::Cascade" do
|
|||
Rack::MockRequest.new(cascade).get("/cgi/../bla").should.be.not_found
|
||||
end
|
||||
|
||||
specify "should fail if empty" do
|
||||
lambda { Rack::MockRequest.new(Rack::Cascade.new([])).get("/") }.
|
||||
should.raise(ArgumentError)
|
||||
specify "should return 404 if empty" do
|
||||
Rack::MockRequest.new(Rack::Cascade.new([])).get('/').should.be.not_found
|
||||
end
|
||||
|
||||
specify "should append new app" do
|
||||
cascade = Rack::Cascade.new([], [404, 403])
|
||||
lambda { Rack::MockRequest.new(cascade).get('/cgi/test') }.
|
||||
should.raise(ArgumentError)
|
||||
Rack::MockRequest.new(cascade).get('/').should.be.not_found
|
||||
cascade << app2
|
||||
Rack::MockRequest.new(cascade).get('/cgi/test').should.be.not_found
|
||||
Rack::MockRequest.new(cascade).get('/cgi/../bla').should.be.not_found
|
||||
|
|
6
vendor/plugins/rack/test/spec_rack_cgi.rb
vendored
6
vendor/plugins/rack/test/spec_rack_cgi.rb
vendored
|
@ -3,7 +3,7 @@ require 'testrequest'
|
|||
|
||||
context "Rack::Handler::CGI" do
|
||||
include TestRequest::Helpers
|
||||
|
||||
|
||||
setup do
|
||||
@host = '0.0.0.0'
|
||||
@port = 9203
|
||||
|
@ -36,7 +36,7 @@ context "Rack::Handler::CGI" do
|
|||
|
||||
specify "should have rack headers" do
|
||||
GET("/test")
|
||||
response["rack.version"].should.equal [1,0]
|
||||
response["rack.version"].should.equal [1,1]
|
||||
response["rack.multithread"].should.be false
|
||||
response["rack.multiprocess"].should.be true
|
||||
response["rack.run_once"].should.be true
|
||||
|
@ -47,7 +47,7 @@ context "Rack::Handler::CGI" do
|
|||
response["REQUEST_METHOD"].should.equal "GET"
|
||||
response["SCRIPT_NAME"].should.equal "/test"
|
||||
response["REQUEST_PATH"].should.equal "/"
|
||||
response["PATH_INFO"].should.be.nil
|
||||
response["PATH_INFO"].should.equal ""
|
||||
response["QUERY_STRING"].should.equal ""
|
||||
response["test.postdata"].should.equal ""
|
||||
|
||||
|
|
|
@ -7,26 +7,55 @@ require 'rack/mock'
|
|||
|
||||
context "Rack::CommonLogger" do
|
||||
app = lambda { |env|
|
||||
[200,
|
||||
{"Content-Type" => "text/html", "Content-Length" => length.to_s},
|
||||
[obj]]}
|
||||
app_without_length = lambda { |env|
|
||||
[200,
|
||||
{"Content-Type" => "text/html"},
|
||||
["foo"]]}
|
||||
[]]}
|
||||
app_with_zero_length = lambda { |env|
|
||||
[200,
|
||||
{"Content-Type" => "text/html", "Content-Length" => "0"},
|
||||
[]]}
|
||||
|
||||
specify "should log to rack.errors by default" do
|
||||
log = StringIO.new
|
||||
res = Rack::MockRequest.new(Rack::CommonLogger.new(app)).get("/")
|
||||
|
||||
res.errors.should.not.be.empty
|
||||
res.errors.should =~ /GET /
|
||||
res.errors.should =~ / 200 / # status
|
||||
res.errors.should =~ / 3 / # length
|
||||
res.errors.should =~ /"GET \/ " 200 #{length} /
|
||||
end
|
||||
|
||||
specify "should log to anything with <<" do
|
||||
log = ""
|
||||
specify "should log to anything with +write+" do
|
||||
log = StringIO.new
|
||||
res = Rack::MockRequest.new(Rack::CommonLogger.new(app, log)).get("/")
|
||||
|
||||
log.should =~ /GET /
|
||||
log.should =~ / 200 / # status
|
||||
log.should =~ / 3 / # length
|
||||
log.string.should =~ /"GET \/ " 200 #{length} /
|
||||
end
|
||||
|
||||
specify "should log - content length if header is missing" do
|
||||
res = Rack::MockRequest.new(Rack::CommonLogger.new(app_without_length)).get("/")
|
||||
|
||||
res.errors.should.not.be.empty
|
||||
res.errors.should =~ /"GET \/ " 200 - /
|
||||
end
|
||||
|
||||
specify "should log - content length if header is zero" do
|
||||
res = Rack::MockRequest.new(Rack::CommonLogger.new(app_with_zero_length)).get("/")
|
||||
|
||||
res.errors.should.not.be.empty
|
||||
res.errors.should =~ /"GET \/ " 200 - /
|
||||
end
|
||||
|
||||
def length
|
||||
self.class.length
|
||||
end
|
||||
|
||||
def self.length
|
||||
123
|
||||
end
|
||||
|
||||
def self.obj
|
||||
"hello world"
|
||||
end
|
||||
end
|
||||
|
|
24
vendor/plugins/rack/test/spec_rack_config.rb
vendored
Normal file
24
vendor/plugins/rack/test/spec_rack_config.rb
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
require 'test/spec'
|
||||
require 'rack/mock'
|
||||
require 'rack/builder'
|
||||
require 'rack/content_length'
|
||||
require 'rack/config'
|
||||
|
||||
context "Rack::Config" do
|
||||
|
||||
specify "should accept a block that modifies the environment" do
|
||||
app = Rack::Builder.new do
|
||||
use Rack::Lint
|
||||
use Rack::ContentLength
|
||||
use Rack::Config do |env|
|
||||
env['greeting'] = 'hello'
|
||||
end
|
||||
run lambda { |env|
|
||||
[200, {'Content-Type' => 'text/plain'}, [env['greeting'] || '']]
|
||||
}
|
||||
end
|
||||
response = Rack::MockRequest.new(app).get('/')
|
||||
response.body.should.equal('hello')
|
||||
end
|
||||
|
||||
end
|
|
@ -6,7 +6,7 @@ require 'rack/lint'
|
|||
require 'rack/mock'
|
||||
|
||||
context "Rack::Directory" do
|
||||
DOCROOT = File.expand_path(File.dirname(__FILE__))
|
||||
DOCROOT = File.expand_path(File.dirname(__FILE__)) unless defined? DOCROOT
|
||||
FILE_CATCH = proc{|env| [200, {'Content-Type'=>'text/plain', "Content-Length" => "7"}, ['passed!']] }
|
||||
app = Rack::Directory.new DOCROOT, FILE_CATCH
|
||||
|
||||
|
|
17
vendor/plugins/rack/test/spec_rack_etag.rb
vendored
Normal file
17
vendor/plugins/rack/test/spec_rack_etag.rb
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
require 'test/spec'
|
||||
require 'rack/mock'
|
||||
require 'rack/etag'
|
||||
|
||||
context "Rack::ETag" do
|
||||
specify "sets ETag if none is set" do
|
||||
app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] }
|
||||
response = Rack::ETag.new(app).call({})
|
||||
response[1]['ETag'].should.equal "\"65a8e27d8879283831b664bd8b7f0ad4\""
|
||||
end
|
||||
|
||||
specify "does not change ETag if it is already set" do
|
||||
app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'ETag' => '"abc"'}, ["Hello, World!"]] }
|
||||
response = Rack::ETag.new(app).call({})
|
||||
response[1]['ETag'].should.equal "\"abc\""
|
||||
end
|
||||
end
|
|
@ -36,7 +36,7 @@ context "Rack::Handler::FastCGI" do
|
|||
|
||||
specify "should have rack headers" do
|
||||
GET("/test.fcgi")
|
||||
response["rack.version"].should.equal [1,0]
|
||||
response["rack.version"].should.equal [1,1]
|
||||
response["rack.multithread"].should.be false
|
||||
response["rack.multiprocess"].should.be true
|
||||
response["rack.run_once"].should.be false
|
||||
|
@ -47,7 +47,7 @@ context "Rack::Handler::FastCGI" do
|
|||
response["REQUEST_METHOD"].should.equal "GET"
|
||||
response["SCRIPT_NAME"].should.equal "/test.fcgi"
|
||||
response["REQUEST_PATH"].should.equal "/"
|
||||
response["PATH_INFO"].should.be.nil
|
||||
response["PATH_INFO"].should.equal ""
|
||||
response["QUERY_STRING"].should.equal ""
|
||||
response["test.postdata"].should.equal ""
|
||||
|
||||
|
|
2
vendor/plugins/rack/test/spec_rack_file.rb
vendored
2
vendor/plugins/rack/test/spec_rack_file.rb
vendored
|
@ -6,7 +6,7 @@ require 'rack/lint'
|
|||
require 'rack/mock'
|
||||
|
||||
context "Rack::File" do
|
||||
DOCROOT = File.expand_path(File.dirname(__FILE__))
|
||||
DOCROOT = File.expand_path(File.dirname(__FILE__)) unless defined? DOCROOT
|
||||
|
||||
specify "serves files" do
|
||||
res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))).
|
||||
|
|
45
vendor/plugins/rack/test/spec_rack_lint.rb
vendored
45
vendor/plugins/rack/test/spec_rack_lint.rb
vendored
|
@ -71,6 +71,11 @@ context "Rack::Lint" do
|
|||
}.should.raise(Rack::Lint::LintError).
|
||||
message.should.equal("session [] must respond to store and []=")
|
||||
|
||||
lambda {
|
||||
Rack::Lint.new(nil).call(env("rack.logger" => []))
|
||||
}.should.raise(Rack::Lint::LintError).
|
||||
message.should.equal("logger [] must respond to info")
|
||||
|
||||
lambda {
|
||||
Rack::Lint.new(nil).call(env("REQUEST_METHOD" => "FUCKUP?"))
|
||||
}.should.raise(Rack::Lint::LintError).
|
||||
|
@ -110,7 +115,7 @@ context "Rack::Lint" do
|
|||
Rack::Lint.new(nil).call(env("rack.input" => ""))
|
||||
}.should.raise(Rack::Lint::LintError).
|
||||
message.should.match(/does not respond to #gets/)
|
||||
|
||||
|
||||
lambda {
|
||||
input = Object.new
|
||||
def input.binmode?
|
||||
|
@ -119,7 +124,7 @@ context "Rack::Lint" do
|
|||
Rack::Lint.new(nil).call(env("rack.input" => input))
|
||||
}.should.raise(Rack::Lint::LintError).
|
||||
message.should.match(/is not opened in binary mode/)
|
||||
|
||||
|
||||
lambda {
|
||||
input = Object.new
|
||||
def input.external_encoding
|
||||
|
@ -347,25 +352,25 @@ context "Rack::Lint" do
|
|||
yield 23
|
||||
yield 42
|
||||
end
|
||||
|
||||
|
||||
def rewind
|
||||
raise Errno::ESPIPE, "Errno::ESPIPE"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
eof_weirdio = Object.new
|
||||
class << eof_weirdio
|
||||
def gets
|
||||
nil
|
||||
end
|
||||
|
||||
|
||||
def read(*args)
|
||||
nil
|
||||
end
|
||||
|
||||
|
||||
def each
|
||||
end
|
||||
|
||||
|
||||
def rewind
|
||||
end
|
||||
end
|
||||
|
@ -452,48 +457,50 @@ context "Rack::Lint" do
|
|||
}.should.raise(Rack::Lint::LintError).
|
||||
message.should.match(/body was given for HEAD/)
|
||||
end
|
||||
|
||||
|
||||
specify "passes valid read calls" do
|
||||
hello_str = "hello world"
|
||||
hello_str.force_encoding("ASCII-8BIT") if hello_str.respond_to? :force_encoding
|
||||
lambda {
|
||||
Rack::Lint.new(lambda { |env|
|
||||
env["rack.input"].read
|
||||
[201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
|
||||
}).call(env({"rack.input" => StringIO.new("hello world")}))
|
||||
}).call(env({"rack.input" => StringIO.new(hello_str)}))
|
||||
}.should.not.raise(Rack::Lint::LintError)
|
||||
|
||||
|
||||
lambda {
|
||||
Rack::Lint.new(lambda { |env|
|
||||
env["rack.input"].read(0)
|
||||
[201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
|
||||
}).call(env({"rack.input" => StringIO.new("hello world")}))
|
||||
}).call(env({"rack.input" => StringIO.new(hello_str)}))
|
||||
}.should.not.raise(Rack::Lint::LintError)
|
||||
|
||||
|
||||
lambda {
|
||||
Rack::Lint.new(lambda { |env|
|
||||
env["rack.input"].read(1)
|
||||
[201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
|
||||
}).call(env({"rack.input" => StringIO.new("hello world")}))
|
||||
}).call(env({"rack.input" => StringIO.new(hello_str)}))
|
||||
}.should.not.raise(Rack::Lint::LintError)
|
||||
|
||||
|
||||
lambda {
|
||||
Rack::Lint.new(lambda { |env|
|
||||
env["rack.input"].read(nil)
|
||||
[201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
|
||||
}).call(env({"rack.input" => StringIO.new("hello world")}))
|
||||
}).call(env({"rack.input" => StringIO.new(hello_str)}))
|
||||
}.should.not.raise(Rack::Lint::LintError)
|
||||
|
||||
|
||||
lambda {
|
||||
Rack::Lint.new(lambda { |env|
|
||||
env["rack.input"].read(nil, '')
|
||||
[201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
|
||||
}).call(env({"rack.input" => StringIO.new("hello world")}))
|
||||
}).call(env({"rack.input" => StringIO.new(hello_str)}))
|
||||
}.should.not.raise(Rack::Lint::LintError)
|
||||
|
||||
|
||||
lambda {
|
||||
Rack::Lint.new(lambda { |env|
|
||||
env["rack.input"].read(1, '')
|
||||
[201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
|
||||
}).call(env({"rack.input" => StringIO.new("hello world")}))
|
||||
}).call(env({"rack.input" => StringIO.new(hello_str)}))
|
||||
}.should.not.raise(Rack::Lint::LintError)
|
||||
end
|
||||
end
|
||||
|
|
21
vendor/plugins/rack/test/spec_rack_logger.rb
vendored
Normal file
21
vendor/plugins/rack/test/spec_rack_logger.rb
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
require 'rack/logger'
|
||||
require 'rack/lint'
|
||||
require 'stringio'
|
||||
|
||||
context "Rack::Logger" do
|
||||
specify "logs to rack.errors" do
|
||||
app = lambda { |env|
|
||||
log = env['rack.logger']
|
||||
log.debug("Created logger")
|
||||
log.info("Program started")
|
||||
log.warn("Nothing to do!")
|
||||
|
||||
[200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]]
|
||||
}
|
||||
|
||||
errors = StringIO.new
|
||||
Rack::Logger.new(app).call({'rack.errors' => errors})
|
||||
errors.string.should.match "INFO -- : Program started"
|
||||
errors.string.should.match "WARN -- : Nothing to do"
|
||||
end
|
||||
end
|
88
vendor/plugins/rack/test/spec_rack_mock.rb
vendored
88
vendor/plugins/rack/test/spec_rack_mock.rb
vendored
|
@ -93,6 +93,92 @@ context "Rack::MockRequest" do
|
|||
env["rack.url_scheme"].should.equal "https"
|
||||
end
|
||||
|
||||
specify "should set SSL port and HTTP flag on when using https" do
|
||||
res = Rack::MockRequest.new(app).
|
||||
get("https://example.org/foo")
|
||||
res.should.be.kind_of Rack::MockResponse
|
||||
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "GET"
|
||||
env["SERVER_NAME"].should.equal "example.org"
|
||||
env["SERVER_PORT"].should.equal "443"
|
||||
env["QUERY_STRING"].should.equal ""
|
||||
env["PATH_INFO"].should.equal "/foo"
|
||||
env["rack.url_scheme"].should.equal "https"
|
||||
env["HTTPS"].should.equal "on"
|
||||
end
|
||||
|
||||
specify "should prepend slash to uri path" do
|
||||
res = Rack::MockRequest.new(app).
|
||||
get("foo")
|
||||
res.should.be.kind_of Rack::MockResponse
|
||||
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "GET"
|
||||
env["SERVER_NAME"].should.equal "example.org"
|
||||
env["SERVER_PORT"].should.equal "80"
|
||||
env["QUERY_STRING"].should.equal ""
|
||||
env["PATH_INFO"].should.equal "/foo"
|
||||
env["rack.url_scheme"].should.equal "http"
|
||||
end
|
||||
|
||||
specify "should properly convert method name to an uppercase string" do
|
||||
res = Rack::MockRequest.new(app).request(:get)
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "GET"
|
||||
end
|
||||
|
||||
specify "should accept params and build query string for GET requests" do
|
||||
res = Rack::MockRequest.new(app).get("/foo?baz=2", :params => {:foo => {:bar => "1"}})
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "GET"
|
||||
env["QUERY_STRING"].should.match "baz=2"
|
||||
env["QUERY_STRING"].should.match "foo[bar]=1"
|
||||
env["PATH_INFO"].should.equal "/foo"
|
||||
env["mock.postdata"].should.equal ""
|
||||
end
|
||||
|
||||
specify "should accept raw input in params for GET requests" do
|
||||
res = Rack::MockRequest.new(app).get("/foo?baz=2", :params => "foo[bar]=1")
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "GET"
|
||||
env["QUERY_STRING"].should.match "baz=2"
|
||||
env["QUERY_STRING"].should.match "foo[bar]=1"
|
||||
env["PATH_INFO"].should.equal "/foo"
|
||||
env["mock.postdata"].should.equal ""
|
||||
end
|
||||
|
||||
specify "should accept params and build url encoded params for POST requests" do
|
||||
res = Rack::MockRequest.new(app).post("/foo", :params => {:foo => {:bar => "1"}})
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "POST"
|
||||
env["QUERY_STRING"].should.equal ""
|
||||
env["PATH_INFO"].should.equal "/foo"
|
||||
env["CONTENT_TYPE"].should.equal "application/x-www-form-urlencoded"
|
||||
env["mock.postdata"].should.equal "foo[bar]=1"
|
||||
end
|
||||
|
||||
specify "should accept raw input in params for POST requests" do
|
||||
res = Rack::MockRequest.new(app).post("/foo", :params => "foo[bar]=1")
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "POST"
|
||||
env["QUERY_STRING"].should.equal ""
|
||||
env["PATH_INFO"].should.equal "/foo"
|
||||
env["CONTENT_TYPE"].should.equal "application/x-www-form-urlencoded"
|
||||
env["mock.postdata"].should.equal "foo[bar]=1"
|
||||
end
|
||||
|
||||
specify "should accept params and build multipart encoded params for POST requests" do
|
||||
files = Rack::Utils::Multipart::UploadedFile.new(File.join(File.dirname(__FILE__), "multipart", "file1.txt"))
|
||||
res = Rack::MockRequest.new(app).post("/foo", :params => { "submit-name" => "Larry", "files" => files })
|
||||
env = YAML.load(res.body)
|
||||
env["REQUEST_METHOD"].should.equal "POST"
|
||||
env["QUERY_STRING"].should.equal ""
|
||||
env["PATH_INFO"].should.equal "/foo"
|
||||
env["CONTENT_TYPE"].should.equal "multipart/form-data; boundary=AaB03x"
|
||||
env["mock.postdata"].length.should.equal 206
|
||||
end
|
||||
|
||||
specify "should behave valid according to the Rack spec" do
|
||||
lambda {
|
||||
res = Rack::MockRequest.new(app).
|
||||
|
@ -130,7 +216,7 @@ context "Rack::MockResponse" do
|
|||
res.original_headers["Content-Type"].should.equal "text/yaml"
|
||||
res["Content-Type"].should.equal "text/yaml"
|
||||
res.content_type.should.equal "text/yaml"
|
||||
res.content_length.should.be 401 # needs change often.
|
||||
res.content_length.should.be 414 # needs change often.
|
||||
res.location.should.be.nil
|
||||
end
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@ require 'rack/urlmap'
|
|||
require 'rack/lint'
|
||||
require 'testrequest'
|
||||
require 'timeout'
|
||||
|
||||
|
||||
Thread.abort_on_exception = true
|
||||
$tcp_defer_accept_opts = nil
|
||||
$tcp_cork_opts = nil
|
||||
|
||||
context "Rack::Handler::Mongrel" do
|
||||
include TestRequest::Helpers
|
||||
|
||||
|
||||
setup do
|
||||
server = Mongrel::HttpServer.new(@host='0.0.0.0', @port=9201)
|
||||
server.register('/test',
|
||||
|
@ -41,7 +41,7 @@ context "Rack::Handler::Mongrel" do
|
|||
|
||||
specify "should have rack headers" do
|
||||
GET("/test")
|
||||
response["rack.version"].should.equal [1,0]
|
||||
response["rack.version"].should.equal [1,1]
|
||||
response["rack.multithread"].should.be true
|
||||
response["rack.multiprocess"].should.be false
|
||||
response["rack.run_once"].should.be false
|
||||
|
@ -52,7 +52,7 @@ context "Rack::Handler::Mongrel" do
|
|||
response["REQUEST_METHOD"].should.equal "GET"
|
||||
response["SCRIPT_NAME"].should.equal "/test"
|
||||
response["REQUEST_PATH"].should.equal "/test"
|
||||
response["PATH_INFO"].should.be.nil
|
||||
response["PATH_INFO"].should.be.equal ""
|
||||
response["QUERY_STRING"].should.equal ""
|
||||
response["test.postdata"].should.equal ""
|
||||
|
||||
|
|
13
vendor/plugins/rack/test/spec_rack_nulllogger.rb
vendored
Normal file
13
vendor/plugins/rack/test/spec_rack_nulllogger.rb
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
require 'rack/nulllogger'
|
||||
require 'rack/lint'
|
||||
require 'rack/mock'
|
||||
|
||||
context "Rack::NullLogger" do
|
||||
specify "acks as a nop logger" do
|
||||
app = lambda { |env|
|
||||
env['rack.logger'].warn "b00m"
|
||||
[200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]]
|
||||
}
|
||||
Rack::NullLogger.new(app).call({})
|
||||
end
|
||||
end
|
53
vendor/plugins/rack/test/spec_rack_request.rb
vendored
53
vendor/plugins/rack/test/spec_rack_request.rb
vendored
|
@ -35,9 +35,18 @@ context "Rack::Request" do
|
|||
req.host.should.equal "www2.example.org"
|
||||
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org:9292")
|
||||
Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org", "SERVER_PORT" => "9292")
|
||||
req.host.should.equal "example.org"
|
||||
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org:9292")
|
||||
req.host.should.equal "example.org"
|
||||
|
||||
env = Rack::MockRequest.env_for("/", "SERVER_ADDR" => "192.168.1.1", "SERVER_PORT" => "9292")
|
||||
env.delete("SERVER_NAME")
|
||||
req = Rack::Request.new(env)
|
||||
req.host.should.equal "192.168.1.1"
|
||||
|
||||
env = Rack::MockRequest.env_for("/")
|
||||
env.delete("SERVER_NAME")
|
||||
req = Rack::Request.new(env)
|
||||
|
@ -52,9 +61,16 @@ context "Rack::Request" do
|
|||
req.params.should.equal "foo" => "bar", "quux" => "bla"
|
||||
end
|
||||
|
||||
specify "can parse POST data" do
|
||||
specify "raises if rack.input is missing" do
|
||||
req = Rack::Request.new({})
|
||||
lambda { req.POST }.should.raise(RuntimeError)
|
||||
end
|
||||
|
||||
specify "can parse POST data when method is POST and no Content-Type given" do
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/?foo=quux", :input => "foo=bar&quux=bla")
|
||||
Rack::MockRequest.env_for("/?foo=quux",
|
||||
"REQUEST_METHOD" => 'POST',
|
||||
:input => "foo=bar&quux=bla")
|
||||
req.content_type.should.be.nil
|
||||
req.media_type.should.be.nil
|
||||
req.query_string.should.equal "foo=quux"
|
||||
|
@ -63,7 +79,7 @@ context "Rack::Request" do
|
|||
req.params.should.equal "foo" => "bar", "quux" => "bla"
|
||||
end
|
||||
|
||||
specify "can parse POST data with explicit content type" do
|
||||
specify "can parse POST data with explicit content type regardless of method" do
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/",
|
||||
"CONTENT_TYPE" => 'application/x-www-form-urlencoded;foo=bar',
|
||||
|
@ -78,6 +94,7 @@ context "Rack::Request" do
|
|||
specify "does not parse POST data when media type is not form-data" do
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/?foo=quux",
|
||||
"REQUEST_METHOD" => 'POST',
|
||||
"CONTENT_TYPE" => 'text/plain;charset=utf-8',
|
||||
:input => "foo=bar&quux=bla")
|
||||
req.content_type.should.equal 'text/plain;charset=utf-8'
|
||||
|
@ -88,6 +105,16 @@ context "Rack::Request" do
|
|||
req.body.read.should.equal "foo=bar&quux=bla"
|
||||
end
|
||||
|
||||
specify "can parse POST data on PUT when media type is form-data" do
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/?foo=quux",
|
||||
"REQUEST_METHOD" => 'PUT',
|
||||
"CONTENT_TYPE" => 'application/x-www-form-urlencoded',
|
||||
:input => "foo=bar&quux=bla")
|
||||
req.POST.should.equal "foo" => "bar", "quux" => "bla"
|
||||
req.body.read.should.equal "foo=bar&quux=bla"
|
||||
end
|
||||
|
||||
specify "rewinds input after parsing POST data" do
|
||||
input = StringIO.new("foo=bar&quux=bla")
|
||||
req = Rack::Request.new \
|
||||
|
@ -100,7 +127,8 @@ context "Rack::Request" do
|
|||
|
||||
specify "cleans up Safari's ajax POST body" do
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/", :input => "foo=bar&quux=bla\0")
|
||||
Rack::MockRequest.env_for("/",
|
||||
'REQUEST_METHOD' => 'POST', :input => "foo=bar&quux=bla\0")
|
||||
req.POST.should.equal "foo" => "bar", "quux" => "bla"
|
||||
end
|
||||
|
||||
|
@ -147,9 +175,21 @@ context "Rack::Request" do
|
|||
req.referer.should.equal "/"
|
||||
end
|
||||
|
||||
specify "user agent should be extracted correct" do
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/", "HTTP_USER_AGENT" => "Mozilla/4.0 (compatible)")
|
||||
req.user_agent.should.equal "Mozilla/4.0 (compatible)"
|
||||
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/")
|
||||
req.user_agent.should.equal nil
|
||||
end
|
||||
|
||||
specify "can cache, but invalidates the cache" do
|
||||
req = Rack::Request.new \
|
||||
Rack::MockRequest.env_for("/?foo=quux", :input => "foo=bar&quux=bla")
|
||||
Rack::MockRequest.env_for("/?foo=quux",
|
||||
"CONTENT_TYPE" => "application/x-www-form-urlencoded",
|
||||
:input => "foo=bar&quux=bla")
|
||||
req.GET.should.equal "foo" => "quux"
|
||||
req.GET.should.equal "foo" => "quux"
|
||||
req.env["QUERY_STRING"] = "bla=foo"
|
||||
|
@ -424,6 +464,7 @@ Content-Transfer-Encoding: base64\r
|
|||
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
|
||||
--AaB03x--\r
|
||||
EOF
|
||||
input.force_encoding("ASCII-8BIT") if input.respond_to? :force_encoding
|
||||
res = Rack::MockRequest.new(Rack::Lint.new(app)).get "/",
|
||||
"CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
|
||||
"CONTENT_LENGTH" => input.size.to_s, "rack.input" => StringIO.new(input)
|
||||
|
|
|
@ -118,6 +118,9 @@ context "Rack::Response" do
|
|||
|
||||
r = Rack::Response.new([], 500)
|
||||
r.status.should.equal 500
|
||||
|
||||
r = Rack::Response.new([], "200 OK")
|
||||
r.status.should.equal 200
|
||||
end
|
||||
|
||||
specify "has a constructor that can take a block" do
|
||||
|
|
35
vendor/plugins/rack/test/spec_rack_runtime.rb
vendored
Normal file
35
vendor/plugins/rack/test/spec_rack_runtime.rb
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
require 'test/spec'
|
||||
require 'rack/mock'
|
||||
require 'rack/runtime'
|
||||
|
||||
context "Rack::Runtime" do
|
||||
specify "sets X-Runtime is none is set" do
|
||||
app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, "Hello, World!"] }
|
||||
response = Rack::Runtime.new(app).call({})
|
||||
response[1]['X-Runtime'].should =~ /[\d\.]+/
|
||||
end
|
||||
|
||||
specify "does not set the X-Runtime if it is already set" do
|
||||
app = lambda { |env| [200, {'Content-Type' => 'text/plain', "X-Runtime" => "foobar"}, "Hello, World!"] }
|
||||
response = Rack::Runtime.new(app).call({})
|
||||
response[1]['X-Runtime'].should == "foobar"
|
||||
end
|
||||
|
||||
specify "should allow a suffix to be set" do
|
||||
app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, "Hello, World!"] }
|
||||
response = Rack::Runtime.new(app, "Test").call({})
|
||||
response[1]['X-Runtime-Test'].should =~ /[\d\.]+/
|
||||
end
|
||||
|
||||
specify "should allow multiple timers to be set" do
|
||||
app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, "Hello, World!"] }
|
||||
runtime1 = Rack::Runtime.new(app, "App")
|
||||
runtime2 = Rack::Runtime.new(runtime1, "All")
|
||||
response = runtime2.call({})
|
||||
|
||||
response[1]['X-Runtime-App'].should =~ /[\d\.]+/
|
||||
response[1]['X-Runtime-All'].should =~ /[\d\.]+/
|
||||
|
||||
Float(response[1]['X-Runtime-All']).should > Float(response[1]['X-Runtime-App'])
|
||||
end
|
||||
end
|
86
vendor/plugins/rack/test/spec_rack_sendfile.rb
vendored
Normal file
86
vendor/plugins/rack/test/spec_rack_sendfile.rb
vendored
Normal file
|
@ -0,0 +1,86 @@
|
|||
require 'test/spec'
|
||||
require 'rack/mock'
|
||||
require 'rack/sendfile'
|
||||
|
||||
context "Rack::File" do
|
||||
specify "should respond to #to_path" do
|
||||
Rack::File.new(Dir.pwd).should.respond_to :to_path
|
||||
end
|
||||
end
|
||||
|
||||
context "Rack::Sendfile" do
|
||||
def sendfile_body
|
||||
res = ['Hello World']
|
||||
def res.to_path ; "/tmp/hello.txt" ; end
|
||||
res
|
||||
end
|
||||
|
||||
def simple_app(body=sendfile_body)
|
||||
lambda { |env| [200, {'Content-Type' => 'text/plain'}, body] }
|
||||
end
|
||||
|
||||
def sendfile_app(body=sendfile_body)
|
||||
Rack::Sendfile.new(simple_app(body))
|
||||
end
|
||||
|
||||
setup do
|
||||
@request = Rack::MockRequest.new(sendfile_app)
|
||||
end
|
||||
|
||||
def request(headers={})
|
||||
yield @request.get('/', headers)
|
||||
end
|
||||
|
||||
specify "does nothing when no X-Sendfile-Type header present" do
|
||||
request do |response|
|
||||
response.should.be.ok
|
||||
response.body.should.equal 'Hello World'
|
||||
response.headers.should.not.include 'X-Sendfile'
|
||||
end
|
||||
end
|
||||
|
||||
specify "sets X-Sendfile response header and discards body" do
|
||||
request 'HTTP_X_SENDFILE_TYPE' => 'X-Sendfile' do |response|
|
||||
response.should.be.ok
|
||||
response.body.should.be.empty
|
||||
response.headers['X-Sendfile'].should.equal '/tmp/hello.txt'
|
||||
end
|
||||
end
|
||||
|
||||
specify "sets X-Lighttpd-Send-File response header and discards body" do
|
||||
request 'HTTP_X_SENDFILE_TYPE' => 'X-Lighttpd-Send-File' do |response|
|
||||
response.should.be.ok
|
||||
response.body.should.be.empty
|
||||
response.headers['X-Lighttpd-Send-File'].should.equal '/tmp/hello.txt'
|
||||
end
|
||||
end
|
||||
|
||||
specify "sets X-Accel-Redirect response header and discards body" do
|
||||
headers = {
|
||||
'HTTP_X_SENDFILE_TYPE' => 'X-Accel-Redirect',
|
||||
'HTTP_X_ACCEL_MAPPING' => '/tmp/=/foo/bar/'
|
||||
}
|
||||
request headers do |response|
|
||||
response.should.be.ok
|
||||
response.body.should.be.empty
|
||||
response.headers['X-Accel-Redirect'].should.equal '/foo/bar/hello.txt'
|
||||
end
|
||||
end
|
||||
|
||||
specify 'writes to rack.error when no X-Accel-Mapping is specified' do
|
||||
request 'HTTP_X_SENDFILE_TYPE' => 'X-Accel-Redirect' do |response|
|
||||
response.should.be.ok
|
||||
response.body.should.equal 'Hello World'
|
||||
response.headers.should.not.include 'X-Accel-Redirect'
|
||||
response.errors.should.include 'X-Accel-Mapping'
|
||||
end
|
||||
end
|
||||
|
||||
specify 'does nothing when body does not respond to #to_path' do
|
||||
@request = Rack::MockRequest.new(sendfile_app(['Not a file...']))
|
||||
request 'HTTP_X_SENDFILE_TYPE' => 'X-Sendfile' do |response|
|
||||
response.body.should.equal 'Not a file...'
|
||||
response.headers.should.not.include 'X-Sendfile'
|
||||
end
|
||||
end
|
||||
end
|
|
@ -8,7 +8,7 @@ begin
|
|||
|
||||
context "Rack::Session::Memcache" do
|
||||
session_key = Rack::Session::Memcache::DEFAULT_OPTIONS[:key]
|
||||
session_match = /#{session_key}=[0-9a-fA-F]+;/
|
||||
session_match = /#{session_key}=([0-9a-fA-F]+);/
|
||||
incrementor = lambda do |env|
|
||||
env["rack.session"]["counter"] ||= 0
|
||||
env["rack.session"]["counter"] += 1
|
||||
|
@ -27,14 +27,20 @@ begin
|
|||
incrementor.call(env)
|
||||
end
|
||||
|
||||
specify "MemCache can connect to existing server" do
|
||||
test_pool = MemCache.new :namespace => 'test:rack:session'
|
||||
specify "faults on no connection" do
|
||||
if RUBY_VERSION < "1.9"
|
||||
lambda do
|
||||
Rack::Session::Memcache.new incrementor, :memcache_server => 'nosuchserver'
|
||||
end.should.raise
|
||||
else
|
||||
lambda do
|
||||
Rack::Session::Memcache.new incrementor, :memcache_server => 'nosuchserver'
|
||||
end.should.raise ArgumentError
|
||||
end
|
||||
end
|
||||
|
||||
specify "faults on no connection" do
|
||||
lambda do
|
||||
Rack::Session::Memcache.new(incrementor, :memcache_server => '')
|
||||
end.should.raise
|
||||
specify "connect to existing server" do
|
||||
test_pool = MemCache.new incrementor, :namespace => 'test:rack:session'
|
||||
end
|
||||
|
||||
specify "creates a new cookie" do
|
||||
|
@ -151,6 +157,31 @@ begin
|
|||
res3.body.should.equal '{"counter"=>4}'
|
||||
end
|
||||
|
||||
specify "deep hashes are correctly updated" do
|
||||
store = nil
|
||||
hash_check = proc do |env|
|
||||
session = env['rack.session']
|
||||
unless session.include? 'test'
|
||||
session.update :a => :b, :c => { :d => :e },
|
||||
:f => { :g => { :h => :i} }, 'test' => true
|
||||
else
|
||||
session[:f][:g][:h] = :j
|
||||
end
|
||||
[200, {}, session.inspect]
|
||||
end
|
||||
pool = Rack::Session::Memcache.new(hash_check)
|
||||
req = Rack::MockRequest.new(pool)
|
||||
|
||||
res0 = req.get("/")
|
||||
session_id = (cookie = res0["Set-Cookie"])[session_match, 1]
|
||||
ses0 = pool.pool.get(session_id, true)
|
||||
|
||||
res1 = req.get("/", "HTTP_COOKIE" => cookie)
|
||||
ses1 = pool.pool.get(session_id, true)
|
||||
|
||||
ses1.should.not.equal ses0
|
||||
end
|
||||
|
||||
# anyone know how to do this better?
|
||||
specify "multithread: should cleanly merge sessions" do
|
||||
next unless $DEBUG
|
||||
|
@ -161,7 +192,7 @@ begin
|
|||
res = req.get('/')
|
||||
res.body.should.equal '{"counter"=>1}'
|
||||
cookie = res["Set-Cookie"]
|
||||
sess_id = cookie[/#{pool.key}=([^,;]+)/,1]
|
||||
session_id = cookie[session_match, 1]
|
||||
|
||||
delta_incrementor = lambda do |env|
|
||||
# emulate disconjoinment of threading
|
||||
|
@ -178,12 +209,12 @@ begin
|
|||
run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
|
||||
end
|
||||
end.reverse.map{|t| t.run.join.value }
|
||||
r.each do |res|
|
||||
res['Set-Cookie'].should.equal cookie
|
||||
res.body.should.include '"counter"=>2'
|
||||
r.each do |request|
|
||||
request['Set-Cookie'].should.equal cookie
|
||||
request.body.should.include '"counter"=>2'
|
||||
end
|
||||
|
||||
session = pool.pool.get(sess_id)
|
||||
session = pool.pool.get(session_id)
|
||||
session.size.should.be tnum+1 # counter
|
||||
session['counter'].should.be 2 # meeeh
|
||||
|
||||
|
@ -202,12 +233,12 @@ begin
|
|||
run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
|
||||
end
|
||||
end.reverse.map{|t| t.run.join.value }
|
||||
r.each do |res|
|
||||
res['Set-Cookie'].should.equal cookie
|
||||
res.body.should.include '"counter"=>3'
|
||||
r.each do |request|
|
||||
request['Set-Cookie'].should.equal cookie
|
||||
request.body.should.include '"counter"=>3'
|
||||
end
|
||||
|
||||
session = pool.pool.get(sess_id)
|
||||
session = pool.pool.get(session_id)
|
||||
session.size.should.be tnum+1
|
||||
session['counter'].should.be 3
|
||||
|
||||
|
@ -224,17 +255,19 @@ begin
|
|||
run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
|
||||
end
|
||||
end.reverse.map{|t| t.run.join.value }
|
||||
r.each do |res|
|
||||
res['Set-Cookie'].should.equal cookie
|
||||
res.body.should.include '"foo"=>"bar"'
|
||||
r.each do |request|
|
||||
request['Set-Cookie'].should.equal cookie
|
||||
request.body.should.include '"foo"=>"bar"'
|
||||
end
|
||||
|
||||
session = pool.pool.get(sess_id)
|
||||
session = pool.pool.get(session_id)
|
||||
session.size.should.be r.size+1
|
||||
session['counter'].should.be.nil?
|
||||
session['foo'].should.equal 'bar'
|
||||
end
|
||||
end
|
||||
rescue RuntimeError
|
||||
$stderr.puts "Skipping Rack::Session::Memcache tests. Start memcached and try again."
|
||||
rescue LoadError
|
||||
$stderr.puts "Skipping Rack::Session::Memcache tests (Memcache is required). `gem install memcache-client` and try again."
|
||||
end
|
||||
|
|
30
vendor/plugins/rack/test/spec_rack_urlmap.rb
vendored
30
vendor/plugins/rack/test/spec_rack_urlmap.rb
vendored
|
@ -44,6 +44,12 @@ context "Rack::URLMap" do
|
|||
res["X-ScriptName"].should.equal "/foo/bar"
|
||||
res["X-PathInfo"].should.equal "/"
|
||||
|
||||
res = Rack::MockRequest.new(map).get("/foo///bar//quux")
|
||||
res.status.should.equal 200
|
||||
res.should.be.ok
|
||||
res["X-ScriptName"].should.equal "/foo/bar"
|
||||
res["X-PathInfo"].should.equal "//quux"
|
||||
|
||||
res = Rack::MockRequest.new(map).get("/foo/quux", "SCRIPT_NAME" => "/bleh")
|
||||
res.should.be.ok
|
||||
res["X-ScriptName"].should.equal "/bleh/foo"
|
||||
|
@ -182,4 +188,28 @@ context "Rack::URLMap" do
|
|||
res["X-PathInfo"].should.equal "/"
|
||||
res["X-ScriptName"].should.equal ""
|
||||
end
|
||||
|
||||
specify "should not squeeze slashes" do
|
||||
map = Rack::URLMap.new("/" => lambda { |env|
|
||||
[200,
|
||||
{ "Content-Type" => "text/plain",
|
||||
"X-Position" => "root",
|
||||
"X-PathInfo" => env["PATH_INFO"],
|
||||
"X-ScriptName" => env["SCRIPT_NAME"]
|
||||
}, [""]]},
|
||||
"/foo" => lambda { |env|
|
||||
[200,
|
||||
{ "Content-Type" => "text/plain",
|
||||
"X-Position" => "foo",
|
||||
"X-PathInfo" => env["PATH_INFO"],
|
||||
"X-ScriptName" => env["SCRIPT_NAME"]
|
||||
}, [""]]}
|
||||
)
|
||||
|
||||
res = Rack::MockRequest.new(map).get("/http://example.org/bar")
|
||||
res.should.be.ok
|
||||
res["X-Position"].should.equal "root"
|
||||
res["X-PathInfo"].should.equal "/http://example.org/bar"
|
||||
res["X-ScriptName"].should.equal ""
|
||||
end
|
||||
end
|
||||
|
|
177
vendor/plugins/rack/test/spec_rack_utils.rb
vendored
177
vendor/plugins/rack/test/spec_rack_utils.rb
vendored
|
@ -30,7 +30,10 @@ context "Rack::Utils" do
|
|||
end
|
||||
|
||||
specify "should parse query strings correctly" do
|
||||
Rack::Utils.parse_query("foo=bar").should.equal "foo" => "bar"
|
||||
Rack::Utils.parse_query("foo=bar").
|
||||
should.equal "foo" => "bar"
|
||||
Rack::Utils.parse_query("foo=\"bar\"").
|
||||
should.equal "foo" => "bar"
|
||||
Rack::Utils.parse_query("foo=bar&foo=quux").
|
||||
should.equal "foo" => ["bar", "quux"]
|
||||
Rack::Utils.parse_query("foo=1&bar=2").
|
||||
|
@ -47,6 +50,8 @@ context "Rack::Utils" do
|
|||
should.equal "foo" => ""
|
||||
Rack::Utils.parse_nested_query("foo=bar").
|
||||
should.equal "foo" => "bar"
|
||||
Rack::Utils.parse_nested_query("foo=\"bar\"").
|
||||
should.equal "foo" => "bar"
|
||||
|
||||
Rack::Utils.parse_nested_query("foo=bar&foo=quux").
|
||||
should.equal "foo" => "quux"
|
||||
|
@ -126,6 +131,53 @@ context "Rack::Utils" do
|
|||
should.equal "my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F"
|
||||
end
|
||||
|
||||
specify "should build nested query strings correctly" do
|
||||
Rack::Utils.build_nested_query("foo" => nil).should.equal "foo"
|
||||
Rack::Utils.build_nested_query("foo" => "").should.equal "foo="
|
||||
Rack::Utils.build_nested_query("foo" => "bar").should.equal "foo=bar"
|
||||
|
||||
Rack::Utils.build_nested_query("foo" => "1", "bar" => "2").
|
||||
should.equal "foo=1&bar=2"
|
||||
Rack::Utils.build_nested_query("my weird field" => "q1!2\"'w$5&7/z8)?").
|
||||
should.equal "my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F"
|
||||
|
||||
Rack::Utils.build_nested_query("foo" => [nil]).
|
||||
should.equal "foo[]"
|
||||
Rack::Utils.build_nested_query("foo" => [""]).
|
||||
should.equal "foo[]="
|
||||
Rack::Utils.build_nested_query("foo" => ["bar"]).
|
||||
should.equal "foo[]=bar"
|
||||
|
||||
# The ordering of the output query string is unpredictable with 1.8's
|
||||
# unordered hash. Test that build_nested_query performs the inverse
|
||||
# function of parse_nested_query.
|
||||
[{"foo" => nil, "bar" => ""},
|
||||
{"foo" => "bar", "baz" => ""},
|
||||
{"foo" => ["1", "2"]},
|
||||
{"foo" => "bar", "baz" => ["1", "2", "3"]},
|
||||
{"foo" => ["bar"], "baz" => ["1", "2", "3"]},
|
||||
{"foo" => ["1", "2"]},
|
||||
{"foo" => "bar", "baz" => ["1", "2", "3"]},
|
||||
{"x" => {"y" => {"z" => "1"}}},
|
||||
{"x" => {"y" => {"z" => ["1"]}}},
|
||||
{"x" => {"y" => {"z" => ["1", "2"]}}},
|
||||
{"x" => {"y" => [{"z" => "1"}]}},
|
||||
{"x" => {"y" => [{"z" => ["1"]}]}},
|
||||
{"x" => {"y" => [{"z" => "1", "w" => "2"}]}},
|
||||
{"x" => {"y" => [{"v" => {"w" => "1"}}]}},
|
||||
{"x" => {"y" => [{"z" => "1", "v" => {"w" => "2"}}]}},
|
||||
{"x" => {"y" => [{"z" => "1"}, {"z" => "2"}]}},
|
||||
{"x" => {"y" => [{"z" => "1", "w" => "a"}, {"z" => "2", "w" => "3"}]}}
|
||||
].each { |params|
|
||||
qs = Rack::Utils.build_nested_query(params)
|
||||
Rack::Utils.parse_nested_query(qs).should.equal params
|
||||
}
|
||||
|
||||
lambda { Rack::Utils.build_nested_query("foo=bar") }.
|
||||
should.raise(ArgumentError).
|
||||
message.should.equal "value must be a Hash"
|
||||
end
|
||||
|
||||
specify "should figure out which encodings are acceptable" do
|
||||
helper = lambda do |a, b|
|
||||
request = Rack::Request.new(Rack::MockRequest.env_for("", "HTTP_ACCEPT_ENCODING" => a))
|
||||
|
@ -152,6 +204,18 @@ context "Rack::Utils" do
|
|||
specify "should return the bytesize of String" do
|
||||
Rack::Utils.bytesize("FOO\xE2\x82\xAC").should.equal 6
|
||||
end
|
||||
|
||||
specify "should return status code for integer" do
|
||||
Rack::Utils.status_code(200).should.equal 200
|
||||
end
|
||||
|
||||
specify "should return status code for string" do
|
||||
Rack::Utils.status_code("200").should.equal 200
|
||||
end
|
||||
|
||||
specify "should return status code for symbol" do
|
||||
Rack::Utils.status_code(:ok).should.equal 200
|
||||
end
|
||||
end
|
||||
|
||||
context "Rack::Utils::HeaderHash" do
|
||||
|
@ -190,30 +254,53 @@ context "Rack::Utils::HeaderHash" do
|
|||
h = Rack::Utils::HeaderHash.new("foo" => ["bar", "baz"])
|
||||
h.to_hash.should.equal({ "foo" => "bar\nbaz" })
|
||||
end
|
||||
|
||||
|
||||
specify "should replace hashes correctly" do
|
||||
h = Rack::Utils::HeaderHash.new("Foo-Bar" => "baz")
|
||||
j = {"foo" => "bar"}
|
||||
h.replace(j)
|
||||
h["foo"].should.equal "bar"
|
||||
end
|
||||
|
||||
specify "should be able to delete the given key case-sensitively" do
|
||||
h = Rack::Utils::HeaderHash.new("foo" => "bar")
|
||||
h.delete("foo")
|
||||
h["foo"].should.be.nil
|
||||
h["FOO"].should.be.nil
|
||||
end
|
||||
|
||||
|
||||
specify "should be able to delete the given key case-insensitively" do
|
||||
h = Rack::Utils::HeaderHash.new("foo" => "bar")
|
||||
h.delete("FOO")
|
||||
h["foo"].should.be.nil
|
||||
h["FOO"].should.be.nil
|
||||
end
|
||||
|
||||
|
||||
specify "should return the deleted value when #delete is called on an existing key" do
|
||||
h = Rack::Utils::HeaderHash.new("foo" => "bar")
|
||||
h.delete("Foo").should.equal("bar")
|
||||
end
|
||||
|
||||
|
||||
specify "should return nil when #delete is called on a non-existant key" do
|
||||
h = Rack::Utils::HeaderHash.new("foo" => "bar")
|
||||
h.delete("Hello").should.be.nil
|
||||
end
|
||||
|
||||
specify "should avoid unnecessary object creation if possible" do
|
||||
a = Rack::Utils::HeaderHash.new("foo" => "bar")
|
||||
b = Rack::Utils::HeaderHash.new(a)
|
||||
b.object_id.should.equal(a.object_id)
|
||||
b.should.equal(a)
|
||||
end
|
||||
|
||||
specify "should convert Array values to Strings when responding to #each" do
|
||||
h = Rack::Utils::HeaderHash.new("foo" => ["bar", "baz"])
|
||||
h.each do |k,v|
|
||||
k.should.equal("foo")
|
||||
v.should.equal("bar\nbaz")
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "Rack::Utils::Context" do
|
||||
|
@ -372,9 +459,83 @@ context "Rack::Utils::Multipart" do
|
|||
input.read.length.should.equal 197
|
||||
end
|
||||
|
||||
specify "builds multipart body" do
|
||||
files = Rack::Utils::Multipart::UploadedFile.new(multipart_file("file1.txt"))
|
||||
data = Rack::Utils::Multipart.build_multipart("submit-name" => "Larry", "files" => files)
|
||||
|
||||
options = {
|
||||
"CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x",
|
||||
"CONTENT_LENGTH" => data.length.to_s,
|
||||
:input => StringIO.new(data)
|
||||
}
|
||||
env = Rack::MockRequest.env_for("/", options)
|
||||
params = Rack::Utils::Multipart.parse_multipart(env)
|
||||
params["submit-name"].should.equal "Larry"
|
||||
params["files"][:filename].should.equal "file1.txt"
|
||||
params["files"][:tempfile].read.should.equal "contents"
|
||||
end
|
||||
|
||||
specify "builds nested multipart body" do
|
||||
files = Rack::Utils::Multipart::UploadedFile.new(multipart_file("file1.txt"))
|
||||
data = Rack::Utils::Multipart.build_multipart("people" => [{"submit-name" => "Larry", "files" => files}])
|
||||
|
||||
options = {
|
||||
"CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x",
|
||||
"CONTENT_LENGTH" => data.length.to_s,
|
||||
:input => StringIO.new(data)
|
||||
}
|
||||
env = Rack::MockRequest.env_for("/", options)
|
||||
params = Rack::Utils::Multipart.parse_multipart(env)
|
||||
params["people"][0]["submit-name"].should.equal "Larry"
|
||||
params["people"][0]["files"][:filename].should.equal "file1.txt"
|
||||
params["people"][0]["files"][:tempfile].read.should.equal "contents"
|
||||
end
|
||||
|
||||
specify "can parse fields that end at the end of the buffer" do
|
||||
input = File.read(multipart_file("bad_robots"))
|
||||
|
||||
req = Rack::Request.new Rack::MockRequest.env_for("/",
|
||||
"CONTENT_TYPE" => "multipart/form-data, boundary=1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon",
|
||||
"CONTENT_LENGTH" => input.size,
|
||||
:input => input)
|
||||
|
||||
req.POST['file.path'].should.equal "/var/tmp/uploads/4/0001728414"
|
||||
req.POST['addresses'].should.not.equal nil
|
||||
end
|
||||
|
||||
specify "builds complete params with the chunk size of 16384 slicing exactly on boundary" do
|
||||
data = File.open(multipart_file("fail_16384_nofile")) { |f| f.read }.gsub(/\n/, "\r\n")
|
||||
options = {
|
||||
"CONTENT_TYPE" => "multipart/form-data; boundary=----WebKitFormBoundaryWsY0GnpbI5U7ztzo",
|
||||
"CONTENT_LENGTH" => data.length.to_s,
|
||||
:input => StringIO.new(data)
|
||||
}
|
||||
env = Rack::MockRequest.env_for("/", options)
|
||||
params = Rack::Utils::Multipart.parse_multipart(env)
|
||||
|
||||
params.should.not.equal nil
|
||||
params.keys.should.include "AAAAAAAAAAAAAAAAAAA"
|
||||
params["AAAAAAAAAAAAAAAAAAA"].keys.should.include "PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"
|
||||
params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"].keys.should.include "new"
|
||||
params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"]["new"].keys.should.include "-2"
|
||||
params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"]["new"]["-2"].keys.should.include "ba_unit_id"
|
||||
params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"]["new"]["-2"]["ba_unit_id"].should.equal "1017"
|
||||
end
|
||||
|
||||
specify "should return nil if no UploadedFiles were used" do
|
||||
data = Rack::Utils::Multipart.build_multipart("people" => [{"submit-name" => "Larry", "files" => "contents"}])
|
||||
data.should.equal nil
|
||||
end
|
||||
|
||||
specify "should raise ArgumentError if params is not a Hash" do
|
||||
lambda { Rack::Utils::Multipart.build_multipart("foo=bar") }.
|
||||
should.raise(ArgumentError).
|
||||
message.should.equal "value must be a Hash"
|
||||
end
|
||||
|
||||
private
|
||||
def multipart_fixture(name)
|
||||
file = File.join(File.dirname(__FILE__), "multipart", name.to_s)
|
||||
file = multipart_file(name)
|
||||
data = File.open(file, 'rb') { |io| io.read }
|
||||
|
||||
type = "multipart/form-data; boundary=AaB03x"
|
||||
|
@ -384,4 +545,8 @@ context "Rack::Utils::Multipart" do
|
|||
"CONTENT_LENGTH" => length.to_s,
|
||||
:input => StringIO.new(data) }
|
||||
end
|
||||
|
||||
def multipart_file(name)
|
||||
File.join(File.dirname(__FILE__), "multipart", name.to_s)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ Thread.abort_on_exception = true
|
|||
|
||||
context "Rack::Handler::WEBrick" do
|
||||
include TestRequest::Helpers
|
||||
|
||||
|
||||
setup do
|
||||
@server = WEBrick::HTTPServer.new(:Host => @host='0.0.0.0',
|
||||
:Port => @port=9202,
|
||||
|
@ -39,7 +39,7 @@ context "Rack::Handler::WEBrick" do
|
|||
|
||||
specify "should have rack headers" do
|
||||
GET("/test")
|
||||
response["rack.version"].should.equal [1,0]
|
||||
response["rack.version"].should.equal [1,1]
|
||||
response["rack.multithread"].should.be true
|
||||
response["rack.multiprocess"].should.be false
|
||||
response["rack.run_once"].should.be false
|
||||
|
@ -50,7 +50,7 @@ context "Rack::Handler::WEBrick" do
|
|||
response["REQUEST_METHOD"].should.equal "GET"
|
||||
response["SCRIPT_NAME"].should.equal "/test"
|
||||
response["REQUEST_PATH"].should.equal "/"
|
||||
response["PATH_INFO"].should.be.nil
|
||||
response["PATH_INFO"].should.be.equal ""
|
||||
response["QUERY_STRING"].should.equal ""
|
||||
response["test.postdata"].should.equal ""
|
||||
|
||||
|
@ -60,7 +60,7 @@ context "Rack::Handler::WEBrick" do
|
|||
response["REQUEST_PATH"].should.equal "/"
|
||||
response["PATH_INFO"].should.equal "/foo"
|
||||
response["QUERY_STRING"].should.equal "quux=1"
|
||||
|
||||
|
||||
GET("/test/foo%25encoding?quux=1")
|
||||
response["REQUEST_METHOD"].should.equal "GET"
|
||||
response["SCRIPT_NAME"].should.equal "/test"
|
||||
|
|
154
vendor/plugins/rack/test/spec_rackup.rb
vendored
Normal file
154
vendor/plugins/rack/test/spec_rackup.rb
vendored
Normal file
|
@ -0,0 +1,154 @@
|
|||
require 'test/spec'
|
||||
require 'testrequest'
|
||||
require 'rack/server'
|
||||
require 'open3'
|
||||
|
||||
begin
|
||||
require "mongrel"
|
||||
|
||||
context "rackup" do
|
||||
include TestRequest::Helpers
|
||||
|
||||
def run_rackup(*args)
|
||||
options = args.last.is_a?(Hash) ? args.pop : {}
|
||||
flags = args.first
|
||||
@host = options[:host] || "0.0.0.0"
|
||||
@port = options[:port] || 9292
|
||||
|
||||
Dir.chdir("#{root}/test/rackup") do
|
||||
@in, @rackup, @err = Open3.popen3("#{Gem.ruby} -S #{rackup} #{flags}")
|
||||
end
|
||||
|
||||
return if options[:port] == false
|
||||
|
||||
# Wait until the server is available
|
||||
begin
|
||||
GET("/")
|
||||
rescue
|
||||
sleep 0.05
|
||||
retry
|
||||
end
|
||||
end
|
||||
|
||||
def output
|
||||
@rackup.read
|
||||
end
|
||||
|
||||
after do
|
||||
# This doesn't actually return a response, so we rescue
|
||||
GET "/die" rescue nil
|
||||
|
||||
Dir["#{root}/**/*.pid"].each do |file|
|
||||
File.delete(file)
|
||||
end
|
||||
|
||||
File.delete("#{root}/log_output") if File.exist?("#{root}/log_output")
|
||||
end
|
||||
|
||||
specify "rackup" do
|
||||
run_rackup
|
||||
response["PATH_INFO"].should.equal '/'
|
||||
response["test.$DEBUG"].should.be false
|
||||
response["test.$EVAL"].should.be nil
|
||||
response["test.$VERBOSE"].should.be false
|
||||
response["test.Ping"].should.be nil
|
||||
response["SERVER_SOFTWARE"].should.not =~ /webrick/
|
||||
end
|
||||
|
||||
specify "rackup --help" do
|
||||
run_rackup "--help", :port => false
|
||||
output.should.match /--port/
|
||||
end
|
||||
|
||||
specify "rackup --port" do
|
||||
run_rackup "--port 9000", :port => 9000
|
||||
response["SERVER_PORT"].should.equal "9000"
|
||||
end
|
||||
|
||||
specify "rackup --debug" do
|
||||
run_rackup "--debug"
|
||||
response["test.$DEBUG"].should.be true
|
||||
end
|
||||
|
||||
specify "rackup --eval" do
|
||||
run_rackup %{--eval "BUKKIT = 'BUKKIT'"}
|
||||
response["test.$EVAL"].should.equal "BUKKIT"
|
||||
end
|
||||
|
||||
specify "rackup --warn" do
|
||||
run_rackup %{--warn}
|
||||
response["test.$VERBOSE"].should.be true
|
||||
end
|
||||
|
||||
specify "rackup --include" do
|
||||
run_rackup %{--include /foo/bar}
|
||||
response["test.$LOAD_PATH"].should.include "/foo/bar"
|
||||
end
|
||||
|
||||
specify "rackup --require" do
|
||||
run_rackup %{--require ping}
|
||||
response["test.Ping"].should.equal "constant"
|
||||
end
|
||||
|
||||
specify "rackup --server" do
|
||||
run_rackup %{--server webrick}
|
||||
response["SERVER_SOFTWARE"].should =~ /webrick/i
|
||||
end
|
||||
|
||||
specify "rackup --host" do
|
||||
run_rackup %{--host 127.0.0.1}, :host => "127.0.0.1"
|
||||
response["REMOTE_ADDR"].should.equal "127.0.0.1"
|
||||
end
|
||||
|
||||
specify "rackup --daemonize --pid" do
|
||||
run_rackup %{--daemonize --pid testing.pid}
|
||||
status.should.be 200
|
||||
@rackup.should.be.eof?
|
||||
Dir["#{root}/**/testing.pid"].should.not.be.empty?
|
||||
end
|
||||
|
||||
specify "rackup --pid" do
|
||||
run_rackup %{--pid testing.pid}
|
||||
status.should.be 200
|
||||
Dir["#{root}/**/testing.pid"].should.not.be.empty?
|
||||
end
|
||||
|
||||
specify "rackup --version" do
|
||||
run_rackup %{--version}, :port => false
|
||||
output.should =~ /1.0/
|
||||
end
|
||||
|
||||
specify "rackup --env development includes lint" do
|
||||
run_rackup
|
||||
GET("/broken_lint")
|
||||
status.should.be 500
|
||||
end
|
||||
|
||||
specify "rackup --env deployment does not include lint" do
|
||||
run_rackup %{--env deployment}
|
||||
GET("/broken_lint")
|
||||
status.should.be 200
|
||||
end
|
||||
|
||||
specify "rackup --env none does not include lint" do
|
||||
run_rackup %{--env none}
|
||||
GET("/broken_lint")
|
||||
status.should.be 200
|
||||
end
|
||||
|
||||
specify "rackup --env deployment does log" do
|
||||
run_rackup %{--env deployment}
|
||||
log = File.read(response["test.stderr"])
|
||||
log.should.be.empty?
|
||||
end
|
||||
|
||||
specify "rackup --env none does not log" do
|
||||
run_rackup %{--env none}
|
||||
GET("/")
|
||||
log = File.read(response["test.stderr"])
|
||||
log.should.be.empty?
|
||||
end
|
||||
end
|
||||
rescue LoadError
|
||||
$stderr.puts "Skipping rackup --server tests (mongrel is required). `gem install thin` and try again."
|
||||
end
|
17
vendor/plugins/rack/test/testrequest.rb
vendored
17
vendor/plugins/rack/test/testrequest.rb
vendored
|
@ -13,6 +13,17 @@ class TestRequest
|
|||
module Helpers
|
||||
attr_reader :status, :response
|
||||
|
||||
ROOT = File.expand_path(File.dirname(__FILE__) + "/..")
|
||||
ENV["RUBYOPT"] = "-I#{ROOT}/lib -rubygems"
|
||||
|
||||
def root
|
||||
ROOT
|
||||
end
|
||||
|
||||
def rackup
|
||||
"#{ROOT}/bin/rackup"
|
||||
end
|
||||
|
||||
def GET(path, header={})
|
||||
Net::HTTP.start(@host, @port) { |http|
|
||||
user = header.delete(:user)
|
||||
|
@ -22,7 +33,11 @@ class TestRequest
|
|||
get.basic_auth user, passwd if user && passwd
|
||||
http.request(get) { |response|
|
||||
@status = response.code.to_i
|
||||
@response = YAML.load(response.body)
|
||||
begin
|
||||
@response = YAML.load(response.body)
|
||||
rescue ArgumentError
|
||||
@response = nil
|
||||
end
|
||||
}
|
||||
}
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue