App-Fetchware
view release on metacpan or search on metacpan
t/bin-fetchware-new.t view on Meta::CPAN
##TODO###
##TODO###Maybe IO::React, and a quickly made react_ok() could work?
##TODO##
##TODO##
##TODO####BROKEN##subtest 'test cmd_new() success' => sub {
##TODO####BROKEN## skip_all_unless_release_testing();
##TODO####BROKEN##
##TODO####BROKEN## plan(skip_all => 'Optional Test::Expect testing module not installed.')
##TODO####BROKEN## unless eval {require Test::Expect; Test::Expect->import(); 1;};
##TODO####BROKEN##
##TODO####BROKEN## # Disable Term::UI's AUTOREPLY for this subtest, because unless I use
##TODO####BROKEN## # something crazy like Test::Expect, this will have to be tested "manually."
##TODO####BROKEN## local $Term::UI::AUTOREPLY = 0;
##TODO####BROKEN## # Fix the "out of orderness" thanks to Test::Builder messing with
##TODO####BROKEN## # STD{OUT,ERR}.
##TODO####BROKEN### local $| = 1;
##TODO####BROKEN##
##TODO####BROKEN## # Have Expect tell me what it's doing for easier debugging.
##TODO####BROKEN## $Expect::Exp_Internal = 1;
##TODO####BROKEN##
##TODO####BROKEN## expect_run(
##TODO####BROKEN## command => 't/bin-fetchware-new-cmd_new',
##TODO####BROKEN### prompt => [-re => qr/((?<!\? \[y\/N\]): |\? )/ms],
##TODO####BROKEN## #prompt => [-re => qr/(\?|:) \[y\/N\] |\? |: /ims],
##TODO####BROKEN### prompt => [-re => qr/((?:\?|:) \[y\/N\]: )|\? |: /i],
##TODO####BROKEN## prompt => [-re => qr/ \[y\/N\]: |\? |: /i],
##TODO####BROKEN### prompt => [-re => qr/\? \n/ims],
##TODO####BROKEN## quit => "\cC"
##TODO####BROKEN## );
##TODO####BROKEN##
##TODO####BROKEN## # Have Expect restart its timeout anytime output is received. Should keep
##TODO####BROKEN## # expect from timeingout while it's waiting for Apache to compile.
##TODO####BROKEN## #my $exp = expect_handle();
##TODO####BROKEN## #$exp->restart_timeout_upon_receive(1);
##TODO####BROKEN##
##TODO####BROKEN## # First test that the command produced the correct outout.
##TODO####BROKEN## expect_like(qr/Fetchware's new command is reasonably sophisticated, and is smart enough to/ms,
##TODO####BROKEN## 'checked cmd_new() received correct name prompt');
##TODO####BROKEN##
##TODO####BROKEN## expect_send('Apache',
##TODO####BROKEN## 'check cmd_new() sent Apache as my name.');
##TODO####BROKEN##
##TODO####BROKEN## expect_like(qr/Fetchware's heart and soul is its lookup_url. This is the configuration option/ms,
##TODO####BROKEN## 'checked cmd_new() received lookup_url prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_send("$ENV{FETCHWARE_HTTP_LOOKUP_URL}",
##TODO####BROKEN## 'checked cmd_new() say lookup_url.');
##TODO####BROKEN##
##TODO####BROKEN## expect_like(qr/Fetchware requires you to please provide a mirror. This mirror is required,/ms,
##TODO####BROKEN## 'checked cmd_new() received mirror prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_send("$ENV{FETCHWARE_HTTP_MIRROR_URL}",
##TODO####BROKEN## 'checked cmd_new() say mirror.');
##TODO####BROKEN##
##TODO####BROKEN## expect_like(qr/In addition to the one required mirror that you must define in order for/ms,
##TODO####BROKEN## 'checked cmd_new() received more mirrors prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_send('N',
##TODO####BROKEN## 'checked cmd_new() say N for more mirrors.');
##TODO####BROKEN##
##TODO####BROKEN## #expect_like(qr!\[y/N\]|gpg digital signatures found. Using gpg verification.!ms,
##TODO####BROKEN## expect_like(qr!.*|gpg digital signatures found. Using gpg verification.!ms,
##TODO####BROKEN## 'checked cmd_new() received filter prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_send('httpd-2.2',
##TODO####BROKEN## 'checked cmd_new() say httpd-2.2 for filter option.');
##TODO####BROKEN##
##TODO####BROKEN## expect_like(qr/Fetchware has many different configuration options that allow you to control its/ms,
##TODO####BROKEN## 'checked cmd_new() received extra config prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_send('N',
##TODO####BROKEN## 'checked cmd_new() say N for more config options prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_like(qr/Fetchware has now asked you all of the needed questions to determine what it/ms,
##TODO####BROKEN## 'checked cmd_new() received edit config prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_send('N',
##TODO####BROKEN## 'checked cmd_new() say N for edit config prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_like(qr/It is recommended that fetchware go ahead and install the program based on the/ms,
##TODO####BROKEN## 'checked cmd_new() received install program prompt.');
##TODO####BROKEN##
##TODO####BROKEN## # Say no to avoid actually installing Apache yet again.
##TODO####BROKEN## expect_send('N',
##TODO####BROKEN## 'checked cmd_new() say N for install program prompt.');
##TODO####BROKEN##
##TODO####BROKEN## expect_quit();
##TODO####BROKEN##};
##TODO##
##TODO##} # #End of gigantic skip block.
# Remove this or comment it out, and specify the number of tests, because doing
# so is more robust than using this, but this is better than no_plan.
#done_testing();
( run in 0.981 second using v1.01-cache-2.11-cpan-df04353d9ac )