- Fix regression in html conditional comments handling by washtml class
1 files added
2 files modified
| | |
| | | $this->config['base_url'] = ''; |
| | | |
| | | // Remove invalid HTML comments (#1487759) |
| | | $html = preg_replace('/<!--[^->]*>/', '', $html); |
| | | // Don't remove valid conditional comments |
| | | $html = preg_replace('/<!--[^->[]*>/', '', $html); |
| | | |
| | | @$node->loadHTML($html); |
| | | return $this->dumpHtml($node); |
| | |
| | | function test_mailto() |
| | | { |
| | | $part = $this->get_html_part('src/mailto.txt'); |
| | | |
| | | |
| | | // render HTML in normal mode |
| | | $html = rcmail_html4inline(rcmail_print_body($part, array('safe' => false)), 'foo'); |
| | | |
| | |
| | | $this->assertPattern('|'.preg_quote($mailto, '|').'|', $html, "Extended mailto links"); |
| | | } |
| | | |
| | | /** |
| | | * Test the elimination of HTML comments |
| | | */ |
| | | function test_html_comments() |
| | | { |
| | | $part = $this->get_html_part('src/htmlcom.txt'); |
| | | $washed = rcmail_print_body($part, array('safe' => true)); |
| | | |
| | | // #1487759 |
| | | $this->assertPattern('|<p>test1</p>|', $washed, "Buggy HTML comments"); |
| | | // but conditional comments (<!--[if ...) should be removed |
| | | $this->assertNoPattern('|<p>test2</p>|', $washed, "Conditional HTML comments"); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <html> |
| | | <head> |
| | | <title>Roundcube Test Message</title> |
| | | </head> |
| | | <body> |
| | | |
| | | <!--REF> |
| | | <p>test1</p> |
| | | <!--DEREF> |
| | | |
| | | <!--[if gte mso 9]><xml> |
| | | <p>test2</p> |
| | | </xml><![endif]--> |
| | | |
| | | </body> |
| | | </html> |