@@ -4,63 +4,76 @@ defmodule IO.ANSITest do
4
4
use ExUnit.Case , async: true
5
5
6
6
test :format_ansicode do
7
- assert IO.ANSI . format ( :green , true ) ==
7
+ assert IO . chardata_to_string ( IO. ANSI. format ( :green , true ) ) ==
8
8
"#{ IO.ANSI . green } #{ IO.ANSI . reset } "
9
- assert IO.ANSI . format ( :green , false ) ==
9
+ assert IO . chardata_to_string ( IO. ANSI. format ( :green , false ) ) ==
10
10
""
11
11
end
12
12
13
13
test :format_binary do
14
- assert IO.ANSI . format ( "Hello, world!" , true ) ==
14
+ assert IO . chardata_to_string ( IO. ANSI. format ( "Hello, world!" , true ) ) ==
15
15
"Hello, world!"
16
- assert IO.ANSI . format ( "This is a map: %{foo: :bar}" , false ) ==
17
- "This is a map: %{foo: :bar}"
16
+ assert IO . chardata_to_string ( IO. ANSI. format ( "A map: %{foo: :bar}" , false ) ) ==
17
+ "A map: %{foo: :bar}"
18
18
end
19
19
20
20
test :format_empty_list do
21
- assert IO.ANSI . format ( [ ] , true ) ==
21
+ assert IO . chardata_to_string ( IO. ANSI. format ( [ ] , true ) ) ==
22
22
""
23
- assert IO.ANSI . format ( [ ] , false ) ==
23
+ assert IO . chardata_to_string ( IO. ANSI. format ( [ ] , false ) ) ==
24
24
""
25
25
end
26
26
27
27
test :format_ansicode_list do
28
- assert IO.ANSI . format ( [ :red , :bright ] , true ) ==
28
+ assert IO . chardata_to_string ( IO. ANSI. format ( [ :red , :bright ] , true ) ) ==
29
29
"#{ IO.ANSI . red } #{ IO.ANSI . bright } #{ IO.ANSI . reset } "
30
- assert IO.ANSI . format ( [ :red , :bright ] , false ) ==
30
+ assert IO . chardata_to_string ( IO. ANSI. format ( [ :red , :bright ] , false ) ) ==
31
31
""
32
32
end
33
33
34
34
test :format_binary_list do
35
- assert IO.ANSI . format ( [ "Hello, " , "world!" ] , true ) ==
35
+ assert IO . chardata_to_string ( IO. ANSI. format ( [ "Hello, " , "world!" ] , true ) ) ==
36
36
"Hello, world!"
37
- assert IO.ANSI . format ( [ "Hello, " , "world!" ] , false ) ==
37
+ assert IO . chardata_to_string ( IO. ANSI. format ( [ "Hello, " , "world!" ] , false ) ) ==
38
38
"Hello, world!"
39
39
end
40
40
41
41
test :format_char_list do
42
- assert IO.ANSI . format ( 'Hello, world!' , true ) ==
42
+ assert IO . chardata_to_string ( IO. ANSI. format ( 'Hello, world!' , true ) ) ==
43
43
"Hello, world!"
44
- assert IO.ANSI . format ( 'Hello, world!' , false ) ==
44
+ assert IO . chardata_to_string ( IO. ANSI. format ( 'Hello, world!' , false ) ) ==
45
45
"Hello, world!"
46
46
end
47
47
48
48
test :format_mixed_list do
49
- assert IO.ANSI . format ( [ "Hello" , ?, , 32 , :red , "world!" ] , true ) ==
49
+ data = [ "Hello" , ?, , 32 , :red , "world!" ]
50
+
51
+ assert IO . chardata_to_string ( IO.ANSI . format ( data , true ) ) ==
50
52
"Hello, #{ IO.ANSI . red } world!#{ IO.ANSI . reset } "
51
- assert IO.ANSI . format ( [ "Hello" , ?, , 32 , :red , "world!" ] , false ) ==
53
+ assert IO . chardata_to_string ( IO. ANSI. format ( data , false ) ) ==
52
54
"Hello, world!"
53
55
end
54
56
55
57
test :format_nested_list do
56
- assert IO.ANSI . format ( [ "Hello, " , [ "nested" , 32 , :red , "world!" ] ] , true ) ==
58
+ data = [ "Hello, " , [ "nested" , 32 , :red , "world!" ] ]
59
+
60
+ assert IO . chardata_to_string ( IO.ANSI . format ( data , true ) ) ==
57
61
"Hello, nested #{ IO.ANSI . red } world!#{ IO.ANSI . reset } "
58
- assert IO.ANSI . format ( [ "Hello, " , [ "nested" , 32 , :red , "world!" ] ] , false ) ==
62
+ assert IO . chardata_to_string ( IO. ANSI. format ( data , false ) ) ==
59
63
"Hello, nested world!"
60
64
end
61
65
66
+ test :format_improper_list do
67
+ data = [ "Hello, " , :red , "world!" | :reset ]
68
+
69
+ assert IO . chardata_to_string ( IO.ANSI . format ( data , true ) ) ==
70
+ "Hello, #{ IO.ANSI . red } world!#{ IO.ANSI . reset } "
71
+ assert IO . chardata_to_string ( IO.ANSI . format ( data , false ) ) ==
72
+ "Hello, world!"
73
+ end
74
+
62
75
test :format_fragment do
63
- assert IO.ANSI . format_fragment ( [ :red , "Hello!" ] , true ) ==
76
+ assert IO . chardata_to_string ( IO. ANSI. format_fragment ( [ :red , "Hello!" ] , true ) ) ==
64
77
"#{ IO.ANSI . red } Hello!"
65
78
end
66
79
0 commit comments