Changing default behavior of upload handling to stop taking over the upload extension...
[catagits/HTTP-Body.git] / t / 08multipart-suffix.t
index 7374223..e6d7ddd 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 use FindBin;
 use lib "$FindBin::Bin/lib";
 
-use Test::More tests => 4;
+use Test::More tests => 6;
 use Test::Deep;
 
 use Cwd;
@@ -19,35 +19,65 @@ use File::Temp qw/ tempdir /;
 my $path = catdir( getcwd(), 't', 'data', 'multipart' );
 
 {
+    $HTTP::Body::MultiPart::file_temp_suffix = undef;
+
     my $uploads = uploads_for('001');
 
-    like(
-        $uploads->{upload2}{tempname}, qr/\.pl$/,
-        'tempname preserves .pl suffix'
-    );
+       {
+               my ($volume,$directories,$file) = File::Spec->splitpath( $uploads->{upload2}{tempname} );       
+               like(
+                       $file, qr/^.{10}\.pl$/,
+                       'tempname preserves .pl suffix'
+               );
+       }
+
+       {
+               my ($volume,$directories,$file) = File::Spec->splitpath( $uploads->{upload4}{tempname} );       
+               unlike(
+                       $file, qr/^.{10}\..+$/,
+                       'tempname for upload4 has no suffix'
+               );
+       }
 
-    unlike(
-        $uploads->{upload4}{tempname}, qr/\..+$/,
-        'tempname for upload4 has no suffix'
-    );
 }
 
 {
     my $uploads = uploads_for('006');
 
-    like(
-        $uploads->{upload2}{tempname}, qr/\.pl$/,
-        'tempname preserves .pl suffix with Windows filename'
-    );
+       {
+               my ($volume,$directories,$file) = File::Spec->splitpath( $uploads->{upload2}{tempname} );       
+               like(
+                       $file, qr/^.{10}\.pl$/,
+                       'tempname preserves .pl suffix with Windows filename'
+               );
+       }
+
 }
 
 {
     my $uploads = uploads_for('014');
 
-    like(
-        $uploads->{upload}{tempname}, qr/\.foo\.txt$/,
-        'tempname preserves .foo.txt suffix'
-    );
+       {
+               my ($volume,$directories,$file) = File::Spec->splitpath( $uploads->{upload}{tempname} );        
+               like(
+                       $file, qr/^.{10}\.foo\.txt$/,
+                       'tempname preserves .foo.txt suffix'
+               );
+       }
+
+       {
+               my ($volume,$directories,$file) = File::Spec->splitpath( $uploads->{upload2}{tempname} );       
+               like(
+                       $file, qr/^.{10}\.txt$/,
+                       'tempname preserves .txt suffix when dir name has .'
+               );
+       }
+
+       like(
+               $uploads->{upload2}{tempname}, qr/[\\\/]\w+.txt$/,
+               'tempname only gets extension from filename, not from a directory name'
+       );
+
 }
 
 sub uploads_for {