Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / t / 16_stream.t
1 #!/usr/bin/perl -w
2
3 use strict;
4 use Wx qw(wxBITMAP_TYPE_ICO);
5 use lib './t';
6 use Test::More 'tests' => 6;
7 use Fatal qw(open);
8
9 my $app = Wx::SimpleApp->new;
10 Wx::InitAllImageHandlers;
11
12 sub _slurp {
13     local $/;
14     open my $fh, '< :raw', $_[0];
15     return <$fh>;
16 }
17
18 # plain Perl handle (file)
19 {
20     open my $fh, '< :raw', 'wxpl.ico';
21     my $img = Wx::Image->new( $fh, wxBITMAP_TYPE_ICO );
22     ok( $img->Ok );
23     is( $img->GetWidth, 32 );
24 }
25
26 # in-memory file (uses PerlIO, hasn't a filehandle
27 SKIP: {
28     skip 'Perl 5.8 required', 2 if $] < 5.008;
29
30     my $data = _slurp( 'wxpl.ico' );
31     open my $fh, '<', \$data;
32     my $img = Wx::Image->new( $fh, wxBITMAP_TYPE_ICO );
33     ok( $img->Ok );
34     is( $img->GetWidth, 32 );
35 }
36
37 # Tied filehandle
38 SKIP: {
39     eval { require IO::String };
40     skip 'IO::String required', 2 if $@;
41
42     my $data = _slurp( 'wxpl.ico' );
43     my $fh = IO::String->new( $data );
44     my $img = Wx::Image->new( $fh, wxBITMAP_TYPE_ICO );
45     ok( $img->Ok );
46     is( $img->GetWidth, 32 );
47 }