function NodeTypeTestCase::testNodeTypeCreation

Tests creating a content type programmatically and via a form.

File

modules/node/node.test, line 1511

Class

NodeTypeTestCase
Tests related to node types.

Code

function testNodeTypeCreation() {
    // Create a content type programmaticaly.
    $type = $this->drupalCreateContentType();
    $type_exists = db_query('SELECT 1 FROM {node_type} WHERE type = :type', array(
        ':type' => $type->type,
    ))
        ->fetchField();
    $this->assertTrue($type_exists, 'The new content type has been created in the database.');
    // Login a test user.
    $web_user = $this->drupalCreateUser(array(
        'create ' . $type->name . ' content',
    ));
    $this->drupalLogin($web_user);
    $this->drupalGet('node/add/' . str_replace('_', '-', $type->name));
    $this->assertResponse(200, 'The new content type can be accessed at node/add.');
    // Create a content type via the user interface.
    $web_user = $this->drupalCreateUser(array(
        'bypass node access',
        'administer content types',
    ));
    $this->drupalLogin($web_user);
    $edit = array(
        'name' => 'foo',
        'title_label' => 'title for foo',
        'type' => 'foo',
    );
    $this->drupalPost('admin/structure/types/add', $edit, t('Save content type'));
    $type_exists = db_query('SELECT 1 FROM {node_type} WHERE type = :type', array(
        ':type' => 'foo',
    ))->fetchField();
    $this->assertTrue($type_exists, 'The new content type has been created in the database.');
}

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