1use t::200_middlewares::uploadtemp::base;
2use Test::More tests => 7;
3
4my $base_tmp   = quotemeta(File::Spec->tmpdir);
5my $upload_tmpdir;
6do {
7    my $he = new_engine {
8        my $req = shift;
9        $upload_tmpdir = $req->request_builder->upload_tmp;
10        if ($req->method eq 'POST') {
11            ok(-f $req->upload('upfile')->tempname, 'upload file');
12        }
13    } {
14        keepalive => 0,
15    };
16
17    $he->run(
18        GET 'http://example.com/',
19    );
20    ok(!-d $upload_tmpdir, 'not alive tmpdir');
21
22    $he->run(
23        POST 'http://example.com/',
24        Content_Type => 'form-data',
25        Content      => [
26            upfile => ['README'],
27        ],
28    );
29    like($upload_tmpdir, qr{\A$base_tmp}, 'base tmpdir');
30    ok(!-d $upload_tmpdir, 'not alive tmpdir');
31    my $first_tmpdir = $upload_tmpdir;
32
33    $he->run(
34        POST 'http://example.com/',
35        Content_Type => 'form-data',
36        Content      => [
37            upfile => ['Makefile.PL'],
38        ],
39    );
40    isnt($upload_tmpdir, $first_tmpdir, 'not recycle tmpdir');
41};
42ok(!rmtree($upload_tmpdir, 0), 'rmtree');
43