function NodeTypeTestCase::testNodeTypeDeletion in Drupal 7
Tests deleting a content type that still has content.
File
- modules/
node/ node.test, line 1621 - Tests for node.module.
Class
- NodeTypeTestCase
- Tests related to node types.
Code
function testNodeTypeDeletion() {
// Create a content type programmatically.
$type = $this
->drupalCreateContentType();
// Log in a test user.
$web_user = $this
->drupalCreateUser(array(
'bypass node access',
'administer content types',
));
$this
->drupalLogin($web_user);
// Add a new node of this type.
$node = $this
->drupalCreateNode(array(
'type' => $type->type,
));
// Attempt to delete the content type, which should not be allowed.
$this
->drupalGet('admin/structure/types/manage/' . $type->name . '/delete');
$this
->assertRaw(t('%type is used by 1 piece of content on your site. You cannot remove this content type until you have removed all of the %type content.', array(
'%type' => $type->name,
)), 'The content type will not be deleted until all nodes of that type are removed.');
$this
->assertNoText(t('This action cannot be undone.'), 'The node type deletion confirmation form is not available.');
// Delete the node.
node_delete($node->nid);
// Attempt to delete the content type, which should now be allowed.
$this
->drupalGet('admin/structure/types/manage/' . $type->name . '/delete');
$this
->assertRaw(t('Are you sure you want to delete the content type %type?', array(
'%type' => $type->name,
)), 'The content type is available for deletion.');
$this
->assertText(t('This action cannot be undone.'), 'The node type deletion confirmation form is available.');
}