diff options
Diffstat (limited to 'modules/simpletest')
-rw-r--r-- | modules/simpletest/simpletest.info | 1 | ||||
-rw-r--r-- | modules/simpletest/tests/upgrade/drupal-6.upload.database.php | 358 | ||||
-rw-r--r-- | modules/simpletest/tests/upgrade/upgrade.upload.test | 66 |
3 files changed, 425 insertions, 0 deletions
diff --git a/modules/simpletest/simpletest.info b/modules/simpletest/simpletest.info index 139e49cd0..c7e113ac9 100644 --- a/modules/simpletest/simpletest.info +++ b/modules/simpletest/simpletest.info @@ -42,3 +42,4 @@ files[] = tests/upgrade/upgrade.test files[] = tests/upgrade/upgrade.comment.test files[] = tests/upgrade/upgrade.node.test files[] = tests/upgrade/upgrade.taxonomy.test +files[] = tests/upgrade/upgrade.upload.test diff --git a/modules/simpletest/tests/upgrade/drupal-6.upload.database.php b/modules/simpletest/tests/upgrade/drupal-6.upload.database.php new file mode 100644 index 000000000..048aee0c4 --- /dev/null +++ b/modules/simpletest/tests/upgrade/drupal-6.upload.database.php @@ -0,0 +1,358 @@ +<?php +// $Id$ + +db_insert('files')->fields(array( + 'fid', + 'uid', + 'filename', + 'filepath', + 'filemime', + 'filesize', + 'status', + 'timestamp', +)) +->values(array( + 'fid' => '1', + 'uid' => '1', + 'filename' => 'powered-blue-80x15.png', + 'filepath' => 'sites/default/files/powered-blue-80x15.png', + 'filemime' => 'image/png', + 'filesize' => '1011', + 'status' => '1', + 'timestamp' => '1285700240', +)) +->values(array( + 'fid' => '2', + 'uid' => '1', + 'filename' => 'powered-blue-80x15.png', + 'filepath' => 'sites/default/files/powered-blue-80x15_0.png', + 'filemime' => 'image/png', + 'filesize' => '1011', + 'status' => '1', + 'timestamp' => '1285700317', +)) +->values(array( + 'fid' => '3', + 'uid' => '1', + 'filename' => 'powered-blue-88x31.png', + 'filepath' => 'sites/default/files/powered-blue-88x31.png', + 'filemime' => 'image/png', + 'filesize' => '2113', + 'status' => '1', + 'timestamp' => '1285700343', +)) +->values(array( + 'fid' => '4', + 'uid' => '1', + 'filename' => 'powered-blue-135x42.png', + 'filepath' => 'sites/default/files/powered-blue-135x42.png', + 'filemime' => 'image/png', + 'filesize' => '3027', + 'status' => '1', + 'timestamp' => '1285700366', +)) +->values(array( + 'fid' => '5', + 'uid' => '1', + 'filename' => 'powered-black-80x15.png', + 'filepath' => 'sites/default/files/powered-black-80x15.png', + 'filemime' => 'image/png', + 'filesize' => '1467', + 'status' => '1', + 'timestamp' => '1285700529', +)) +->values(array( + 'fid' => '6', + 'uid' => '1', + 'filename' => 'powered-black-135x42.png', + 'filepath' => 'sites/default/files/powered-black-135x42.png', + 'filemime' => 'image/png', + 'filesize' => '2817', + 'status' => '1', + 'timestamp' => '1285700552', +)) +->values(array( + 'fid' => '7', + 'uid' => '1', + 'filename' => 'forum-hot-new.png', + 'filepath' => 'sites/default/files/forum-hot-new.png', + 'filemime' => 'image/png', + 'filesize' => '237', + 'status' => '1', + 'timestamp' => '1285708937', +)) +->values(array( + 'fid' => '8', + 'uid' => '1', + 'filename' => 'forum-hot.png', + 'filepath' => 'sites/default/files/forum-hot.png', + 'filemime' => 'image/png', + 'filesize' => '229', + 'status' => '1', + 'timestamp' => '1285708944', +)) +->values(array( + 'fid' => '9', + 'uid' => '1', + 'filename' => 'forum-new.png', + 'filepath' => 'sites/default/files/forum-new.png', + 'filemime' => 'image/png', + 'filesize' => '175', + 'status' => '1', + 'timestamp' => '1285708950', +)) +->values(array( + 'fid' => '10', + 'uid' => '1', + 'filename' => 'forum-sticky.png', + 'filepath' => 'sites/default/files/forum-sticky.png', + 'filemime' => 'image/png', + 'filesize' => '329', + 'status' => '1', + 'timestamp' => '1285708957', +)) +->execute(); + +db_insert('node')->fields(array( + 'nid', + 'vid', + 'type', + 'language', + 'title', + 'uid', + 'status', + 'created', + 'changed', + 'comment', + 'promote', + 'moderate', + 'sticky', + 'tnid', + 'translate', +)) +->values(array( + 'nid' => '38', + 'vid' => '51', + 'type' => 'page', + 'language' => '', + 'title' => 'node title 38 revision 51', + 'uid' => '1', + 'status' => '1', + 'created' => '1285700317', + 'changed' => '1285700600', + 'comment' => '0', + 'promote' => '0', + 'moderate' => '0', + 'sticky' => '0', + 'tnid' => '0', + 'translate' => '0', +)) +->values(array( + 'nid' => '39', + 'vid' => '52', + 'type' => 'page', + 'language' => '', + 'title' => 'node title 39 revision 53', + 'uid' => '1', + 'status' => '1', + 'created' => '1285709012', + 'changed' => '1285709012', + 'comment' => '0', + 'promote' => '0', + 'moderate' => '0', + 'sticky' => '0', + 'tnid' => '0', + 'translate' => '0', +)) + ->execute(); + +db_insert('node_revisions')->fields(array( + 'nid', + 'vid', + 'uid', + 'title', + 'body', + 'teaser', + 'log', + 'timestamp', + 'format', +)) +->values(array( + 'nid' => '38', + 'vid' => '50', + 'uid' => '1', + 'title' => 'node title 38 revision 50', + 'body' => "Attachments:\r\npowered-blue-80x15.png\r\npowered-blue-88x31.png\r\npowered-blue-135x42.png", + 'teaser' => "Attachments:\r\npowered-blue-80x15.png\r\npowered-blue-88x31.png\r\npowered-blue-135x42.png", + 'log' => '', + 'timestamp' => '1285700487', + 'format' => '1', +)) +->values(array( + 'nid' => '38', + 'vid' => '51', + 'uid' => '1', + 'title' => 'node title 38 revision 51', + 'body' => "Attachments:\r\npowered-blue-88x31.png\r\npowered-black-80x15.png\r\npowered-black-135x42.png", + 'teaser' => "Attachments:\r\npowered-blue-88x31.png\r\npowered-black-80x15.png\r\npowered-black-135x42.png", + 'log' => '', + 'timestamp' => '1285700600', + 'format' => '1', +)) +->values(array( + 'nid' => '39', + 'vid' => '52', + 'uid' => '1', + 'title' => 'node title 39 revision 53', + 'body' => "Attachments:\r\nforum-hot-new.png\r\nforum-hot.png\r\nforum-sticky.png\r\nforum-new.png", + 'teaser' => "Attachments:\r\nforum-hot-new.png\r\nforum-hot.png\r\nforum-sticky.png\r\nforum-new.png", + 'log' => '', + 'timestamp' => '1285709012', + 'format' => '1', +)) + ->execute(); + +db_create_table('upload', array( + 'fields' => array( + 'fid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + ), + 'nid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + ), + 'vid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + ), + 'description' => array( + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + 'default' => '', + ), + 'list' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + 'size' => 'tiny', + ), + 'weight' => array( + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + 'size' => 'tiny', + ), + ), + 'primary key' => array( + 'vid', + 'fid', + ), + 'indexes' => array( + 'fid' => array( + 'fid', + ), + 'nid' => array( + 'nid', + ), + ), + 'module' => 'upload', + 'name' => 'upload', +)); +db_insert('upload')->fields(array( + 'fid', + 'nid', + 'vid', + 'description', + 'list', + 'weight', +)) +->values(array( + 'fid' => '2', + 'nid' => '38', + 'vid' => '50', + 'description' => 'powered-blue-80x15.png', + 'list' => '1', + 'weight' => '0', +)) +->values(array( + 'fid' => '3', + 'nid' => '38', + 'vid' => '50', + 'description' => 'powered-blue-88x31.png', + 'list' => '1', + 'weight' => '0', +)) +->values(array( + 'fid' => '4', + 'nid' => '38', + 'vid' => '50', + 'description' => 'powered-blue-135x42.png', + 'list' => '1', + 'weight' => '0', +)) +->values(array( + 'fid' => '3', + 'nid' => '38', + 'vid' => '51', + 'description' => 'powered-blue-88x31.png', + 'list' => '1', + 'weight' => '0', +)) +->values(array( + 'fid' => '5', + 'nid' => '38', + 'vid' => '51', + 'description' => 'powered-black-80x15.png', + 'list' => '1', + 'weight' => '0', +)) +->values(array( + 'fid' => '6', + 'nid' => '38', + 'vid' => '51', + 'description' => 'powered-black-135x42.png', + 'list' => '1', + 'weight' => '0', +)) +->values(array( + 'fid' => '7', + 'nid' => '39', + 'vid' => '52', + 'description' => 'forum-hot-new.png', + 'list' => '1', + 'weight' => '-4', +)) +->values(array( + 'fid' => '8', + 'nid' => '39', + 'vid' => '52', + 'description' => 'forum-hot.png', + 'list' => '1', + 'weight' => '-3', +)) +->values(array( + 'fid' => '10', + 'nid' => '39', + 'vid' => '52', + 'description' => 'forum-sticky.png', + 'list' => '1', + 'weight' => '-2', +)) +->values(array( + 'fid' => '9', + 'nid' => '39', + 'vid' => '52', + 'description' => 'forum-new.png', + 'list' => '1', + 'weight' => '-1', +)) +->execute(); diff --git a/modules/simpletest/tests/upgrade/upgrade.upload.test b/modules/simpletest/tests/upgrade/upgrade.upload.test new file mode 100644 index 000000000..efbff1114 --- /dev/null +++ b/modules/simpletest/tests/upgrade/upgrade.upload.test @@ -0,0 +1,66 @@ +<?php +// $Id$ + +/** + * Upgrade test for comment.module. + */ +class UploadUpgradePathTestCase extends UpgradePathTestCase { + public static function getInfo() { + return array( + 'name' => 'Upload upgrade path', + 'description' => 'Upload upgrade path tests.', + 'group' => 'Upgrade path', + ); + } + + public function setUp() { + // Path to the database dump files. + $this->databaseDumpFiles = array( + drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.filled.database.php', + drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-6.upload.database.php', + ); + parent::setUp(); + + $this->uninstallModulesExcept(array('upload')); + } + + /** + * Test a successful upgrade. + */ + public function testUploadUpgrade() { + $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.')); + $query = new EntityFieldQuery(); + $query->entityCondition('entity_type', 'node'); + $query->entityCondition('bundle', 'page'); + $query->age(FIELD_LOAD_REVISION); + $query->fieldCondition('upload'); + $entities = $query->execute(); + $revisions = $entities['node']; + // Node revisions 50-52 should have uploaded files. + $this->assertTrue((isset($revisions[50]) && isset($revisions[51]) && isset($revisions[52])), 'Nodes with uploaded files now contain filefield data.'); + // The test database lists uploaded filenames in the body of each node with + // uploaded files attached. Make sure all files are there in the same order. + foreach ($revisions as $vid => $revision) { + $node = node_load($revision->nid, $vid); + + // Assemble a list of the filenames as recorded in the node body before + // the upgrade. + $recorded_filenames = preg_split('/\s+/', $node->body[LANGUAGE_NONE][0]['value']); + // The first line of the node body should be "Attachments:" + if (strstr($recorded_filenames[0], "Attachments:")) { + unset($recorded_filenames[0]); + } + $recorded_filenames = array_values($recorded_filenames); + + $files = $node->upload[LANGUAGE_NONE]; + // Assemble a list of the filenames as they exist after the upgrade. + $filenames = array(); + foreach ($files as $file) { + $filenames[] = $file['filename']; + } + + $diff = array_diff($filenames, $recorded_filenames); + $this->assertTrue(empty($diff), 'The uploaded files are present in the same order after the upgrade.'); + } + } +} |