diff options
-rw-r--r-- | tests/Framework/Charset.php | 140 |
1 files changed, 137 insertions, 3 deletions
diff --git a/tests/Framework/Charset.php b/tests/Framework/Charset.php index 9e3fad4d3..1fd1654dc 100644 --- a/tests/Framework/Charset.php +++ b/tests/Framework/Charset.php @@ -14,15 +14,149 @@ class Framework_Charset extends PHPUnit_Framework_TestCase function data_clean() { return array( - array('', '', 'Empty string'), + array('', ''), + array("\xC1", ''), ); } /** * @dataProvider data_clean */ - function test_clean($input, $output, $title) + function test_clean($input, $output) { - $this->assertEquals(rcube_charset::clean($input), $output, $title); + $this->assertEquals($output, rcube_charset::clean($input)); } + + /** + * Data for test_parse_charset() + */ + function data_parse_charset() + { + return array( + array('UTF8', 'UTF-8'), + array('WIN1250', 'WINDOWS-1250'), + ); + } + + /** + * @dataProvider data_parse_charset + */ + function test_parse_charset($input, $output) + { + $this->assertEquals($output, rcube_charset::parse_charset($input)); + } + + /** + * Data for test_convert() + */ + function data_convert() + { + return array( + array('ö', 'ö', 'UTF-8', 'UTF-8'), + array('ö', '', 'UTF-8', 'US-ASCII'), + array('aż', 'a', 'UTF-8', 'US-ASCII'), + array('&BCAEMARBBEEESwQ7BDoEOA-', 'Рассылки', 'UTF7-IMAP', 'UTF-8'), + array('Рассылки', '&BCAEMARBBEEESwQ7BDoEOA-', 'UTF-8', 'UTF7-IMAP'), + ); + } + + /** + * @dataProvider data_convert + */ + function test_convert($input, $output, $from, $to) + { + $this->assertEquals($output, rcube_charset::convert($input, $from, $to)); + } + + /** + * Data for test_utf7_to_utf8() + */ + function data_utf7_to_utf8() + { + return array( + array('+BCAEMARBBEEESwQ7BDoEOA-', 'Рассылки'), + ); + } + + /** + * @dataProvider data_utf7_to_utf8 + */ + function test_utf7_to_utf8($input, $output) + { + $this->assertEquals($output, rcube_charset::utf7_to_utf8($input)); + } + + /** + * Data for test_utf7imap_to_utf8() + */ + function data_utf7imap_to_utf8() + { + return array( + array('&BCAEMARBBEEESwQ7BDoEOA-', 'Рассылки'), + ); + } + + /** + * @dataProvider data_utf7imap_to_utf8 + */ + function test_utf7imap_to_utf8($input, $output) + { + $this->assertEquals($output, rcube_charset::utf7imap_to_utf8($input)); + } + + /** + * Data for test_utf8_to_utf7imap() + */ + function data_utf8_to_utf7imap() + { + return array( + array('Рассылки', '&BCAEMARBBEEESwQ7BDoEOA-'), + ); + } + + /** + * @dataProvider data_utf8_to_utf7imap + */ + function test_utf8_to_utf7imap($input, $output) + { + $this->assertEquals($output, rcube_charset::utf8_to_utf7imap($input)); + } + + /** + * Data for test_utf16_to_utf8() + */ + function data_utf16_to_utf8() + { + return array( + array(base64_decode('BCAEMARBBEEESwQ7BDoEOA=='), 'Рассылки'), + ); + } + + /** + * @dataProvider data_utf16_to_utf8 + */ + function test_utf16_to_utf8($input, $output) + { + $this->assertEquals($output, rcube_charset::utf16_to_utf8($input)); + } + + /** + * Data for test_detect() + */ + function data_detect() + { + return array( + array('', '', 'UTF-8'), + array('a', 'UTF-8', 'UTF-8'), + ); + } + + /** + * @dataProvider data_detect + */ + function test_detect($input, $fallback, $output) + { + $this->assertEquals($output, rcube_charset::detect($input, $fallback)); + } + } |