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']));
}
}