function DisplayFeedTest::testDisabledFeed

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Functional/Plugin/DisplayFeedTest.php \Drupal\Tests\views\Functional\Plugin\DisplayFeedTest::testDisabledFeed()
  2. 8.9.x core/modules/views/tests/src/Functional/Plugin/DisplayFeedTest.php \Drupal\Tests\views\Functional\Plugin\DisplayFeedTest::testDisabledFeed()
  3. 11.x core/modules/views/tests/src/Functional/Plugin/DisplayFeedTest.php \Drupal\Tests\views\Functional\Plugin\DisplayFeedTest::testDisabledFeed()

Tests that nothing is output when the feed display is disabled.

File

core/modules/views/tests/src/Functional/Plugin/DisplayFeedTest.php, line 159

Class

DisplayFeedTest
Tests the feed display plugin.

Namespace

Drupal\Tests\views\Functional\Plugin

Code

public function testDisabledFeed() : void {
  $this->drupalCreateContentType([
    'type' => 'page',
  ]);
  $this->drupalCreateNode();
  // Ensure that the feed_1 display is attached to the page_1 display.
  $view = Views::getView('test_attached_disabled');
  $view->setDisplay('page_1');
  $attached_displays = $view->display_handler
    ->getAttachedDisplays();
  $this->assertContains('feed_1', $attached_displays, 'The feed display is attached to the page display.');
  // Check that the rss header is output on the page display.
  $this->drupalGet('/test-attached-disabled');
  $this->assertSession()
    ->elementAttributeContains('xpath', '//link[@rel="alternate"]', 'type', 'application/rss+xml');
  $this->assertSession()
    ->elementAttributeContains('xpath', '//link[@rel="alternate"]', 'href', 'test-attached-disabled.xml');
  // Disable the feed display.
  $view->displayHandlers
    ->get('feed_1')
    ->setOption('enabled', FALSE);
  $view->save();
  // Ensure there is no link rel present on the page.
  $this->drupalGet('/test-attached-disabled');
  $this->assertSession()
    ->elementNotExists('xpath', '//link[@rel="alternate"]');
  // Ensure the feed attachment returns 'Not found'.
  $this->drupalGet('/test-attached-disabled.xml');
  $this->assertSession()
    ->statusCodeEquals(404);
}

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