#!/usr/bin/perl -w # # Test various miscellaneous configurationh functions # BEGIN { $| = 1; push @INC, 'lib'; } use strict; use warnings; use lib 'lib'; use Test::More tests => 17; use Test::NoWarnings; use Test::Exception; #my $tests; # #plan tests => $tests + 1; #use Data::Dumper qw(Dumper); use Wx; use Kephra::Config; # # ##################################################################### # Kephra::Config::color # sub is_color { my ($it, $r, $g, $b, $name) = @_; isa_ok( $it, 'Wx::Colour' ); is( $it->Red, $r, "$name: ->Red ok" ); is( $it->Green, $g, "$name: ->Green ok" ); is( $it->Blue, $b, "$name: ->Blue ok" ); } # SCOPE: { my $black1 = Kephra::Config::color('000000'); my $white1 = Kephra::Config::color('FFFFFF'); my $black2 = Kephra::Config::color('0,0,0'); my $white2 = Kephra::Config::color('255,255,255'); is_color( $black1, 0, 0, 0, 'hex black' ); is_color( $black2, 0, 0, 0, 'dec black' ); is_color( $white1, 255, 255, 255, 'hex white' ); is_color( $white2, 255, 255, 255, 'dec white' ); # # Check errors #eval { #Kephra::Config::color(); #}; #like( $@, qr/Color string is not defined/, 'Caught undef error' ); #eval { #Kephra::Config::color('black'); #}; #like( $@, qr/Unknown color string/, 'Caught bad-string error' ); #BEGIN { $tests += 4*4 + 2; } } ##################################################################### # Kephra::Config::icon_bitmap # sub is_icon { my $it = shift; isa_ok( $it, 'Wx::Bitmap' ); } # #SCOPE: { # Set the default icon path for testing purposes #local $Kephra::config{app}->{iconset_path} = 'share/config/interface/icon/set/jenne'; # # edit_delete find_previous find_next goto_last_edit find_start # #my @known_good = qw{ #}; #foreach my $name ( @known_good ) { # Create using the raw name #my $icon1 = Kephra::Config::icon_bitmap( $name ); #is_icon( $icon1 ); # # Create using the .xpm name #my $icon2 = Kephra::Config::icon_bitmap( $name . '.xpm' ); #is_icon( $icon2 ); #} #} # ##################################################################### # Kephra::Config::File # #{ #require_ok('Kephra::Config::File'); #my $ref = Kephra::Config::File::load_node('share/config/interface/commands.conf', 'commandlist'); #is( ref($ref), 'HASH', 'commandlist is HASH' ); #BEGIN { $tests += 2; } #} # #TODO: { #local $TODO = 'throw exception if file type is incorrect'; #foreach my $file (qw(mainmenuyml ymainmenuyml)) { #throws_ok { Kephra::Config::File::_get_type($file) } 'Kephra::Exception', "invalid extension exception $file" ; #} #BEGIN { $tests += 2; } #} #{ #is( Kephra::Config::File::_get_type('/home/foo/.kephra/config/interface/mainmenu.yml'), 'yaml', 'type is yaml' ); #is( Kephra::Config::File::_get_type('share/config/interface/mainmenu.yml'), 'yaml', 'type is yaml' ); #BEGIN { $tests += 2; } #} # #{ #my $file_name = 'share/config/interface/mainmenu.yml'; #is( Kephra::Config::File::_get_type($file_name), 'yaml', 'type is yaml' ); #my $ref = Kephra::Config::File::load_node($file_name, 'full_menubar'); #is( ref($ref), 'ARRAY', 'full_menubar is ARRAY' ); #$Kephra::temp{path}{config} = 'share/config'; #my $menubar_def = Kephra::Config::File::load_from_node_data ( { #'responsive' => 1, #'file' => 'interface/mainmenu.yml', #'node' => 'full_menubar' #} ); #is( ref($menubar_def), 'ARRAY', 'full_menubar is ARRAY' ); #BEGIN { $tests += 3; } #} exit(0);