hn-8.x-1.x-dev/tests/modules/hn_test/hn_test.install
tests/modules/hn_test/hn_test.install
<?php /** * @file * Provides an install function that creates a few test nodes. */ use Drupal\node\Entity\Node; use Drupal\user\Entity\Role; use Drupal\user\RoleInterface; /** * This creates default fields based on a node id for testing. * * @param int $nodeId * The nodeId to create default fields for. * * @return array * The default fields. */ function hn_test_node_base($nodeId) { return [ 'type' => 'hn_test_basic_page', 'title' => 'Node ' . $nodeId, 'body' => 'Node ' . $nodeId . ' body', 'field_teaser_body' => 'Node ' . $nodeId . ' teaser body', ]; } /** * Implements hook_install(). */ function hn_test_install() { // Give permissions to anonymous users. /** @var \Drupal\user\Entity\Role $anonymous */ $anonymous = Role::load(RoleInterface::ANONYMOUS_ID); $anonymous->grantPermission('access hn'); $anonymous->grantPermission('access content'); $anonymous->save(); // Create dummy content. $node1 = Node::create([ 'field_link' => 'https://www.google.com', ] + hn_test_node_base(1)); $node1->save(); $node2 = Node::create( [ 'field_link' => 'entity:node/1', 'field_reference' => $node1, ] + hn_test_node_base(2) ); $node2->save(); $node3 = Node::create( [ 'field_link' => 'entity:node/1', 'field_reference_teaser' => $node1, ] + hn_test_node_base(3) ); $node3->save(); $node4 = Node::create( [ 'field_reference' => $node2, ] + hn_test_node_base(4) ); $node4->save(); $node5 = Node::create([ 'field_reference' => $node1, 'field_reference_teaser' => $node1, ] + hn_test_node_base(5)); $node5->save(); }