function ExposedFormLinkDisplayTest::setUp

Parameters

bool $import_test_views: Should the views specified on the test class be imported. If you need to setup some additional stuff, like fields, you need to call false and then call createTestViews for your own.

Overrides ViewsKernelTestBase::setUp

File

core/modules/views/tests/src/Kernel/Plugin/ExposedFormLinkDisplayTest.php, line 23

Class

ExposedFormLinkDisplayTest
Tests exposed form actions for block displays with custom link targets.

Namespace

Drupal\Tests\views\Kernel\Plugin

Code

protected function setUp($import_test_views = TRUE) : void {
  parent::setUp(FALSE);
  $view = View::create([
    'id' => 'test_exposed_block_link_display',
    'label' => 'Test exposed block link display',
    'module' => 'views',
    'base_table' => 'views_test_data',
    'base_field' => 'id',
  ]);
  $executable = $view->getExecutable();
  $executable->newDisplay('default', 'Default', 'default');
  $executable->newDisplay('page', 'Page', 'page_1');
  $executable->newDisplay('block', 'Block', 'block_1');
  $default_display = $executable->displayHandlers
    ->get('default');
  $default_display->setOption('fields', [
    'name' => [
      'id' => 'name',
      'table' => 'views_test_data',
      'field' => 'name',
      'plugin_id' => 'standard',
    ],
  ]);
  $default_display->setOption('filters', [
    'age' => [
      'id' => 'age',
      'table' => 'views_test_data',
      'field' => 'age',
      'plugin_id' => 'numeric',
      'exposed' => TRUE,
      'expose' => [
        'identifier' => 'age',
        'label' => 'Age',
        'operator_id' => 'age_op',
      ],
    ],
  ]);
  $page_display = $executable->displayHandlers
    ->get('page_1');
  $page_display->overrideOption('path', 'views-test-page');
  $block_display = $executable->displayHandlers
    ->get('block_1');
  $block_display->overrideOption('link_display', 'custom_url');
  $block_display->overrideOption('link_url', '/custom-link');
  $view->save();
}

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