Issue #1901290 by dawehner: Roll back sneaky bits of another patch that sneaked in.
parent
bd8f0f9b71
commit
92130d269d
|
@ -1,172 +0,0 @@
|
|||
<?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 Modules',
|
||||
);
|
||||
}
|
||||
|
||||
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(
|
||||
LANGUAGE_NOT_SPECIFIED => 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');
|
||||
$view->initStyle();
|
||||
$view->style_plugin->row_plugin->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->style_plugin->row_plugin->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->style_plugin->row_plugin->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->style_plugin->row_plugin->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->style_plugin->row_plugin->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->style_plugin->row_plugin->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.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
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:
|
||||
display_options:
|
||||
path: test-node-row-plugin
|
||||
display_plugin: page
|
||||
display_title: Page
|
||||
id: page
|
||||
position: { }
|
||||
human_name: test_node_row_plugin
|
||||
langcode: und
|
||||
module: views
|
||||
id: test_node_row_plugin
|
||||
tag: default
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
namespace Drupal\views\Tests;
|
||||
|
||||
use DOMDocument;
|
||||
use Drupal\simpletest\WebTestBase;
|
||||
|
||||
/**
|
||||
|
|
|
@ -234,7 +234,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;
|
||||
|
@ -251,7 +250,7 @@ function views_preprocess_node(&$vars) {
|
|||
}
|
||||
|
||||
// Allow to alter comments and links based on the settings in the row plugin.
|
||||
if (!empty($vars['view']->style_plugin->row_plugin) && $vars['view']->style_plugin->row_plugin->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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue