Full initial pass at perldelta. ready for sanity checking
[p5sagit/p5-mst-13.2.git] / cpan / ExtUtils-MakeMaker / t / prompt.t
CommitLineData
479d2113 1#!/usr/bin/perl -w
2
3BEGIN {
b78fd716 4 unshift @INC, 't/lib';
479d2113 5}
6
7use strict;
8use Test::More tests => 11;
9use ExtUtils::MakeMaker;
10use TieOut;
11use TieIn;
12
13eval q{
14 prompt();
15};
16like( $@, qr/^Not enough arguments for ExtUtils::MakeMaker::prompt/,
17 'no args' );
18
19eval {
20 prompt(undef);
21};
22like( $@, qr/^prompt function called without an argument/,
23 'undef message' );
24
25my $stdout = tie *STDOUT, 'TieOut' or die;
26
27
28$ENV{PERL_MM_USE_DEFAULT} = 1;
29is( prompt("Foo?"), '', 'no default' );
30like( $stdout->read, qr/^Foo\?\s*\n$/, ' question' );
31
32is( prompt("Foo?", undef), '', 'undef default' );
33like( $stdout->read, qr/^Foo\?\s*\n$/, ' question' );
34
35is( prompt("Foo?", 'Bar!'), 'Bar!', 'default' );
36like( $stdout->read, qr/^Foo\? \[Bar!\]\s+Bar!\n$/, ' question' );
37
38
39SKIP: {
40 skip "eof() doesn't honor ties in 5.5.3", 3 if $] < 5.006;
41
42 $ENV{PERL_MM_USE_DEFAULT} = 0;
43 close STDIN;
44 my $stdin = tie *STDIN, 'TieIn' or die;
45 $stdin->write("From STDIN");
46 ok( !-t STDIN, 'STDIN not a tty' );
47
48 is( prompt("Foo?", 'Bar!'), 'From STDIN', 'from STDIN' );
49 like( $stdout->read, qr/^Foo\? \[Bar!\]\s*$/, ' question' );
50}