# Test suite for the Term::ANSIColor Perl module. Before `make install' is
# performed this script should be runnable with `make test'. After `make
# install' it should work as `perl test.pl'.
############################################################################
# Ensure module can be loaded
############################################################################
BEGIN { $| = 1; print "1..12\n" }
END { print "not ok 1\n" unless $loaded }
delete $ENV{ANSI_COLORS_DISABLED
};
use Term
::ANSIColor
qw(:constants color colored uncolor);
############################################################################
############################################################################
# Test simple color attributes.
if (color
('blue on_green', 'bold') eq "\e[34;42;1m") {
if (colored
("testing", 'blue', 'bold') eq "\e[34;1mtesting\e[0m") {
if (BLUE BOLD
"testing" eq "\e[34m\e[1mtesting") {
$Term::ANSIColor
::AUTORESET
= 1;
if (BLUE BOLD
"testing" eq "\e[34m\e[1mtesting\e[0m\e[0m") {
$Term::ANSIColor
::EACHLINE
= "\n";
if (colored
("test\n\ntest", 'bold')
eq "\e[1mtest\e[0m\n\n\e[1mtest\e[0m") {
print colored
("test\n\ntest", 'bold'), "\n";
# Test EACHLINE with multiple trailing delimiters.
$Term::ANSIColor
::EACHLINE
= "\r\n";
if (colored
("test\ntest\r\r\n\r\n", 'bold')
eq "\e[1mtest\ntest\r\e[0m\r\n\r\n") {
# Test the array ref form.
$Term::ANSIColor
::EACHLINE
= "\n";
if (colored
(['bold', 'on_green'], "test\n", "\n", "test")
eq "\e[1;42mtest\e[0m\n\n\e[1;42mtest\e[0m") {
print colored
(['bold', 'on_green'], "test\n", "\n", "test");
my @names = uncolor
('1;42', "\e[m", '', "\e[0m");
if (join ('|', @names) eq 'bold|on_green|clear') {
print join ('|', @names), "\n";
# Test ANSI_COLORS_DISABLED.
$ENV{ANSI_COLORS_DISABLED
} = 1;
if (color
('blue') == '') {
if (colored
('testing', 'blue', 'on_red') == 'testing') {
if (GREEN
'testing' eq 'testing') {