You are here

function DisplayTest::testDisplayPlugin in Views (for Drupal 7) 8.3

Tests the display test plugin.

See also

Drupal\views_test_data\Plugin\views\display\DisplayTest

File

lib/Drupal/views/Tests/Plugin/DisplayTest.php, line 51
Definition of Drupal\views\Tests\Plugin\DisplayTest.

Class

DisplayTest
Tests the basic display plugin.

Namespace

Drupal\views\Tests\Plugin

Code

function testDisplayPlugin() {
  $view = views_get_view('frontpage');

  // Add a new 'display_test' display and test it's there.
  $view->storage
    ->addDisplay('display_test');
  $this
    ->assertTrue(isset($view->storage->display['display_test_1']), 'Added display has been assigned to "display_test_1"');

  // Check the the display options are like expected.
  $options = array(
    'display_options' => array(),
    'display_plugin' => 'display_test',
    'id' => 'display_test_1',
    'display_title' => 'Display test',
    'position' => NULL,
  );
  $this
    ->assertEqual($view->storage->display['display_test_1'], $options);
  $view
    ->setDisplay('display_test_1');
  $this
    ->assertTrue($view->display_handler instanceof DisplayTestPlugin, 'The correct display handler instance is on the view object.');

  // Check the test option.
  $this
    ->assertIdentical($view->display_handler
    ->getOption('test_option'), '');
  $output = $view
    ->preview();
  $this
    ->assertTrue(strpos($output, '<h1></h1>') !== FALSE, 'An empty value for test_option found in output.');

  // Change this option and check the title of out output.
  $view->display_handler
    ->overrideOption('test_option', 'Test option title');
  $view
    ->save();
  $output = $view
    ->preview();

  // Test we have our custom <h1> tag in the output of the view.
  $this
    ->assertTrue(strpos($output, '<h1>Test option title</h1>') !== FALSE, 'The test_option value found in display output title.');

  // Test that the display category/summary is in the UI.
  $this
    ->drupalGet('admin/structure/views/view/frontpage/edit/display_test_1');
  $this
    ->assertText('Display test settings');
  $this
    ->clickLink('Test option title');
  $this->randomString = $this
    ->randomString();
  $this
    ->drupalPost(NULL, array(
    'test_option' => $this->randomString,
  ), t('Apply'));

  // Check the new value has been saved by checking the UI summary text.
  $this
    ->drupalGet('admin/structure/views/view/frontpage/edit/display_test_1');
  $this
    ->assertRaw($this->randomString);

  // Test the enable/disable status of a display.
  $view->display_handler
    ->setOption('enabled', FALSE);
  $this
    ->assertFalse($view->display_handler
    ->isEnabled(), 'Make sure that isEnabled returns FALSE on a disabled display.');
  $view->display_handler
    ->setOption('enabled', TRUE);
  $this
    ->assertTrue($view->display_handler
    ->isEnabled(), 'Make sure that isEnabled returns TRUE on a disabled display.');
}