1898184e3Ssthenuse Test::More; 2898184e3Ssthenuse strict; 3898184e3Ssthenuse warnings; 4898184e3Ssthen 5898184e3Ssthen{ 6898184e3Ssthenpackage Local::ToMan; 7*b8851fccSafresh1use parent 'Pod::Perldoc::ToMan'; 8898184e3Ssthenuse vars qw( $stty_text $is_linux $warning ); 9898184e3Ssthenno warnings 'redefine'; 10898184e3Ssthenno strict 'refs'; 11898184e3Ssthensub _get_stty { $stty_text } 12898184e3Ssthensub is_linux { $is_linux } 13898184e3Ssthensub warn { shift; $warning = join '', @_ } 14898184e3Ssthen} 15898184e3Ssthen 16898184e3SsthenBEGIN { 17898184e3Ssthenour @columns = qw( EXPECTED IS_LINUX MANWIDTH MANWIDTH_EXPECTED STTY STTY_EXPECTED ); 18898184e3Ssthenforeach my $i ( 0 .. $#columns ) { 19898184e3Ssthen no strict 'refs'; 20898184e3Ssthen *{"$columns[$i]"} = sub () { $i }; 21898184e3Ssthen } 22898184e3Ssthen} 23898184e3Ssthen 24898184e3Ssthenmy @tests = ( 25898184e3Ssthen # for linux, choose between manwidth and stty 26898184e3Ssthen [ 62, 1, undef, 0, "; 62 columns;", 62 ], 27898184e3Ssthen [ 63, 1, undef, 0, "columns 63", 63 ], 28898184e3Ssthen [ 57, 1, 57, 57, "columns 63", 63 ], 29898184e3Ssthen [ 73, 1, undef, 0, " ", 0 ], 30898184e3Ssthen 31898184e3Ssthen # for not linux, the same 32898184e3Ssthen [ 62, 0, undef, 0, "; 62 columns;", 62 ], 33898184e3Ssthen [ 63, 0, undef, 0, "columns 63", 63 ], 34898184e3Ssthen [ 57, 0, 57, 57, "columns 63", 63 ], 35898184e3Ssthen [ 73, 0, undef, 0, " ", 0 ], 36898184e3Ssthen 37898184e3Ssthen # bad manwidths 38898184e3Ssthen [ 62, 1, -1, 0, "; 62 columns;", 62 ], 39898184e3Ssthen [ 63, 1, 'abc', 0, "columns 63", 63 ], 40898184e3Ssthen [ 64, 1, '', 0, "columns 64", 64 ], 41898184e3Ssthen [ 73, 1, undef, 0, " ", 0 ], 42898184e3Ssthen ); 43898184e3Ssthen 44898184e3Ssthenplan tests => 3 * @tests; 45898184e3Ssthen 46898184e3Ssthen 47898184e3Ssthenforeach my $test ( @tests ) { 48898184e3Ssthen local $ENV{MANWIDTH} = $test->[MANWIDTH]; 49898184e3Ssthen local $Local::ToMan::stty_text = $test->[STTY]; 50898184e3Ssthen local $Local::ToMan::is_linux = $test->[IS_LINUX]; 51898184e3Ssthen 52898184e3Ssthen { 53898184e3Ssthen no warnings 'uninitialized'; 54898184e3Ssthen diag( sprintf 55898184e3Ssthen "MANWIDTH: %s STTY: %s LINUX: %s", 56898184e3Ssthen defined $ENV{MANWIDTH} ? $ENV{MANWIDTH} : "(undef)", 57898184e3Ssthen $Local::ToMan::stty_text, 58898184e3Ssthen $Local::ToMan::is_linux, 59898184e3Ssthen ) if $ENV{PERLDOCDEBUG}; 60898184e3Ssthen } 61898184e3Ssthen 62898184e3Ssthen is( Local::ToMan->_get_columns_from_manwidth(), $test->[MANWIDTH_EXPECTED], 63898184e3Ssthen "_get_columns_from_manwidth returns the right number" ); 64898184e3Ssthen is( Local::ToMan->_get_columns_from_stty(), $test->[STTY_EXPECTED], 65898184e3Ssthen "_get_columns_from_stty returns the right number" ); 66898184e3Ssthen is( Local::ToMan->_get_columns, $test->[EXPECTED], 67898184e3Ssthen "_get_columns returns the right number" ); 68898184e3Ssthen } 69