@@ -18,16 +18,24 @@ function test_encoded_string_length() {
1818
1919 $ this ->assertEquals ( \cli \Colors::length ( 'hello ' ), 5 );
2020 $ this ->assertEquals ( \cli \Colors::length ( 'óra ' ), 3 );
21+ $ this ->assertEquals ( \cli \Colors::length ( '日本語 ' ), 3 );
2122
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
2431
2532 }
2633
2734 function test_encoded_substr () {
2835
2936 $ this ->assertEquals ( \cli \safe_substr ( \cli \Colors::pad ( 'hello ' , 6 ), 0 , 2 ), 'he ' );
3037 $ 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 ), '日本 ' );
3139
3240 }
3341
0 commit comments