diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php index e0a3495..bdf4916 100644 --- a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php +++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php @@ -50,45 +50,46 @@ protected function setUp() { * Tests the general renderering of styles. */ public function testStyle() { + // This run use the test row plugin and render with it. $view = views_get_view('test_view'); $view->setDisplay(); $style = $view->display_handler->getOption('style'); $style['type'] = 'test_style'; $view->display_handler->setOption('style', $style); + $row = $view->display_handler->getOption('row'); + $row['type'] = 'test_row'; + $view->display_handler->setOption('row', $row); $view->initDisplay(); $view->initStyle(); - $this->assertTrue($view->style_plugin instanceof StyleTestPlugin, 'Make sure the right style plugin class is loaded.'); + // Reinitialize the style as it supports row plugins now. + $view->style_plugin->init($view, $view->display_handler); + $this->assertTrue($view->rowPlugin instanceof RowTest, 'Make sure the right row plugin class is loaded.'); $random_text = $this->randomName(); - // Set some custom text to the output and make sure that this value is - // rendered. - $view->style_plugin->setOutput($random_text); + $view->rowPlugin->setOutput($random_text); + $output = $view->preview(); $output = drupal_render($output); - $this->assertTrue(strpos($output, $random_text) !== FALSE, 'Take sure that the rendering of the style plugin appears in the output of the view.'); + $this->assertTrue(strpos($output, $random_text) !== FALSE, 'Take sure that the rendering of the row plugin appears in the output of the view.'); - // This run use the test row plugin and render with it. + // Test without row plugin support. $view = views_get_view('test_view'); $view->setDisplay(); $style = $view->display_handler->getOption('style'); $style['type'] = 'test_style'; $view->display_handler->setOption('style', $style); - $row = $view->display_handler->getOption('row'); - $row['type'] = 'test_row'; - $view->display_handler->setOption('row', $row); $view->initDisplay(); $view->initStyle(); - $view->style_plugin->setUsesRowPlugin(TRUE); - // Reinitialize the style as it supports row plugins now. - $view->style_plugin->init($view, $view->display_handler); - $this->assertTrue($view->rowPlugin instanceof RowTest, 'Make sure the right row plugin class is loaded.'); + $view->style_plugin->setUsesRowPlugin(FALSE); + $this->assertTrue($view->style_plugin instanceof StyleTestPlugin, 'Make sure the right style plugin class is loaded.'); $random_text = $this->randomName(); - $view->rowPlugin->setOutput($random_text); - + // Set some custom text to the output and make sure that this value is + // rendered. + $view->style_plugin->setOutput($random_text); $output = $view->preview(); $output = drupal_render($output); - $this->assertTrue(strpos($output, $random_text) !== FALSE, 'Take sure that the rendering of the row plugin appears in the output of the view.'); + $this->assertTrue(strpos($output, $random_text) !== FALSE, 'Take sure that the rendering of the style plugin appears in the output of the view.'); } function testGrouping() { diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php index f7d2c7d..3df17c7 100644 --- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php +++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php @@ -34,6 +34,13 @@ class StyleTest extends StylePluginBase { public $output; /** + * Does the style plugin allows to use style plugins. + * + * @var bool + */ + protected $usesRowPlugin = TRUE; + + /** * Overrides Drupal\views\Plugin\views\style\StylePluginBase::defineOptions(). */ protected function defineOptions() { @@ -56,10 +63,6 @@ public function buildOptionsForm(&$form, &$form_state) { ); } - function usesRowPlugin() { - return parent::usesRowPlugin(); - } - /** * Sets the usesRowPlugin property. * diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php index 5666547..4a39c82 100644 --- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php +++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php @@ -64,6 +64,13 @@ public function testStyleUI() { $style = $view->display_handler->getOption('style'); $this->assertEqual($style['type'], 'test_style', 'Make sure that the test_style got saved as used style plugin.'); $this->assertEqual($style['options']['test_option'], $random_name, 'Make sure that the custom settings field got saved as expected.'); + + // Test that fields are working correctly in the UI for style plugins when + // a field row plguin is selected. + $this->drupalPost("admin/structure/views/view/$view_name/edit", array(), 'Add Page'); + $this->drupalPost("admin/structure/views/nojs/display/$view_name/page_1/row", array('row' => 'fields'), t('Apply')); + // If fields are being used this text will not be shown. + $this->assertNoText(t('The selected style or row format does not utilize fields.')); } }