App-Fetchware
view release on metacpan or search on metacpan
t/App-Fetchware-new.t view on Meta::CPAN
# Check if upon receiving the URL the command prints out the next correct
# prompt.
expect_like(qr/Would you like to add any additional mirrors?/,
'checked get_mirrors() received more mirrors prompt.');
expect_send('Y', 'checked get_mirrors() say No to more mirrors.');
expect_like(qr!\[y/N\]|Type in URL of mirror or done to continue!,
'checked get_mirrors() received prompt to enter a mirror.');
expect_send('ftp://afakemirror.blah/huh?',
'checked get_mirrors() sent another mirror URL.');
expect_like(qr/Type in URL of mirror or done to continue/,
'checked get_mirrors() received prompt to enter a mirror.');
expect_send('ftp://anotherfake.mirror/kasdjlfkjd',
'checked get_mirrors() sent another mirror URL.');
expect_like(qr/Type in URL of mirror or done to continue/,
'checked get_mirrors() received prompt to enter a mirror.');
expect_send('done',
'checked get_mirrors() sent done.');
expect_quit();
};
subtest 'test get_verification() success' => sub {
skip_all_unless_release_testing();
plan(skip_all => 'Optional Test::Expect testing module not installed.')
unless eval {require Test::Expect; Test::Expect->import(); 1;};
# Disable Term::UI's AUTOREPLY for this subtest, because unless I use
# something crazy like Test::Expect, this will have to be tested "manually."
local $Term::UI::AUTOREPLY = 0;
# Fix the "out of orderness" thanks to Test::Builder messing with
# STD{OUT,ERR}.
local $| = 1;
# Have Expect tell me what it's doing for easier debugging.
#$Expect::Exp_Internal = 1;
expect_run(
command => 't/App-Fetchware-new-get_verification',
prompt => [-re => qr/: |\? /],
quit => "\cC"
);
# First test that the command produced the correct outout.
expect_like(qr/Automatic KEYS file discovery failed. Fetchware needs the/,
'checked get_verification() received correct mirror prompt');
# Have Expect print an example URL.
expect_send('Y',
'check get_verification() sent manual KEYS file Y.');
expect_like(qr<\[y/N\]|Automatic verification of your fetchware package has failed!>,
'check get_verification() received no verify prompt.');
expect_send('Y',
'checked get_verification() sent no verify Y.');
expect_quit();
###BUGALERT### Add tests for get_verification()'s other branches.
};
subtest 'test get_filter_option() success' => sub {
skip_all_unless_release_testing();
plan(skip_all => 'Optional Test::Expect testing module not installed.')
unless eval {require Test::Expect; Test::Expect->import(); 1;};
# Disable Term::UI's AUTOREPLY for this subtest, because unless I use
# something crazy like Test::Expect, this will have to be tested "manually."
local $Term::UI::AUTOREPLY = 0;
# Fix the "out of orderness" thanks to Test::Builder messing with
# STD{OUT,ERR}.
local $| = 1;
# Have Expect tell me what it's doing for easier debugging.
#$Expect::Exp_Internal = 1;
expect_run(
command => 't/App-Fetchware-new-get_filter_option',
prompt => [-re => qr/: |\? /],
quit => "\cC" # CTRL-C
);
expect_like(qr/Analyzing the lookup_url you provided to determine if fetchware/,
'checked get_filter_option() received correct filter prompt');
expect_send('httpd-2.2',
'check get_filter_option() provided filter.');
expect_quit();
};
subtest 'test edit_manually() success' => sub {
# Create test Term::UI object.
my $term = Term::ReadLine->new('fetchware');
# Need a $fetchwarefile object to test edit_manually().
my $fetchwarefile = App::Fetchware::Fetchwarefile->new(
header => <<EOF,
use App::Fetchware;
# Auto generated by fetchware's new command.
# However, feel free to edit this file if fetchware's new command's
# autoconfiguration is not enough.
#
# Please look up fetchware's documentation of its configuration file syntax at
# perldoc App::Fetchware, and only if its configuration file syntax is not
# malleable enough for your application should you resort to customizing
# fetchware's behavior. For extra flexible customization see perldoc
# App::Fetchware.
EOF
descriptions => {
( run in 0.695 second using v1.01-cache-2.11-cpan-39bf76dae61 )