use strict ;
use warnings ;
use File::Path ;
use Probe::Perl ;
use Test::Command ;
use Test::More;
if ( $^O =~ /linux|bsd|solaris|sunos/ ) {
plan tests => 8;
}
else {
plan skip_all => "Test with system() in build systems don't work well on this OS ($^O)";
}
## testing exit status
# pseudo root where config files are written by config-model
my $wr_root = 'wr_root';
# cleanup before tests
rmtree($wr_root);
my $test1 = 'popcon1' ;
my $wr_dir = $wr_root.'/'.$test1 ;
my $conf_file = "$wr_dir/etc/popularity-contest.conf" ;
my $path = Probe::Perl->find_perl_interpreter();
my $perl_cmd = $path . ' -Ilib ' .join(' ',map { "-I$_" } Probe::Perl->perl_inc());
my $oops = Test::Command->new( cmd => "$perl_cmd config-edit -root_dir $wr_dir -appli popcon -ui none PARITICIPATE=yes");
exit_cmp_ok($oops, '>',0,'missing config file detected');
stderr_like($oops, qr/cannot find configuration file/, 'check auto_read_error') ;
# put popcon data in place
my @orig = <DATA> ;
mkpath($wr_dir.'/etc', { mode => 0755 })
|| die "can't mkpath: $!";
open(CONF,"> $conf_file" ) || die "can't open $conf_file: $!";
print CONF @orig ;
close CONF ;
$oops = Test::Command->new( cmd => "$perl_cmd config-edit -root_dir $wr_dir -appli popcon -ui none PARITICIPATE=yes");
exit_cmp_ok($oops, '>',0,'wrong parameter detected');
stderr_like($oops, qr/unknown element/, 'check unknown element') ;
my $ok = Test::Command->new( cmd => "$perl_cmd config-edit -root_dir $wr_dir -ui none -appli popcon PARTICIPATE=yes");
exit_is_num($ok, 0,'all went well');
my $search = Test::Command->new( cmd => "$perl_cmd config-edit -root_dir $wr_dir -ui none -appli popcon -search y -narrow value");
exit_is_num($search, 0,'search went well');
stdout_like($search,qr/PARTICIPATE/,"got PARTICIPATE");
stdout_like($search,qr/USEHTTP/,"got USEHTTP");
__END__
# Config file for Debian's popularity-contest package.
#
# To change this file, use:
# dpkg-reconfigure popularity-contest
## should be removed
MY_HOSTID="aaaaaaaaaaaaaaaaaaaa"
# we participate
PARTICIPATE="yes"
USEHTTP="yes" # always http
DAY="6"