t/50-cgi: todo test for upcoming multipart posts
authorMischa POSLAWSKY <perl@shiar.org>
Mon, 20 Feb 2012 08:07:27 +0000 (09:07 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 14 Sep 2015 21:40:44 +0000 (23:40 +0200)
Common HTML feature which is not yet handled correctly.

t/50-cgi.t
t/50-cgi/70-multipart.html [new file with mode: 0644]
t/50-cgi/70-multipart.plp [new file with mode: 0644]
t/50-cgi/70-multipart.txt [new file with mode: 0644]

index 0f3eeaf4e5f8582fd53b6795bd1fe7459028995f..aaea9691113d9ffa599f16dc045ae627fac5c0ad 100644 (file)
@@ -24,7 +24,7 @@ eval {
 eval { require PerlIO::scalar };
 plan skip_all => "PerlIO required (perl 5.8) to test PLP" if $@;
 
-plan tests => 24;
+plan tests => 25;
 
 require_ok('PLP::Backend::CGI') or BAIL_OUT();
 
@@ -56,8 +56,8 @@ sub plp_is {
        ); # Apache/2.2.4 CGI environment
 
        if (defined $in) {
-               $ENV{CONTENT_LENGTH} = length $in;
-               $ENV{CONTENT_TYPE} = 'application/x-www-form-urlencoded';
+               $ENV{CONTENT_LENGTH} //= length $in;
+               $ENV{CONTENT_TYPE} //= 'application/x-www-form-urlencoded';
                close STDIN;
                open STDIN, '<', $in;
        }
@@ -176,12 +176,20 @@ SKIP: {
        plp_ok($_, INCWARN => $INCWARN) for @inctests;
 }
 
-# 4*-7*: apache environment (default)
-plp_ok($_) for glob '[4-7]*.html';
+# 4*-6*: apache environment (default)
+plp_ok($_) for glob '[4-6]*.html';
 
 #TODO: %fields
 #TODO: %cookie
 
+# 7*: multipart posts
+TODO: {
+       local $TODO = 'future feature';
+       plp_ok($_, -env => {
+               CONTENT_TYPE => 'multipart/form-data; boundary=knip',
+       }) for glob '7*.html';
+}
+
 # 8*: lighttpd environment
 plp_ok($_, -env => {
        # lighttpd/1.4.7 CGI environment
diff --git a/t/50-cgi/70-multipart.html b/t/50-cgi/70-multipart.html
new file mode 100644 (file)
index 0000000..3ca132a
--- /dev/null
@@ -0,0 +1,2 @@
+$HEAD
+3{'foo' => 'b a r','@foo' => ['','b a r']}
diff --git a/t/50-cgi/70-multipart.plp b/t/50-cgi/70-multipart.plp
new file mode 100644 (file)
index 0000000..1fc42b5
--- /dev/null
@@ -0,0 +1,5 @@
+<:
+print scalar keys %post;
+
+require Data::Dumper;
+print Data::Dumper->new([\%post])->Indent(0)->Terse(1)->Dump;
diff --git a/t/50-cgi/70-multipart.txt b/t/50-cgi/70-multipart.txt
new file mode 100644 (file)
index 0000000..e8e7fb6
--- /dev/null
@@ -0,0 +1,10 @@
+--knip\r
+Content-Disposition: form-data; name="foo"\r
+\r
+b a r\r
+--knip\r
+Content-Disposition: form-data; name="upload"; filename="82.results"\r
+Content-Type: text/plain\r
+\r
+ok\r
+--knip--\r