You are here

public function FilterLanguageTest::testFilter in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/language/tests/src/Kernel/Views/FilterLanguageTest.php \Drupal\Tests\language\Kernel\Views\FilterLanguageTest::testFilter()
  2. 10 core/modules/language/tests/src/Kernel/Views/FilterLanguageTest.php \Drupal\Tests\language\Kernel\Views\FilterLanguageTest::testFilter()

Tests the language filter.

File

core/modules/language/tests/src/Kernel/Views/FilterLanguageTest.php, line 25

Class

FilterLanguageTest
Tests the filter language handler.

Namespace

Drupal\Tests\language\Kernel\Views

Code

public function testFilter() {
  $view = Views::getView('test_view');
  foreach ([
    'en' => 'John',
    'xx-lolspeak' => 'George',
  ] as $langcode => $name) {
    $view
      ->setDisplay();
    $view->displayHandlers
      ->get('default')
      ->overrideOption('filters', [
      'langcode' => [
        'id' => 'langcode',
        'table' => 'views_test_data',
        'field' => 'langcode',
        'value' => [
          $langcode,
        ],
      ],
    ]);
    $this
      ->executeView($view);
    $expected = [
      [
        'name' => $name,
      ],
    ];
    $this
      ->assertIdenticalResultset($view, $expected, [
      'views_test_data_name' => 'name',
    ]);
    $expected = [
      '***LANGUAGE_site_default***',
      '***LANGUAGE_language_interface***',
      '***LANGUAGE_language_content***',
      'en',
      'xx-lolspeak',
      'und',
      'zxx',
    ];
    $this
      ->assertIdentical(array_keys($view->filter['langcode']
      ->getValueOptions()), $expected);
    $view
      ->destroy();
  }
}