1.20.x mail.test BackdropHtmlToTextTestCase::testBackdropHtmlToTextBlockTagToNewline()

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 301
Test the Backdrop mailing system.

Class

BackdropHtmlToTextTestCase
Unit tests for backdrop_html_to_text().

Code

function testBackdropHtmlToTextBlockTagToNewline() {
  $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 = backdrop_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 = backdrop_strtoupper($output);
  $upper_input = backdrop_strtoupper($input);
  $upper_output = backdrop_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
      );
  }
}