| | |
| | | 'in' => '<b><strong>ś</strong></b>', |
| | | 'out' => 'Ś', |
| | | ), |
| | | 6 => array( |
| | | 'title' => 'Don\'t remove non-printable chars', |
| | | 'in' => chr(0x002).chr(0x003), |
| | | 'out' => chr(0x002).chr(0x003), |
| | | ), |
| | | 7 => array( |
| | | 'title' => 'Remove spaces after <br>', |
| | | 'in' => 'test<br> test', |
| | | 'out' => "test\ntest", |
| | | ), |
| | | 8 => array( |
| | | 'title' => ' handling test', |
| | | 'in' => '<div>eye: test<br /> tes: test</div>', |
| | | 'out' => "eye: test\ntes: test", |
| | | ), |
| | | ); |
| | | } |
| | | |
| | |
| | | |
| | | $this->assertEquals($out, $res, $title); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | function test_multiple_blockquotes() |
| | | { |
| | | $html = <<<EOF |
| | | <br>Begin<br><blockquote>OUTER BEGIN<blockquote>INNER 1<br></blockquote><div><br></div><div>Par 1</div> |
| | | <blockquote>INNER 2</blockquote><div><br></div><div>Par 2</div> |
| | | <div><br></div><div>Par 3</div><div><br></div> |
| | | <blockquote>INNER 3</blockquote>OUTER END</blockquote> |
| | | 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 = <<<EOF |
| | | Begin<br> |
| | | <blockquote>QUOTED TEXT |
| | | <blockquote> |
| | | 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 = <<<EOF |
| | | Begin<br> |
| | | <blockquote>QUOTED TEXT |
| | | <blockquote>INNER 1</blockquote> |
| | | <blockquote>INNER 2</blockquote> |
| | | 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'); |
| | | } |
| | | |
| | | function test_links() |
| | | { |
| | | $html = '<a href="http://test.com">content</a>'; |
| | | $expected = 'content [1] |
| | | |
| | | Links: |
| | | ------ |
| | | [1] http://test.com |
| | | '; |
| | | |
| | | $ht = new rcube_html2text($html, false, true); |
| | | $res = $ht->get_text(); |
| | | |
| | | $this->assertSame($expected, $res, 'Links list'); |
| | | |
| | | // href == content (#1490434) |
| | | $html = '<a href="http://test.com">http://test.com</a>'; |
| | | $expected = 'http://test.com'; |
| | | |
| | | $ht = new rcube_html2text($html, false, true); |
| | | $res = $ht->get_text(); |
| | | |
| | | $this->assertSame($expected, $res, 'Skip link with href == content'); |
| | | } |
| | | } |