function HelperTest::testWordCount

File

tests/src/Kernel/HelperTest.php, line 78

Class

HelperTest
Tests the helper functions in tmgmt.module.

Namespace

Drupal\Tests\tmgmt\Kernel

Code

function testWordCount() {
  $unit_tests = array(
    'empty' => array(
      'text' => '',
      'count' => 0,
    ),
    'latin' => array(
      'text' => 'Drupal is the best!',
      'count' => 4,
    ),
    'non-latin' => array(
      'text' => 'Друпал лучший!',
      'count' => 2,
    ),
    'complex punctuation' => array(
      'text' => '<[({-!ReAd@*;: ,?+MoRe...})]>\\|/',
      'count' => 2,
      'exclude_tags' => FALSE,
    ),
    'repeat' => array(
      'text' => 'repeat repeat',
      'count' => 2,
    ),
    'strip tags' => array(
      'text' => '<a href="http://example.com">link text</a> plain text <div class="some-css-class"></div>',
      'count' => 4,
    ),
  );
  $config = $this
    ->config('tmgmt.settings');
  foreach ($unit_tests as $id => $test_data) {

    // Set the exclude_tags flag. In case not provided the TRUE is default.
    $test_data += array(
      'exclude_tags' => TRUE,
    );
    if ($config
      ->get('word_count_exclude_tags') != $test_data['exclude_tags']) {
      $config
        ->set('word_count_exclude_tags', $test_data['exclude_tags'])
        ->save();
    }
    $this
      ->assertEquals($test_data['count'], \Drupal::service('tmgmt.data')
      ->wordCount($test_data['text']));
  }
}