You are here

protected function DisplayFeedTest::checkFeedViewUi in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views_ui/tests/src/Functional/DisplayFeedTest.php \Drupal\Tests\views_ui\Functional\DisplayFeedTest::checkFeedViewUi()
  2. 10 core/modules/views_ui/tests/src/Functional/DisplayFeedTest.php \Drupal\Tests\views_ui\Functional\DisplayFeedTest::checkFeedViewUi()

Checks views UI for a specific feed view.

Parameters

string $view_name: The view name to check against.

1 call to DisplayFeedTest::checkFeedViewUi()
DisplayFeedTest::testFeedUI in core/modules/views_ui/tests/src/Functional/DisplayFeedTest.php
Tests feed display admin UI.

File

core/modules/views_ui/tests/src/Functional/DisplayFeedTest.php, line 48

Class

DisplayFeedTest
Tests the UI for feed display plugin.

Namespace

Drupal\Tests\views_ui\Functional

Code

protected function checkFeedViewUi($view_name) {
  $this
    ->drupalGet('admin/structure/views');

  // Verify that the page lists the $view_name view.
  // Regression test: ViewListBuilder::getDisplayPaths() did not properly
  // check whether a DisplayPluginCollection was returned in iterating over
  // all displays.
  $this
    ->assertSession()
    ->pageTextContains($view_name);

  // Check the attach TO interface.
  $this
    ->drupalGet('admin/structure/views/nojs/display/' . $view_name . '/feed_1/displays');

  // Display labels should be escaped.
  $this
    ->assertSession()
    ->assertEscaped('<em>Page</em>');

  // Load all the options of the checkbox.
  $result = $this
    ->xpath('//div[@id="edit-displays"]/div');
  $options = [];
  foreach ($result as $item) {
    $input_node = $item
      ->find('css', 'input');
    if ($input_node
      ->hasAttribute('value')) {
      $options[] = $input_node
        ->getAttribute('value');
    }
  }
  $this
    ->assertEquals([
    'default',
    'page',
  ], $options, 'Make sure all displays appears as expected.');

  // Post and save this and check the output.
  $this
    ->drupalGet('admin/structure/views/nojs/display/' . $view_name . '/feed_1/displays');
  $this
    ->submitForm([
    'displays[page]' => 'page',
  ], 'Apply');

  // Options summary should be escaped.
  $this
    ->assertSession()
    ->assertEscaped('<em>Page</em>');
  $this
    ->assertSession()
    ->responseNotContains('<em>Page</em>');
  $this
    ->drupalGet('admin/structure/views/view/' . $view_name . '/edit/feed_1');
  $this
    ->assertSession()
    ->elementTextContains('xpath', '//*[@id="views-feed-1-displays"]', 'Page');

  // Add the default display, so there should now be multiple displays.
  $this
    ->drupalGet('admin/structure/views/nojs/display/' . $view_name . '/feed_1/displays');
  $this
    ->submitForm([
    'displays[default]' => 'default',
  ], 'Apply');
  $this
    ->drupalGet('admin/structure/views/view/' . $view_name . '/edit/feed_1');
  $this
    ->assertSession()
    ->elementTextContains('xpath', '//*[@id="views-feed-1-displays"]', 'Multiple displays');
}