1#!/usr/bin/perl 2# $Id: test.pl,v 1.3 2004/02/20 06:21:26 eagle Exp $ 3# 4# test.pl -- Test suite for the Term::ANSIColor Perl module. 5# 6# Before "make install" is performed this script should be runnable with "make 7# test". After "make install" it should work as "perl test.pl". 8 9############################################################################ 10# Ensure module can be loaded 11############################################################################ 12 13BEGIN { $| = 1; print "1..13\n" } 14END { print "not ok 1\n" unless $loaded } 15delete $ENV{ANSI_COLORS_DISABLED}; 16use Term::ANSIColor qw(:constants color colored uncolor); 17$loaded = 1; 18print "ok 1\n"; 19 20 21############################################################################ 22# Test suite 23############################################################################ 24 25# Test simple color attributes. 26if (color ('blue on_green', 'bold') eq "\e[34;42;1m") { 27 print "ok 2\n"; 28} else { 29 print "not ok 2\n"; 30} 31 32# Test colored. 33if (colored ("testing", 'blue', 'bold') eq "\e[34;1mtesting\e[0m") { 34 print "ok 3\n"; 35} else { 36 print "not ok 3\n"; 37} 38 39# Test the constants. 40if (BLUE BOLD "testing" eq "\e[34m\e[1mtesting") { 41 print "ok 4\n"; 42} else { 43 print "not ok 4\n"; 44} 45 46# Test AUTORESET. 47$Term::ANSIColor::AUTORESET = 1; 48if (BLUE BOLD "testing" eq "\e[34m\e[1mtesting\e[0m\e[0m") { 49 print "ok 5\n"; 50} else { 51 print "not ok 5\n"; 52} 53 54# Test EACHLINE. 55$Term::ANSIColor::EACHLINE = "\n"; 56if (colored ("test\n\ntest", 'bold') 57 eq "\e[1mtest\e[0m\n\n\e[1mtest\e[0m") { 58 print "ok 6\n"; 59} else { 60 print colored ("test\n\ntest", 'bold'), "\n"; 61 print "not ok 6\n"; 62} 63 64# Test EACHLINE with multiple trailing delimiters. 65$Term::ANSIColor::EACHLINE = "\r\n"; 66if (colored ("test\ntest\r\r\n\r\n", 'bold') 67 eq "\e[1mtest\ntest\r\e[0m\r\n\r\n") { 68 print "ok 7\n"; 69} else { 70 print "not ok 7\n"; 71} 72 73# Test the array ref form. 74$Term::ANSIColor::EACHLINE = "\n"; 75if (colored (['bold', 'on_green'], "test\n", "\n", "test") 76 eq "\e[1;42mtest\e[0m\n\n\e[1;42mtest\e[0m") { 77 print "ok 8\n"; 78} else { 79 print colored (['bold', 'on_green'], "test\n", "\n", "test"); 80 print "not ok 8\n"; 81} 82 83# Test uncolor. 84my @names = uncolor ('1;42', "\e[m", '', "\e[0m"); 85if (join ('|', @names) eq 'bold|on_green|clear') { 86 print "ok 9\n"; 87} else { 88 print join ('|', @names), "\n"; 89 print "not ok 9\n"; 90} 91 92# Test ANSI_COLORS_DISABLED. 93$ENV{ANSI_COLORS_DISABLED} = 1; 94if (color ('blue') == '') { 95 print "ok 10\n"; 96} else { 97 print "not ok 10\n"; 98} 99if (colored ('testing', 'blue', 'on_red') == 'testing') { 100 print "ok 11\n"; 101} else { 102 print "not ok 11\n"; 103} 104if (GREEN 'testing' eq 'testing') { 105 print "ok 12\n"; 106} else { 107 print "not ok 12\n"; 108} 109delete $ENV{ANSI_COLORS_DISABLED}; 110 111# Make sure DARK is exported. This was omitted in versions prior to 1.07. 112if (DARK "testing" eq "\e[2mtesting\e[0m") { 113 print "ok 13\n"; 114} else { 115 print "not ok 13\n"; 116} 117