diff --git a/modules/node/node.install b/modules/node/node.install index 14290e3ad11..c5378dc8529 100644 --- a/modules/node/node.install +++ b/modules/node/node.install @@ -469,26 +469,7 @@ function node_update_dependencies() { * @ingroup update-api-6.x-to-7.x */ function _update_7000_node_get_types() { - $node_types = db_query('SELECT * FROM {node_type}')->fetchAllAssoc('type', PDO::FETCH_OBJ); - - // Create default settings for orphan nodes. - $all_types = db_query('SELECT DISTINCT type FROM {node}')->fetchCol(); - $extra_types = array_diff($all_types, array_keys($node_types)); - - foreach ($extra_types as $type) { - $type_object = new stdClass; - $type_object->type = $type; - - // In Drupal 6, whether you have a body field or not is a flag in the node - // type table. If it's enabled, nodes may or may not have an empty string - // for the bodies. As we can't detect what this setting should be in - // Drupal 7 without access to the Drupal 6 node type settings, we assume - // the default, which is to enable the body field. - $type_object->has_body = 1; - $type_object->body_label = 'Body'; - $node_types[$type_object->type] = $type_object; - } - return $node_types; + return db_query('SELECT * FROM {node_type}')->fetchAllAssoc('type', PDO::FETCH_OBJ); } /** @@ -619,6 +600,19 @@ function node_update_7006(&$sandbox) { // Get node type info, specifically the body field settings. $node_types = _update_7000_node_get_types(); + // Create default settings for orphan nodes. + $extra_types = db_query('SELECT DISTINCT type FROM {node} WHERE type NOT IN (:types)', array(':types' => array_keys($node_types)))->fetchCol(); + foreach ($extra_types as $type) { + $type_object = new stdClass; + $type_object->type = $type; + // Always create a body. Querying node_revisions for a non-empty body + // would skip creating body fields for types that have a body but + // the nodes of that type so far had empty bodies. + $type_object->has_body = 1; + $type_object->body_label = 'Body'; + $node_types[$type_object->type] = $type_object; + } + // Add body field instances for existing node types. foreach ($node_types as $node_type) { if ($node_type->has_body) { diff --git a/modules/simpletest/tests/upgrade/upgrade.node.test b/modules/simpletest/tests/upgrade/upgrade.node.test index 774ab58e15e..163dbef5e9d 100644 --- a/modules/simpletest/tests/upgrade/upgrade.node.test +++ b/modules/simpletest/tests/upgrade/upgrade.node.test @@ -45,70 +45,6 @@ class NodeBodyUpgradePathTestCase extends UpgradePathTestCase { } } -/** - * Upgrade test for node disabled node types. - * - * Load a filled installation of Drupal 6 and run the upgrade process on it. - */ -class DisabledNodeTypeTestCase extends UpgradePathTestCase { - public static function getInfo() { - return array( - 'name' => 'Disabled node type upgrade path', - 'description' => 'Disabled node type upgrade path tests.', - 'group' => 'Upgrade path', - ); - } - - public function setUp() { - // Path to the database dump. - $this->databaseDumpFiles = array( - drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.filled.database.php', - drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.node_type_broken.database.php', - ); - parent::setUp(); - } - - /** - * Test a successful upgrade. - */ - public function testDisabledNodeTypeUpgrade() { - $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.')); - $this->assertTrue(field_info_instance('comment', 'comment_body', 'comment_node_broken'), 'Comment body field instance was created for comments attached to the disabled broken node type'); - } -} - -/** - * Upgrade test for node disabled node types. - * - * Load a filled installation of Drupal 6 and run the upgrade process on it. - */ -class DisabledNodeTypeTestCase extends UpgradePathTestCase { - public static function getInfo() { - return array( - 'name' => 'Disabled node type upgrade path', - 'description' => 'Disabled node type upgrade path tests.', - 'group' => 'Upgrade path', - ); - } - - public function setUp() { - // Path to the database dump. - $this->databaseDumpFiles = array( - drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.filled.database.php', - drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.node_type_broken.database.php', - ); - parent::setUp(); - } - - /** - * Test a successful upgrade. - */ - public function testDisabledNodeTypeUpgrade() { - $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.')); - $this->assertTrue(field_info_instance('comment', 'comment_body', 'comment_node_broken'), 'Comment body field instance was created for comments attached to the disabled broken node type'); - } -} - /** * Upgrade test for node type poll. *