function DrupalHtmlToTextTestCase::testDrupalHtmlToTextBlockTagToNewline

Test that text separated by block-level tags in HTML get separated by (at least) a newline in the plaintext version.

File

modules/simpletest/tests/mail.test, line 389

Class

DrupalHtmlToTextTestCase
Unit tests for drupal_html_to_text().

Code

function testDrupalHtmlToTextBlockTagToNewline() {
    $input = '[text]' . '<blockquote>[blockquote]</blockquote>' . '<br />[br]' . '<dl><dt>[dl-dt]</dt>' . '<dt>[dt]</dt>' . '<dd>[dd]</dd>' . '<dd>[dd-dl]</dd></dl>' . '<h1>[h1]</h1>' . '<h2>[h2]</h2>' . '<h3>[h3]</h3>' . '<h4>[h4]</h4>' . '<h5>[h5]</h5>' . '<h6>[h6]</h6>' . '<hr />[hr]' . '<ol><li>[ol-li]</li>' . '<li>[li]</li>' . '<li>[li-ol]</li></ol>' . '<p>[p]</p>' . '<ul><li>[ul-li]</li>' . '<li>[li-ul]</li></ul>' . '[text]';
    $output = drupal_html_to_text($input);
    $pass = $this->assertFalse(preg_match('/\\][^\\n]*\\[/s', $output), 'Block-level HTML tags should force newlines');
    if (!$pass) {
        $this->verbose($this->stringToHtml($output));
    }
    $output_upper = drupal_strtoupper($output);
    $upper_input = drupal_strtoupper($input);
    $upper_output = drupal_html_to_text($upper_input);
    $pass = $this->assertEqual($upper_output, $output_upper, 'Tag recognition should be case-insensitive');
    if (!$pass) {
        $this->verbose($upper_output . '<br />should  be equal to <br />' . $output_upper);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.