DrupalHtmlToTextTestCase::testDrupalHtmlToTextBlockTagToNewline

7 mail.test DrupalHtmlToTextTestCase::testDrupalHtmlToTextBlockTagToNewline()
8 mail.test public 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 289
Test the Drupal mailing system.

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
      );
  }
}
Login or register to post comments