function ForumTestCase::createForumTopic

7.x forum.test ForumTestCase::createForumTopic($forum, $container = FALSE)

Creates forum topic.

Parameters

array $forum: A forum array.

boolean $container: TRUE if $forum is a container; FALSE otherwise.

Return value

object The created topic node.

3 calls to ForumTestCase::createForumTopic()
ForumTestCase::doBasicTests in drupal-7.x/modules/forum/forum.test
Runs basic tests on the indicated user.
ForumTestCase::generateForumTopics in drupal-7.x/modules/forum/forum.test
Generates forum topics to test the display of an active forum block.
ForumTestCase::testForum in drupal-7.x/modules/forum/forum.test
Tests forum functionality through the admin and user interfaces.

File

drupal-7.x/modules/forum/forum.test, line 447
Tests for forum.module.

Class

ForumTestCase
Provides automated tests for the Forum module.

Code

function createForumTopic($forum, $container = FALSE) {
  // Generate a random subject/body.
  $title = $this->randomName(20);
  $body = $this->randomName(200);

  $langcode = LANGUAGE_NONE;
  $edit = array(
    "title" => $title,
    "body[$langcode][0][value]" => $body,
  );
  $tid = $forum['tid'];

  // Create the forum topic, preselecting the forum ID via a URL parameter.
  $this->drupalPost('node/add/forum/' . $tid, $edit, t('Save'));

  $type = t('Forum topic');
  if ($container) {
    $this->assertNoRaw(t('@type %title has been created.', array('@type' => $type, '%title' => $title)), 'Forum topic was not created');
    $this->assertRaw(t('The item %title is a forum container, not a forum.', array('%title' => $forum['name'])), 'Error message was shown');
    return;
  }
  else {
    $this->assertRaw(t('@type %title has been created.', array('@type' => $type, '%title' => $title)), 'Forum topic was created');
    $this->assertNoRaw(t('The item %title is a forum container, not a forum.', array('%title' => $forum['name'])), 'No error message was shown');
  }

  // Retrieve node object, ensure that the topic was created and in the proper forum.
  $node = $this->drupalGetNodeByTitle($title);
  $this->assertTrue($node != NULL, format_string('Node @title was loaded', array('@title' => $title)));
  $this->assertEqual($node->taxonomy_forums[LANGUAGE_NONE][0]['tid'], $tid, 'Saved forum topic was in the expected forum');

  // View forum topic.
  $this->drupalGet('node/' . $node->nid);
  $this->assertRaw($title, 'Subject was found');
  $this->assertRaw($body, 'Body was found');

  return $node;
}