From eda92ed4c0d2735144df8fa2136584de69634bdb Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sun, 11 May 2014 11:03:45 +0200 Subject: Improved display of plain text messages and text to HTML conversion (#1488937) Now instead of
 we use 
styled with monospace font. We replace whitespace characters with non-breaking spaces where needed. I.e. plain text is always unwrappable, until it uses format=flowed, in such a case only flowed paragraphs are wrappable. Also conversion of text to HTML in compose editor was modified in the same way. --- tests/Framework/Text2Html.php | 81 +++++++++++++++++++++++++++++++++++++++++++ tests/phpunit.xml | 1 + 2 files changed, 82 insertions(+) create mode 100644 tests/Framework/Text2Html.php (limited to 'tests') diff --git a/tests/Framework/Text2Html.php b/tests/Framework/Text2Html.php new file mode 100644 index 000000000..91dabf2b7 --- /dev/null +++ b/tests/Framework/Text2Html.php @@ -0,0 +1,81 @@ + '', + 'end' => '', + 'break' => '
', + 'links' => false, + 'flowed' => false, + 'space' => '_', // replace UTF-8 non-breaking space for simpler testing + ); + + $data[] = array(" aaaa", "_aaaa", $options); + $data[] = array("aaaa aaaa", "aaaa_aaaa", $options); + $data[] = array("aaaa aaaa", "aaaa__aaaa", $options); + $data[] = array("aaaa aaaa", "aaaa___aaaa", $options); + $data[] = array("aaaa\taaaa", "aaaa____aaaa", $options); + $data[] = array("aaaa\naaaa", "aaaa
aaaa", $options); + $data[] = array("aaaa\n aaaa", "aaaa
_aaaa", $options); + $data[] = array("aaaa\n aaaa", "aaaa
__aaaa", $options); + $data[] = array("aaaa\n aaaa", "aaaa
___aaaa", $options); + $data[] = array("\taaaa", "____aaaa", $options); + $data[] = array("\naaaa", "
aaaa", $options); + $data[] = array("\n aaaa", "
_aaaa", $options); + $data[] = array("\n aaaa", "
__aaaa", $options); + $data[] = array("\n aaaa", "
___aaaa", $options); + $data[] = array("aaaa\n\nbbbb", "aaaa

bbbb", $options); + $data[] = array(">aaaa \n>aaaa", "
aaaa_
aaaa
", $options); + $data[] = array(">aaaa\n>aaaa", "
aaaa
aaaa
", $options); + $data[] = array(">aaaa \n>bbbb\ncccc dddd", "
aaaa_
bbbb
cccc_dddd", $options); + + $options['flowed'] = true; + + $data[] = array(" aaaa", "aaaa", $options); + $data[] = array("aaaa aaaa", "aaaa_aaaa", $options); + $data[] = array("aaaa aaaa", "aaaa__aaaa", $options); + $data[] = array("aaaa aaaa", "aaaa___aaaa", $options); + $data[] = array("aaaa\taaaa", "aaaa____aaaa", $options); + $data[] = array("aaaa\naaaa", "aaaa
aaaa", $options); + $data[] = array("aaaa\n aaaa", "aaaa
aaaa", $options); + $data[] = array("aaaa\n aaaa", "aaaa
_aaaa", $options); + $data[] = array("aaaa\n aaaa", "aaaa
__aaaa", $options); + $data[] = array("\taaaa", "____aaaa", $options); + $data[] = array("\naaaa", "
aaaa", $options); + $data[] = array("\n aaaa", "
aaaa", $options); + $data[] = array("\n aaaa", "
_aaaa", $options); + $data[] = array("\n aaaa", "
__aaaa", $options); + $data[] = array("aaaa\n\nbbbb", "aaaa

bbbb", $options); + $data[] = array(">aaaa \n>aaaa", "
aaaa aaaa
", $options); + $data[] = array(">aaaa\n>aaaa", "
aaaa
aaaa
", $options); + $data[] = array(">aaaa \n>bbbb\ncccc dddd", "
aaaa bbbb
cccc_dddd", $options); + + return $data; + } + + /** + * Test text to html conversion + * + * @dataProvider data_text2html + */ + function test_text2html($input, $output, $options) + { + $t2h = new rcube_text2html($input, false, $options); + + $html = $t2h->get_html(); + + $this->assertEquals($output, $html); + } +} diff --git a/tests/phpunit.xml b/tests/phpunit.xml index cee3434c1..f3df53521 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -40,6 +40,7 @@ Framework/SpellcheckPspell.php Framework/Spellchecker.php Framework/StringReplacer.php + Framework/Text2Html.php Framework/User.php Framework/Utils.php Framework/VCard.php -- cgit v1.2.3