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