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' => 'Ś', ), 6 => array( 'title' => 'Don\'t remove non-printable chars', 'in' => chr(0x002).chr(0x003), 'out' => chr(0x002).chr(0x003), ), ); } /** * @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'); } }