Commit bf818b02 authored by webchick's avatar webchick

Revert "Issue #1793696 by dawehner, damiankloip: Fixed views_preprocess_node()...

Revert "Issue #1793696 by dawehner, damiankloip: Fixed views_preprocess_node() check for the wrong row_plugin()."

This broke testbot. Try again soon!

This reverts commit 509cb253.
parent cd73a652
<?php
/**
* @file
* Contains \Drupal\node\Tests\Views\RowPluginTest.
*/
namespace Drupal\node\Tests\Views;
/**
* Tests the node row plugin.
*
* @see \Drupal\node\Plugin\views\row\NodeRow
*/
class RowPluginTest extends NodeTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array('node', 'comment');
/**
* Views used by this test.
*
* @var array
*/
public static $testViews = array('test_node_row_plugin');
/**
* Contains all comments keyed by node used by the test.
*
* @var array
*/
protected $comments;
/**
* Contains all nodes used by this test.
*
* @var array
*/
protected $nodes;
public static function getInfo() {
return array(
'name' => 'Node: Row plugin',
'description' => 'Tests the node row plugin.',
'group' => 'Views module integration',
);
}
protected function setUp() {
parent::setUp();
$this->drupalCreateContentType(array('type' => 'article'));
// Create two nodes, with 5 comments on all of them.
for ($i = 0; $i < 2; $i++) {
$this->nodes[] = $this->drupalCreateNode(
array(
'type' => 'article',
'body' => array(
array(
'value' => $this->randomName(42),
'format' => filter_default_format(),
'summary' => $this->randomName(),
),
),
)
);
}
foreach ($this->nodes as $node) {
for ($i = 0; $i < 5; $i++) {
$this->comments[$node->id()][] = $this->drupalCreateComment(array('nid' => $node->id()));
}
}
}
/**
* Helper function to create a random comment.
*
* @param array $settings
* (optional) An associative array of settings for the comment, as used in
* entity_create().
*
* @return \Drupal\comment\Plugin\Core\Entity\Comment
* Returns the created and saved comment.
*/
public function drupalCreateComment(array $settings = array()) {
$node = node_load($settings['nid']);
$settings += array(
'subject' => $this->randomName(),
'node_type' => "comment_node_{$node->bundle()}",
'comment_body' => $this->randomName(40),
);
$comment = entity_create('comment', $settings);
$comment->save();
return $comment;
}
/**
* Tests the node row plugin.
*/
public function testRowPlugin() {
$view = views_get_view('test_node_row_plugin');
$view->initDisplay();
$view->setDisplay('page_1');
$view->initStyle();
$view->rowPlugin->options['view_mode'] = 'full';
// Test with view_mode full.
$output = $view->preview();
foreach ($this->nodes as $node) {
$body = $node->body;
$teaser = $body[LANGUAGE_NOT_SPECIFIED][0]['summary'];
$full = $body[LANGUAGE_NOT_SPECIFIED][0]['value'];
$this->assertFalse(strpos($output, $teaser) !== FALSE, 'Make sure the teaser appears in the output of the view.');
$this->assertTrue(strpos($output, $full) !== FALSE, 'Make sure the full text appears in the output of the view.');
}
// Test with teasers.
$view->rowPlugin->options['view_mode'] = 'teaser';
$output = $view->preview();
foreach ($this->nodes as $node) {
$body = $node->body;
$teaser = $body[LANGUAGE_NOT_SPECIFIED][0]['summary'];
$full = $body[LANGUAGE_NOT_SPECIFIED][0]['value'];
$this->assertTrue(strpos($output, $teaser) !== FALSE, 'Make sure the teaser appears in the output of the view.');
$this->assertFalse(strpos($output, $full) !== FALSE, 'Make sure the full text does not appears in the output of the view if teaser is set as viewmode.');
}
// Test with links disabled.
$view->rowPlugin->options['links'] = FALSE;
$output = $view->preview();
$this->drupalSetContent($output);
foreach ($this->nodes as $node) {
$this->assertFalse($this->xpath('//li[contains(@class, :class)]/a[contains(@href, :href)]', array(':class' => 'node-readmore', ':href' => "node/{$node->id()}")), 'Make sure no readmore link appears.');
}
// Test with links enabled.
$view->rowPlugin->options['links'] = TRUE;
$output = $view->preview();
$this->drupalSetContent($output);
foreach ($this->nodes as $node) {
$this->assertTrue($this->xpath('//li[contains(@class, :class)]/a[contains(@href, :href)]', array(':class' => 'node-readmore', ':href' => "node/{$node->id()}")), 'Make sure no readmore link appears.');
}
// Test with comments enabled.
$view->rowPlugin->options['comments'] = TRUE;
$output = $view->preview();
foreach ($this->nodes as $node) {
foreach ($this->comments[$node->id()] as $comment) {
$this->assertTrue(strpos($output, $comment->comment_body->value) !== FALSE, 'Make sure the comment appears in the output.');
}
}
// Test with comments disabled.
$view->rowPlugin->options['comments'] = FALSE;
$output = $view->preview();
foreach ($this->nodes as $node) {
foreach ($this->comments[$node->id()] as $comment) {
$this->assertFalse(strpos($output, $comment->comment_body->value) !== FALSE, 'Make sure the comment does not appears in the output when the comments option disabled.');
}
}
}
}
base_field: nid
base_table: node
core: 8
description: ''
status: '1'
display:
default:
display_options:
access:
type: perm
cache:
type: none
exposed_form:
type: basic
filters:
status:
expose:
operator: '0'
field: status
group: '1'
id: status
table: node
value: '1'
plugin_id: boolean
pager:
options:
items_per_page: '10'
type: full
query:
type: views_query
row:
options:
build_mode: teaser
comments: '0'
links: '1'
type: node
sorts: { }
style:
type: default
title: test_node_row_plugin
display_plugin: default
display_title: Master
id: default
position: { }
page_1:
display_options:
path: test-node-row-plugin
display_plugin: page
display_title: Page
id: page_1
position: { }
human_name: test_node_row_plugin
langcode: en
module: views
id: test_node_row_plugin
tag: default
......@@ -236,7 +236,6 @@ function views_plugin_list() {
* node portion of the theme registry.
*/
function views_preprocess_node(&$vars) {
module_load_include('inc', 'node', 'node.views');
// The 'view' attribute of the node is added in views_preprocess_node()
if (!empty($vars['node']->view) && $vars['node']->view->storage->id()) {
$vars['view'] = $vars['node']->view;
......@@ -253,7 +252,7 @@ function views_preprocess_node(&$vars) {
}
// Allow to alter comments and links based on the settings in the row plugin.
if (!empty($vars['view']->rowPlugin) && $vars['view']->rowPlugin->getPluginId() == 'node') {
if (!empty($vars['view']->style_plugin->row_plugin) && get_class($vars['view']->style_plugin->row_plugin) == 'views_plugin_row_node_view') {
node_row_node_view_preprocess_node($vars);
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment