t('unicode.inc tests'), 'description' => t('Tests functions in unicode.inc'), 'group' => t('Unicode.inc'), ); } /** * Ensure strings are being character truncated properly (drupal_truncate_chars()) */ function test_drupal_truncate_chars() { // Strings to try truncating $empty_string = ''; $ascii_string = 'foo bar xyz'; $utf8_string = 'äâãå æêë öø'; $lat_alphabet = 'A B C D E F G H I J K L M N O P Q R S T U W X Y Z'; $cyr_alphabet = 'А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ъ Ы Ю Э Ю Я'; // Checks against a plain ASCII string $this->assertEqual(drupal_truncate_chars($ascii_string, 8, TRUE, TRUE), 'foo ...', 'Expected truncating to return "foo ..." ($wordsafe on, $dots on)'); $this->assertEqual(drupal_truncate_chars($ascii_string, 8, TRUE, FALSE), 'foo bar', 'Expected truncating to return "foo bar" ($wordsafe on, $dots off)'); $this->assertEqual(drupal_truncate_chars($ascii_string, 8, FALSE, TRUE), 'foo b...', 'Expected truncating to return "foo b..." ($wordsafe off, $dots on)'); $this->assertEqual(drupal_truncate_chars($ascii_string, 8, FALSE, FALSE), 'foo bar ', 'Expected truncating to return "foo bar " ($wordsafe off, $dots off)'); // Checks against an UTF-8 string $this->assertEqual(drupal_truncate_chars($utf8_string, 10, TRUE, TRUE), 'äâãå ...', 'Expected truncating to return "äâãå ..." ($wordsafe on, $dots on)'); $this->assertEqual(drupal_truncate_chars($utf8_string, 10, TRUE, FALSE), 'äâãå æêë', 'Expected truncating to return "äâãå æêë" ($wordsafe on, $dots off)'); $this->assertEqual(drupal_truncate_chars($utf8_string, 10, FALSE, TRUE), 'äâãå æê...', 'Expected truncating to return "äâãå æê..." ($wordsafe off, $dots on)'); $this->assertEqual(drupal_truncate_chars($utf8_string, 10, FALSE, FALSE), 'äâãå æêë ö', 'Expected truncating to return "äâãå æêë ö" ($wordsafe off, $dots off)'); // Checks against an empty string $this->assertEqual(drupal_truncate_chars($empty_string, 10, TRUE, TRUE), '', 'Expected truncating to return "" ($wordsafe on, $dots on)'); $this->assertEqual(drupal_truncate_chars($empty_string, 10, TRUE, FALSE), '', 'Expected truncating to return "" ($wordsafe on, $dots off)'); $this->assertEqual(drupal_truncate_chars($empty_string, 10, FALSE, TRUE), '', 'Expected truncating to return "" ($wordsafe off, $dots on)'); $this->assertEqual(drupal_truncate_chars($empty_string, 10, FALSE, FALSE), '', 'Expected truncating to return "" ($wordsafe off, $dots off)'); // Checks per issue 200185 $this->assertEqual(drupal_truncate_chars($lat_alphabet, 29, FALSE, FALSE), 'A B C D E F G H I J K L M N O', 'Failed truncating Latin alphabet'); $this->assertEqual(drupal_truncate_chars($cyr_alphabet, 29, FALSE, FALSE), 'А Б В Г Д Е Ё Ж З И Й К Л М О', 'Failed truncating Cyrillic alphabet'); } }