3
# Test the style subsystem
11
unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) {
12
plan skip_all => 'Needs DISPLAY';
18
use File::Spec::Functions ':ALL';
23
my $dir = catdir( 'share', 'themes' );
24
ok( -d $dir, "Found theme directory $dir" );
39
######################################################################
40
# Tests for the Style 2.0 API
42
use_ok('Padre::Wx::Theme');
46
# Search for the list of styles
47
my $files = Padre::Wx::Theme->files;
48
is( ref($files), 'HASH', 'Found style hash' );
49
ok( $files->{default}, 'The default style is defined' );
50
ok( -f $files->{default}, 'The default style exists' );
52
# Find the file by name
53
my $file = Padre::Wx::Theme->file('default');
54
ok( $file, 'Found file by name' );
55
ok( -f $file, 'File by name exists' );
57
# Load the default style
58
my $style = Padre::Wx::Theme->find('default');
59
isa_ok( $style, 'Padre::Wx::Theme' );
60
ok( scalar( @{ $style->mime } ), 'Found a list of methods' );
62
# Find the localised name for a style
63
my $label = Padre::Wx::Theme->label( 'default', 'en-gb' );
64
is( $label, 'Padre', 'Got expected label for default style' );
66
# Find the localised name for all available styles
67
my $labels = Padre::Wx::Theme->labels('de');
68
is( ref($labels), 'HASH', '->labels returns a HASH' );
69
is( $labels->{default}, 'Padre', '->labels contains expected default' );
70
is( $labels->{night}, 'Nacht', '->labels contains translated string' );
77
######################################################################
78
# Make sure all style files load
80
my $files = Padre::Wx::Theme->files;
81
foreach my $name ( sort keys %$files ) {
82
my $style = Padre::Wx::Theme->find($name);
83
isa_ok( $style, 'Padre::Wx::Theme', "Style '$name' loads correctly" );