function ForumTestCase::createForumTopic

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 modules/forum/forum.test
Runs basic tests on the indicated user.
ForumTestCase::generateForumTopics in modules/forum/forum.test
Generates forum topics to test the display of an active forum block.
ForumTestCase::testForum in modules/forum/forum.test
Tests forum functionality through the admin and user interfaces.

File

modules/forum/forum.test, line 492

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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.