function ViewExecutableTest::testInitMethods
Same name in other branches
- 8.9.x core/modules/views/tests/src/Kernel/ViewExecutableTest.php \Drupal\Tests\views\Kernel\ViewExecutableTest::testInitMethods()
- 10 core/modules/views/tests/src/Kernel/ViewExecutableTest.php \Drupal\Tests\views\Kernel\ViewExecutableTest::testInitMethods()
- 11.x core/modules/views/tests/src/Kernel/ViewExecutableTest.php \Drupal\Tests\views\Kernel\ViewExecutableTest::testInitMethods()
Tests the initDisplay() and initHandlers() methods.
File
-
core/
modules/ views/ tests/ src/ Kernel/ ViewExecutableTest.php, line 119
Class
- ViewExecutableTest
- Tests the ViewExecutable class.
Namespace
Drupal\Tests\views\KernelCode
public function testInitMethods() {
$view = Views::getView('test_destroy');
$view->initDisplay();
$this->assertInstanceOf(DefaultDisplay::class, $view->display_handler);
$this->assertInstanceOf(DefaultDisplay::class, $view->displayHandlers
->get('default'));
$view->destroy();
$view->initHandlers();
// Check for all handler types.
$handler_types = array_keys(ViewExecutable::getHandlerTypes());
foreach ($handler_types as $type) {
// The views_test integration doesn't have relationships.
if ($type == 'relationship') {
continue;
}
$this->assertGreaterThan(0, count($view->{$type}), new FormattableMarkup('Make sure a %type instance got instantiated.', [
'%type' => $type,
]));
}
// initHandlers() should create display handlers automatically as well.
$this->assertInstanceOf(DefaultDisplay::class, $view->display_handler);
$this->assertInstanceOf(DefaultDisplay::class, $view->displayHandlers
->get('default'));
$view_hash = spl_object_hash($view);
$display_hash = spl_object_hash($view->display_handler);
// Test the initStyle() method.
$view->initStyle();
$this->assertInstanceOf(DefaultStyle::class, $view->style_plugin);
// Test the plugin has been invited and view have references to the view and
// display handler.
$this->assertEquals($view_hash, spl_object_hash($view->style_plugin->view));
$this->assertEquals($display_hash, spl_object_hash($view->style_plugin->displayHandler));
// Test the initQuery method().
$view->initQuery();
$this->assertInstanceOf(Sql::class, $view->query);
$this->assertEquals($view_hash, spl_object_hash($view->query->view));
$this->assertEquals($display_hash, spl_object_hash($view->query->displayHandler));
$view->destroy();
// Test the plugin get methods.
$display_plugin = $view->getDisplay();
$this->assertInstanceOf(DefaultDisplay::class, $display_plugin);
$this->assertInstanceOf(DefaultDisplay::class, $view->display_handler);
$this->assertSame($display_plugin, $view->getDisplay(), 'The same display plugin instance was returned.');
$style_plugin = $view->getStyle();
$this->assertInstanceOf(DefaultStyle::class, $style_plugin);
$this->assertInstanceOf(DefaultStyle::class, $view->style_plugin);
$this->assertSame($style_plugin, $view->getStyle(), 'The same style plugin instance was returned.');
$pager_plugin = $view->getPager();
$this->assertInstanceOf(PagerPluginBase::class, $pager_plugin);
$this->assertInstanceOf(PagerPluginBase::class, $view->pager);
$this->assertSame($pager_plugin, $view->getPager(), 'The same pager plugin instance was returned.');
$query_plugin = $view->getQuery();
$this->assertInstanceOf(QueryPluginBase::class, $query_plugin);
$this->assertInstanceOf(QueryPluginBase::class, $view->query);
$this->assertSame($query_plugin, $view->getQuery(), 'The same query plugin instance was returned.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.