From b37954110d2184279a7f400d8750996a27b8f666 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Wed, 5 Feb 2014 20:18:51 +0100 Subject: Bring back unit tests (they should be removed when creating a package) --- tests/Framework/Html2text.php | 106 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 tests/Framework/Html2text.php (limited to 'tests/Framework/Html2text.php') diff --git a/tests/Framework/Html2text.php b/tests/Framework/Html2text.php new file mode 100644 index 000000000..2c7759f7d --- /dev/null +++ b/tests/Framework/Html2text.php @@ -0,0 +1,106 @@ + array( + 'title' => 'Test entry', + 'in' => '', + 'out' => '', + ), + 1 => array( + 'title' => 'Basic HTML entities', + 'in' => '"&', + 'out' => '"&', + ), + 2 => array( + 'title' => 'HTML entity string', + 'in' => '&quot;', + 'out' => '"', + ), + 3 => array( + 'title' => 'HTML entity in STRONG tag', + 'in' => 'ś', // ś + 'out' => 'Ś', // upper ś + ), + 4 => array( + 'title' => 'STRONG tag to upper-case conversion', + 'in' => 'ś', + 'out' => 'Ś', + ), + 5 => array( + 'title' => 'STRONG inside B tag', + 'in' => 'ś', + 'out' => 'Ś', + ), + ); + } + + /** + * @dataProvider data_html2text + */ + function test_html2text($title, $in, $out) + { + $ht = new rcube_html2text(null, false, false); + + $ht->set_html($in); + $res = $ht->get_text(); + + $this->assertEquals($out, $res, $title); + } + + /** + * + */ + function test_multiple_blockquotes() + { + $html = <<Begin
OUTER BEGIN
INNER 1

Par 1
+
INNER 2

Par 2
+

Par 3

+
INNER 3
OUTER END
+EOF; + $ht = new rcube_html2text($html, false, false); + $res = $ht->get_text(); + + $this->assertContains('>> INNER 1', $res, 'Quote inner'); + $this->assertContains('>> INNER 3', $res, 'Quote inner'); + $this->assertContains('> OUTER END', $res, 'Quote outer'); + } + + function test_broken_blockquotes() + { + // no end tag + $html = << +
QUOTED TEXT +
+NO END TAG FOUND +EOF; + $ht = new rcube_html2text($html, false, false); + $res = $ht->get_text(); + + $this->assertContains('QUOTED TEXT NO END TAG FOUND', $res, 'No quoating on invalid html'); + + // with some (nested) end tags + $html = << +
QUOTED TEXT +
INNER 1
+
INNER 2
+NO END TAG FOUND +EOF; + $ht = new rcube_html2text($html, false, false); + $res = $ht->get_text(); + + $this->assertContains('QUOTED TEXT INNER 1 INNER 2 NO END', $res, 'No quoating on invalid html'); + } +} -- cgit v1.2.3