You are here

public function SearchTextProcessorTest::testSearchTextProcessorPunctuation in Drupal 10

Tests that text analysis does the right thing with punctuation.

File

core/modules/search/tests/src/Kernel/SearchTextProcessorTest.php, line 78

Class

SearchTextProcessorTest
Test search text preprocessing functionality.

Namespace

Drupal\Tests\search\Kernel

Code

public function testSearchTextProcessorPunctuation() {
  $cases = [
    [
      '20.03/94-28,876',
      '20039428876',
      'Punctuation removed from numbers',
    ],
    [
      'great...drupal--module',
      'great drupal module',
      'Multiple dot and dashes are word boundaries',
    ],
    [
      'very_great-drupal.module',
      'verygreatdrupalmodule',
      'Single dot, dash, underscore are removed',
    ],
    [
      'regular,punctuation;word',
      'regular punctuation word',
      'Punctuation is a word boundary',
    ],
  ];
  $text_processor = \Drupal::service('search.text_processor');
  assert($text_processor instanceof SearchTextProcessorInterface);
  foreach ($cases as $case) {
    $out = trim($text_processor
      ->analyze($case[0]));
    $this
      ->assertEquals($case[1], $out, $case[2]);
  }
}