function 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 => $langcode,
        ],
      ],
    ]);
    $this->executeView($view);
    $expected = [
      [
        'name' => $name,
      ],
    ];
    $this->assertIdenticalResultset($view, $expected, [
      'views_test_data_name' => 'name',
    ]);
    $expected = [
      '***LANGUAGE_site_default***',
      '***LANGUAGE_language_interface***',
      'en',
      'xx-lolspeak',
      'und',
      'zxx',
    ];
    $this->assertSame($expected, array_keys($view->filter['langcode']
      ->getValueOptions()));
    $view->destroy();
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.