summaryrefslogtreecommitdiff
path: root/tests/Framework/Mime.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Framework/Mime.php')
-rw-r--r--tests/Framework/Mime.php213
1 files changed, 0 insertions, 213 deletions
diff --git a/tests/Framework/Mime.php b/tests/Framework/Mime.php
deleted file mode 100644
index d767905e3..000000000
--- a/tests/Framework/Mime.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-
-/**
- * Test class to test rcube_mime class
- *
- * @package Tests
- */
-class Framework_Mime extends PHPUnit_Framework_TestCase
-{
-
- /**
- * Test decoding of single e-mail address strings
- * Uses rcube_mime::decode_address_list()
- */
- function test_decode_single_address()
- {
- $headers = array(
- 0 => 'test@domain.tld',
- 1 => '<test@domain.tld>',
- 2 => 'Test <test@domain.tld>',
- 3 => 'Test Test <test@domain.tld>',
- 4 => 'Test Test<test@domain.tld>',
- 5 => '"Test Test" <test@domain.tld>',
- 6 => '"Test Test"<test@domain.tld>',
- 7 => '"Test \\" Test" <test@domain.tld>',
- 8 => '"Test<Test" <test@domain.tld>',
- 9 => '=?ISO-8859-1?B?VGVzdAo=?= <test@domain.tld>',
- 10 => '=?ISO-8859-1?B?VGVzdAo=?=<test@domain.tld>', // #1487068
- // comments in address (#1487673)
- 11 => 'Test (comment) <test@domain.tld>',
- 12 => '"Test" (comment) <test@domain.tld>',
- 13 => '"Test (comment)" (comment) <test@domain.tld>',
- 14 => '(comment) <test@domain.tld>',
- 15 => 'Test <test@(comment)domain.tld>',
- 16 => 'Test Test ((comment)) <test@domain.tld>',
- 17 => 'test@domain.tld (comment)',
- 18 => '"Test,Test" <test@domain.tld>',
- // 1487939
- 19 => 'Test <"test test"@domain.tld>',
- 20 => '<"test test"@domain.tld>',
- 21 => '"test test"@domain.tld',
- // invalid (#1489092)
- 22 => '"John Doe @ SomeBusinessName" <MAILER-DAEMON>',
- 23 => '=?UTF-8?B?IlRlc3QsVGVzdCI=?= <test@domain.tld>',
- );
-
- $results = array(
- 0 => array(1, '', 'test@domain.tld'),
- 1 => array(1, '', 'test@domain.tld'),
- 2 => array(1, 'Test', 'test@domain.tld'),
- 3 => array(1, 'Test Test', 'test@domain.tld'),
- 4 => array(1, 'Test Test', 'test@domain.tld'),
- 5 => array(1, 'Test Test', 'test@domain.tld'),
- 6 => array(1, 'Test Test', 'test@domain.tld'),
- 7 => array(1, 'Test " Test', 'test@domain.tld'),
- 8 => array(1, 'Test<Test', 'test@domain.tld'),
- 9 => array(1, 'Test', 'test@domain.tld'),
- 10 => array(1, 'Test', 'test@domain.tld'),
- 11 => array(1, 'Test', 'test@domain.tld'),
- 12 => array(1, 'Test', 'test@domain.tld'),
- 13 => array(1, 'Test (comment)', 'test@domain.tld'),
- 14 => array(1, '', 'test@domain.tld'),
- 15 => array(1, 'Test', 'test@domain.tld'),
- 16 => array(1, 'Test Test', 'test@domain.tld'),
- 17 => array(1, '', 'test@domain.tld'),
- 18 => array(1, 'Test,Test', 'test@domain.tld'),
- 19 => array(1, 'Test', '"test test"@domain.tld'),
- 20 => array(1, '', '"test test"@domain.tld'),
- 21 => array(1, '', '"test test"@domain.tld'),
- // invalid (#1489092)
- 22 => array(1, 'John Doe @ SomeBusinessName', 'MAILER-DAEMON'),
- 23 => array(1, 'Test,Test', 'test@domain.tld'),
- );
-
- foreach ($headers as $idx => $header) {
- $res = rcube_mime::decode_address_list($header);
-
- $this->assertEquals($results[$idx][0], count($res), "Rows number in result for header: " . $header);
- $this->assertEquals($results[$idx][1], $res[1]['name'], "Name part decoding for header: " . $header);
- $this->assertEquals($results[$idx][2], $res[1]['mailto'], "Email part decoding for header: " . $header);
- }
- }
-
- /**
- * Test decoding of header values
- * Uses rcube_mime::decode_mime_string()
- */
- function test_header_decode_qp()
- {
- $test = array(
- // #1488232: invalid character "?"
- 'quoted-printable (1)' => array(
- 'in' => '=?utf-8?Q?Certifica=C3=A7=C3=A3??=',
- 'out' => 'Certifica=C3=A7=C3=A3?',
- ),
- 'quoted-printable (2)' => array(
- 'in' => '=?utf-8?Q?Certifica=?= =?utf-8?Q?C3=A7=C3=A3?=',
- 'out' => 'Certifica=C3=A7=C3=A3',
- ),
- 'quoted-printable (3)' => array(
- 'in' => '=?utf-8?Q??= =?utf-8?Q??=',
- 'out' => '',
- ),
- 'quoted-printable (4)' => array(
- 'in' => '=?utf-8?Q??= a =?utf-8?Q??=',
- 'out' => ' a ',
- ),
- 'quoted-printable (5)' => array(
- 'in' => '=?utf-8?Q?a?= =?utf-8?Q?b?=',
- 'out' => 'ab',
- ),
- 'quoted-printable (6)' => array(
- 'in' => '=?utf-8?Q? ?= =?utf-8?Q?a?=',
- 'out' => ' a',
- ),
- 'quoted-printable (7)' => array(
- 'in' => '=?utf-8?Q?___?= =?utf-8?Q?a?=',
- 'out' => ' a',
- ),
- );
-
- foreach ($test as $idx => $item) {
- $res = rcube_mime::decode_mime_string($item['in'], 'UTF-8');
- $res = quoted_printable_encode($res);
-
- $this->assertEquals($item['out'], $res, "Header decoding for: " . $idx);
- }
- }
-
- /**
- * Test format=flowed unfolding
- */
- function test_format_flowed()
- {
- $raw = file_get_contents(TESTS_DIR . 'src/format-flowed-unfolded.txt');
- $flowed = file_get_contents(TESTS_DIR . 'src/format-flowed.txt');
-
- $this->assertEquals($flowed, rcube_mime::format_flowed($raw, 80), "Test correct folding and space-stuffing");
- }
-
- /**
- * Test format=flowed unfolding
- */
- function test_unfold_flowed()
- {
- $flowed = file_get_contents(TESTS_DIR . 'src/format-flowed.txt');
- $unfolded = file_get_contents(TESTS_DIR . 'src/format-flowed-unfolded.txt');
-
- $this->assertEquals($unfolded, rcube_mime::unfold_flowed($flowed), "Test correct unfolding of quoted lines");
- }
-
- /**
- * Test wordwrap()
- */
- function test_wordwrap()
- {
- $samples = array(
- array(
- array("aaaa aaaa\n aaaa"),
- "aaaa aaaa\n aaaa",
- ),
- array(
- array("123456789 123456789 123456789 123", 29),
- "123456789 123456789 123456789\n123",
- ),
- array(
- array("123456789 3456789 123456789", 29),
- "123456789 3456789 123456789",
- ),
- array(
- array("123456789 123456789 123456789 123", 29),
- "123456789 123456789 123456789\n 123",
- ),
- array(
- array("abc", 1, "\n", true),
- "a\nb\nc",
- ),
- array(
- array("ąść", 1, "\n", true, 'UTF-8'),
- "ą\nś\nć",
- ),
- array(
- array(">abc\n>def", 2, "\n", true),
- ">abc\n>def",
- ),
- array(
- array("abc def", 3, "-"),
- "abc-def",
- ),
- array(
- array("----------------------------------------------------------------------------------------\nabc def123456789012345", 76),
- "----------------------------------------------------------------------------------------\nabc def123456789012345",
- ),
- array(
- array("-------\nabc def", 5),
- "-------\nabc\ndef",
- ),
- array(
- array("http://xx.xxx.xx.xxx:8080/addressbooks/roundcubexxxxx%40xxxxxxxxxxxxxxxxxxxxxxx.xx.xx/testing/", 70),
- "http://xx.xxx.xx.xxx:8080/addressbooks/roundcubexxxxx%40xxxxxxxxxxxxxxxxxxxxxxx.xx.xx/testing/",
- ),
- array(
- array("this-is-just-some-blabla-to-make-this-more-than-seventy-five-characters-in-a-row -- this line should be wrapped", 20, "\n"),
- "this-is-just-some-blabla-to-make-this-more-than-seventy-five-characters-in-a-row\n-- this line should\nbe wrapped",
- ),
- );
-
- foreach ($samples as $sample) {
- $this->assertEquals($sample[1], call_user_func_array(array('rcube_mime', 'wordwrap'), $sample[0]), "Test text wrapping");
- }
- }
-
-}