X-Git-Url: http://git.refcnt.org/?a=blobdiff_plain;f=test.pl;h=85e12b5d1f345bd64c6c43e6e938d672f37b75da;hb=c8d98f146989adf92c440e78b47b554b427ddf79;hp=a44395fecdce2b900557053cf3ee2e25ef85a105;hpb=e644ee656f5a2ec2dabe74dc14e432b336082cbf;p=colorize.git diff --git a/test.pl b/test.pl index a44395f..85e12b5 100755 --- a/test.pl +++ b/test.pl @@ -12,7 +12,7 @@ use Getopt::Long qw(:config no_auto_abbrev no_ignore_case); use Test::Harness qw(runtests); use Test::More; -my $tests = 24; +my $tests = 30; my $valgrind_cmd = ''; { @@ -82,6 +82,19 @@ SKIP: { is(qx(printf %s "hello world" | $program Magenta | $valgrind_cmd$program $switch), 'hello world', "$type colored line"); is_deeply([split /\n/, qx($program cyan $infile1 | $valgrind_cmd$program $switch)], [split /\n/, $text], "$type colored text"); + { + my @attrs = qw(bold underscore blink reverse concealed); + + my $ok = true; + foreach my $attr (@attrs) { + $ok &= qx(printf %s "$attr" | $program green --attr=$attr | $valgrind_cmd$program $switch) eq $attr; + } + ok($ok, "$type attribute"); + + my $attrs = join ',', @attrs; + is(qx(printf %s "$attrs" | $program green --attr=$attrs | $valgrind_cmd$program $switch), $attrs, "$type attributes"); + } + ok(qx(printf %s "\e[\e[33m" | $valgrind_cmd$program $switch) eq "\e[", "$type with invalid sequence"); }; @@ -119,10 +132,24 @@ SKIP: { is($sequences, 2, 'count of sequences printed'); } + { + # Check that a 'none' foreground color (with a background color present) + # will be substituted by 'default'. + my $colored_text = qx(printf %s "foo bar baz" | $valgrind_cmd$program none/black); + is($colored_text, "\e[40m\e[39mfoo bar baz\e[0m", 'no color sequences printed'); + } + is(qx(printf %s "hello\nworld\r\n" | $valgrind_cmd$program none/none), "hello\nworld\r\n", 'stream mode'); is(system(qq(printf '%s\n' "hello world" | $valgrind_cmd$program random --exclude-random=black >/dev/null)), 0, 'switch exclude-random'); + { + my $infile = $write_to_tmpfile->("foo\n\nbar"); + is_deeply([split /\n/, qx($valgrind_cmd$program yellow --omit-color-empty $infile)], + [split /\n/, "\e[33mfoo\e[0m\n\n\e[33mbar\e[0m"], + 'switch omit-color-empty'); + } + SKIP: { skip 'valgrind not found', 1 unless system('which valgrind >/dev/null 2>&1') == 0; like(qx(valgrind $program none/none $infile1 2>&1 >/dev/null), qr/no leaks are possible/, 'valgrind memleaks'); @@ -145,6 +172,14 @@ EOT system(qq(printf '%s\n' "$bold_color" | $program $bold_color)); } + print <<'EOT'; +Attributes +========== +EOT + foreach my $attr (qw(bold underscore blink reverse concealed)) { + system(qq(printf '%s\n' "$attr" | $program green --attr=$attr)); + } + unlink $program; };