Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 16 |
NodeCreationTrait | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
12 | |
0.00% |
0 / 16 |
getNodeByTitle | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 8 |
|||
createNode | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 8 |
<?php | |
/** | |
* @file | |
* Contains Drupal\simpletest\NodeCreationTrait | |
*/ | |
namespace Drupal\simpletest; | |
use Drupal\node\Entity\Node; | |
/** | |
* Provides methods to create node based on default settings. | |
* | |
* This trait is meant to be used only by test classes. | |
*/ | |
trait NodeCreationTrait { | |
/** | |
* Get a node from the database based on its title. | |
* | |
* @param string|\Drupal\Component\Render\MarkupInterface $title | |
* A node title, usually generated by $this->randomMachineName(). | |
* @param $reset | |
* (optional) Whether to reset the entity cache. | |
* | |
* @return \Drupal\node\NodeInterface | |
* A node entity matching $title. | |
*/ | |
function getNodeByTitle($title, $reset = FALSE) { | |
if ($reset) { | |
\Drupal::entityTypeManager()->getStorage('node')->resetCache(); | |
} | |
// Cast MarkupInterface objects to string. | |
$title = (string) $title; | |
$nodes = \Drupal::entityTypeManager() | |
->getStorage('node') | |
->loadByProperties(['title' => $title]); | |
// Load the first node returned from the database. | |
$returned_node = reset($nodes); | |
return $returned_node; | |
} | |
/** | |
* Creates a node based on default settings. | |
* | |
* @param array $settings | |
* (optional) An associative array of settings for the node, as used in | |
* entity_create(). Override the defaults by specifying the key and value | |
* in the array, for example: | |
* @code | |
* $this->drupalCreateNode(array( | |
* 'title' => t('Hello, world!'), | |
* 'type' => 'article', | |
* )); | |
* @endcode | |
* The following defaults are provided: | |
* - body: Random string using the default filter format: | |
* @code | |
* $settings['body'][0] = array( | |
* 'value' => $this->randomMachineName(32), | |
* 'format' => filter_default_format(), | |
* ); | |
* @endcode | |
* - title: Random string. | |
* - type: 'page'. | |
* - uid: The currently logged in user, or anonymous. | |
* | |
* @return \Drupal\node\NodeInterface | |
* The created node entity. | |
*/ | |
protected function createNode(array $settings = array()) { | |
// Populate defaults array. | |
$settings += array( | |
'body' => array(array( | |
'value' => $this->randomMachineName(32), | |
'format' => filter_default_format(), | |
)), | |
'title' => $this->randomMachineName(8), | |
'type' => 'page', | |
'uid' => \Drupal::currentUser()->id(), | |
); | |
$node = Node::create($settings); | |
$node->save(); | |
return $node; | |
} | |
} |