App-ClusterSSH
view release on metacpan or search on metacpan
t/15config.t view on Meta::CPAN
rsh => 'rsh',
rsh_args => "",
telnet => 'telnet',
telnet_args => "",
ssh => 'ssh',
ssh_args => "",
sftp => 'sftp',
sftp_args => "",
extra_tag_file => "",
extra_cluster_file => "",
external_cluster_command => '',
external_command_mode => '0600',
external_command_pipe => '',
unmap_on_redraw => "no",
show_history => 0,
history_width => 40,
history_height => 10,
command => q{},
title => q{15CONFIG.T},
comms => q{ssh},
hide_menu => 0,
max_host_menu_items => 30,
macros_enabled => 'yes',
macro_servername => '%s',
macro_hostname => '%h',
macro_username => '%u',
macro_newline => '%n',
macro_version => '%v',
max_addhost_menu_cluster_items => 6,
menu_send_autotearoff => 0,
menu_host_autotearoff => 0,
unique_servers => 0,
use_all_a_records => 0,
use_natural_sort => 0,
send_menu_xml_file => $ENV{HOME} . '/.clusterssh/send_menu',
# Debian #842965
auto_wm_decoration_offsets => "no",
# other bits inheritted from App::ClusterSSH::Base
lang => 'en',
user => '',
rows => -1,
cols => -1,
fillscreen => 'no',
};
my %expected = %default_config;
is_deeply( $config, \%expected, 'default config is correct' );
$config = App::ClusterSSH::Config->new();
trap {
$config = $config->validate_args(
whoops => 'not there',
doesnt_exist => 'whoops',
);
};
isa_ok( $trap->die, 'App::ClusterSSH::Exception::Config' );
is( $trap->die,
'Unknown configuration parameters: doesnt_exist,whoops' . $/,
'got correct error message'
);
is_deeply(
$trap->die->unknown_config,
[ 'doesnt_exist', 'whoops' ],
'Picked up unknown config array'
);
isa_ok( $config, "App::ClusterSSH::Config" );
$expected{extra_cluster_file} = '/etc/filename';
$expected{rsh_args} = 'some args';
$expected{max_addhost_menu_cluster_items} = 120;
trap {
$config = $config->validate_args(
extra_cluster_file => '/etc/filename',
rsh_args => 'some args',
max_addhost_menu_cluster_items => 120,
);
};
is( $trap->die, undef, 'validated ok' );
isa_ok( $config, "App::ClusterSSH::Config" );
is_deeply( $config, \%expected, 'default config is correct' );
$config = App::ClusterSSH::Config->new();
%expected = %default_config;
my $file = "$Bin/$Script.doesntexist";
trap {
$config = $config->parse_config_file( $file, );
};
isa_ok( $trap->die, 'App::ClusterSSH::Exception::LoadFile' );
is( $trap->die,
"Unable to read file $file: No such file or directory" . $/,
'got correct error message'
);
$file = "$Bin/$Script.file1";
note("using $file");
$config = App::ClusterSSH::Config->new();
%expected = %default_config;
$expected{screen_reserve_left} = 100;
$expected{screen_reserve_right} = 100;
$expected{screen_reserve_top} = 100;
$expected{screen_reserve_bottom} = 160;
trap {
$config = $config->parse_config_file( $file, );
};
is( $trap->leaveby, 'return', 'returned ok' );
is( $trap->die, undef, 'returned ok' );
isa_ok( $config, "App::ClusterSSH::Config" );
is( $trap->stdout, q{}, 'Expecting no STDOUT' );
is( $trap->stderr, q{}, 'Expecting no STDERR' );
is_deeply( $config, \%expected, 'amended config is correct' );
$file = "$Bin/$Script.file2";
note("using $file");
$config = App::ClusterSSH::Config->new();
%expected = %default_config;
trap {
$config = $config->parse_config_file( $file, );
};
is( $trap->leaveby, 'die', 'died ok' );
isa_ok( $trap->die, 'App::ClusterSSH::Exception::Config' );
is( $trap->die,
'Unknown configuration parameters: missing,rubbish' . $/,
'die message correct'
);
isa_ok( $config, "App::ClusterSSH::Config" );
is( $trap->stdout, q{}, 'Expecting no STDOUT' );
is( $trap->stderr, q{}, 'Expecting no STDERR' );
is_deeply( $config, \%expected, 'amended config is correct' );
$file = "$Bin/$Script.file3";
note("using $file");
$config = App::ClusterSSH::Config->new();
%expected = %default_config;
trap {
$config = $config->parse_config_file( $file, );
};
( run in 1.950 second using v1.01-cache-2.11-cpan-39bf76dae61 )