@@ -18,16 +18,24 @@ function test_encoded_string_length() {
18
18
19
19
$ this ->assertEquals ( \cli \Colors::length ( 'hello ' ), 5 );
20
20
$ this ->assertEquals ( \cli \Colors::length ( 'óra ' ), 3 );
21
+ $ this ->assertEquals ( \cli \Colors::length ( '日本語 ' ), 3 );
21
22
22
- $ this ->assertEquals ( \cli \safe_strlen ( \cli \Colors::pad ( 'hello ' , 6 ) ), 6 );
23
- $ this ->assertEquals ( \cli \safe_strlen ( \cli \Colors::pad ( 'óra ' , 6 ) ), 6 );
23
+ }
24
+
25
+ function test_encoded_string_pad () {
26
+
27
+ $ this ->assertEquals ( 6 , strlen ( \cli \Colors::pad ( 'hello ' , 6 ) ) );
28
+ $ this ->assertEquals ( 7 , strlen ( \cli \Colors::pad ( 'óra ' , 6 ) ) ); // special characters take one byte
29
+ $ this ->assertEquals ( 9 , strlen ( \cli \Colors::pad ( '日本語 ' , 6 ) ) ); // each character takes two bytes
30
+ $ this ->assertEquals ( 17 , strlen ( \cli \Colors::pad ( 'עִבְרִית ' , 6 ) ) ); // process Hebrew vowels
24
31
25
32
}
26
33
27
34
function test_encoded_substr () {
28
35
29
36
$ this ->assertEquals ( \cli \safe_substr ( \cli \Colors::pad ( 'hello ' , 6 ), 0 , 2 ), 'he ' );
30
37
$ this ->assertEquals ( \cli \safe_substr ( \cli \Colors::pad ( 'óra ' , 6 ), 0 , 2 ), 'ór ' );
38
+ $ this ->assertEquals ( \cli \safe_substr ( \cli \Colors::pad ( '日本語 ' , 6 ), 0 , 2 ), '日本 ' );
31
39
32
40
}
33
41
0 commit comments