diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php index 040ff47..5d3b60e 100644 --- a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php +++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php @@ -554,49 +554,49 @@ protected function defineOptions() { 'type' => array('default' => 'none'), 'options' => array('default' => array()), ), - 'merge_defaults' => 'mergePlugin', + 'merge_defaults' => array($this, 'mergePlugin'), ), 'cache' => array( 'contains' => array( 'type' => array('default' => 'none'), 'options' => array('default' => array()), ), - 'merge_defaults' => 'mergePlugin', + 'merge_defaults' => array($this, 'mergePlugin'), ), 'query' => array( 'contains' => array( 'type' => array('default' => 'views_query'), 'options' => array('default' => array()), ), - 'merge_defaults' => 'mergePlugin', + 'merge_defaults' => array($this, 'mergePlugin'), ), 'exposed_form' => array( 'contains' => array( 'type' => array('default' => 'basic'), 'options' => array('default' => array()), ), - 'merge_defaults' => 'mergePlugin', + 'merge_defaults' => array($this, 'mergePlugin'), ), 'pager' => array( 'contains' => array( 'type' => array('default' => 'mini'), 'options' => array('default' => array()), ), - 'merge_defaults' => 'mergePlugin', + 'merge_defaults' => array($this, 'mergePlugin'), ), 'style' => array( 'contains' => array( 'type' => array('default' => 'default'), 'options' => array('default' => array()), ), - 'merge_defaults' => 'mergePlugin', + 'merge_defaults' => array($this, 'mergePlugin'), ), 'row' => array( 'contains' => array( 'type' => array('default' => 'fields'), 'options' => array('default' => array()), ), - 'merge_defaults' => 'mergePlugin', + 'merge_defaults' => array($this, 'mergePlugin'), ), 'exposed_block' => array( @@ -605,34 +605,34 @@ protected function defineOptions() { 'header' => array( 'default' => array(), - 'merge_defaults' => 'mergeHandler', + 'merge_defaults' => array($this, 'mergeHandler'), ), 'footer' => array( 'default' => array(), - 'merge_defaults' => 'mergeHandler', + 'merge_defaults' => array($this, 'mergeHandler'), ), 'empty' => array( 'default' => array(), - 'merge_defaults' => 'mergeHandler', + 'merge_defaults' => array($this, 'mergeHandler'), ), // We want these to export last. // These are the 5 handler types. 'relationships' => array( 'default' => array(), - 'merge_defaults' => 'mergeHandler', + 'merge_defaults' => array($this, 'mergeHandler'), ), 'fields' => array( 'default' => array(), - 'merge_defaults' => 'mergeHandler', + 'merge_defaults' => array($this, 'mergeHandler'), ), 'sorts' => array( 'default' => array(), - 'merge_defaults' => 'mergeHandler', + 'merge_defaults' => array($this, 'mergeHandler'), ), 'arguments' => array( 'default' => array(), - 'merge_defaults' => 'mergeHandler', + 'merge_defaults' => array($this, 'mergeHandler'), ), 'filter_groups' => array( 'contains' => array( @@ -2753,7 +2753,7 @@ public function mergeDefaults() { // Find all defined options, that have specified a merge_defaults callback. foreach ($defined_options as $type => $definition) { - if (!isset($definition['merge_defaults']) || !method_exists($this, $definition['merge_defaults'])) { + if (!isset($definition['merge_defaults']) || !is_callable($definition['merge_defaults'])) { continue; } // Switch the type to singular, if it's a plural handler. @@ -2761,7 +2761,7 @@ public function mergeDefaults() { $type = $type_map[$type]; } - $this->{$definition['merge_defaults']}($type); + call_user_func($definition['merge_defaults'], $type); } } diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayUnitTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayUnitTest.php index 189ae5a..2d033b9 100644 --- a/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayUnitTest.php +++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayUnitTest.php @@ -62,7 +62,7 @@ public static function getInfo() { } /** - * Test the default display options. + * Tests the default display options. */ public function testDefaultOptions() { // Save the view. diff --git a/core/modules/views/lib/Drupal/views/Tests/Wizard/BasicTest.php b/core/modules/views/lib/Drupal/views/Tests/Wizard/BasicTest.php index 079b4a0..db85bb6 100644 --- a/core/modules/views/lib/Drupal/views/Tests/Wizard/BasicTest.php +++ b/core/modules/views/lib/Drupal/views/Tests/Wizard/BasicTest.php @@ -151,6 +151,11 @@ protected function testWizardForm() { $this->assertTrue(count($result), 'Ensure that the machine name is applied to the name field.'); } + /** + * Tests default plugin values are populated from the wizard form. + * + * @see \Drupal\views\Plugin\views\display\DisplayPluginBase::mergeDefaults(). + */ public function testWizardDefaultValues() { $random_id = strtolower($this->randomName(16)); // Create a basic view. @@ -163,7 +168,7 @@ public function testWizardDefaultValues() { // Make sure the plugin types that should not have empty options don't have. // Test against all values is unit tested. - // @see Drupal\views\Tests\Plugin\DisplayUnitTest + // @see \Drupal\views\Tests\Plugin\DisplayUnitTest $view = views_get_view($random_id); $displays = $view->storage->get('display'); foreach (array('query', 'exposed_form', 'pager', 'style', 'row') as $type) {