#!perl -w # Win32::GUI::DropFiles test suite # $Id: 04_GetDroppedFiles.t,v 1.2 2006/05/16 18:57:26 robertemay Exp $ # # Test Win32::GUI::DropFiles GetDroppedFiles() method use strict; use warnings; BEGIN { $| = 1 } # Autoflush # We assume that 01_load.t has been run, so we know we have Test::More # and that Win32::GUI and Win32::GUI::DropFiles will load. use Test::More; BEGIN { eval "use Win32::API 0.41"; plan skip_all => "Win32::API 0.41 required for testing GetDroppedFiles()" if $@; } # Load our helpers use FindBin; use lib "$FindBin::Bin"; use DropTest; use Win32::GUI 1.03_02,''; use Win32::GUI::DropFiles; my @tests = ( [ "A", "B", "Longer Name with spaces" ], [], # no files should never happen, but just in case ... ); plan tests => 2 * scalar @tests; my $W = Win32::GUI::Window->new( -name => 'win', -title => "Win32::GUI DropFiles Test", -size => [400,300], -onDropFiles => \&drop, ); Win32::GUI::DoEvents(); my $files; while($files = shift @tests) { my $dt = DropTest->new(files => $files); $dt->PostDropMessage($W); Win32::GUI::Dialog(); } exit(0); sub drop { my ($self, $dropobj) = @_; # GetDroppedFiles in scalar context returns number of files is(scalar $dropobj->GetDroppedFiles(), scalar @{$files}, "Correct number of files"); # GetDroppedFiles in list context returns the list of files my @f = $dropobj->GetDroppedFiles(); ok(eq_set($files,\@f), "Correct set of files found"); return -1; }