protected function DrupalWebTestCase::drupalCreateNode

7.x drupal_web_test_case.php protected DrupalWebTestCase::drupalCreateNode($settings = array())

Creates a node based on default settings.


$settings: An associative array of settings to change from the defaults, keys are node properties, for example 'title' => 'Hello, world!'.

Return value

Created node object.

108 calls to DrupalWebTestCase::drupalCreateNode()
AccessDeniedTestCase::testAccessDenied in drupal/modules/system/system.test
BlogTestCase::doBasicTests in drupal/modules/blog/blog.test
Run basic tests on the indicated user.
BlogTestCase::testBlog in drupal/modules/blog/blog.test
Login users, create blog nodes, and test blog functionality through the admin and user interfaces.
BlogTestCase::testUnprivilegedUser in drupal/modules/blog/blog.test
Confirm that the "You are not allowed to post a new blog entry." message shows up if a user submitted blog entries, has been denied that permission, and goes to the blog page.
CascadingStylesheetsTestCase::testRenderInlineFullPage in drupal/modules/simpletest/tests/common.test
Tests rendering inline stylesheets through a full page request.

... See full list


drupal/modules/simpletest/drupal_web_test_case.php, line 916


Test case for typical Drupal tests.


protected function drupalCreateNode($settings = array()) {
  // Populate defaults array.
  $settings += array(
    'body' => array(LANGUAGE_NONE => array(array())),
    'title' => $this->randomName(8),
    'comment' => 2,
    'changed' => REQUEST_TIME,
    'moderate' => 0,
    'promote' => 0,
    'revision' => 1,
    'log' => '',
    'status' => 1,
    'sticky' => 0,
    'type' => 'page',
    'revisions' => NULL,
    'language' => LANGUAGE_NONE,

  // Use the original node's created time for existing nodes.
  if (isset($settings['created']) && !isset($settings['date'])) {
    $settings['date'] = format_date($settings['created'], 'custom', 'Y-m-d H:i:s O');

  // If the node's user uid is not specified manually, use the currently
  // logged in user if available, or else the user running the test.
  if (!isset($settings['uid'])) {
    if ($this->loggedInUser) {
      $settings['uid'] = $this->loggedInUser->uid;
    else {
      global $user;
      $settings['uid'] = $user->uid;

  // Merge body field value and format separately.
  $body = array(
    'value' => $this->randomName(32),
    'format' => filter_default_format(),
  $settings['body'][$settings['language']][0] += $body;

  $node = (object) $settings;

  // Small hack to link revisions to our test user.
  db_update('node_revision')->fields(array('uid' => $node->uid))->condition('vid', $node->vid)->execute();
  return $node;