xref: /openbsd-src/gnu/usr.bin/perl/cpan/Pod-Perldoc/t/man/_get_columns.t (revision b8851fcc53cbe24fd20b090f26dd149e353f6174)
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