Commit | Line | Data |
e3e5e1ea |
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 | |
110e9fb0 |
9 | BEGIN { $| = 1; print "1..12\n" } |
e3e5e1ea |
10 | END { print "not ok 1\n" unless $loaded } |
110e9fb0 |
11 | delete $ENV{ANSI_COLORS_DISABLED}; |
12 | use Term::ANSIColor qw(:constants color colored uncolor); |
e3e5e1ea |
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 | } |
f63addff |
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 | } |
110e9fb0 |
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 | } |