summaryrefslogtreecommitdiff
path: root/modules/simpletest
diff options
context:
space:
mode:
Diffstat (limited to 'modules/simpletest')
-rw-r--r--modules/simpletest/simpletest.info1
-rw-r--r--modules/simpletest/tests/upgrade/drupal-6.upload.database.php358
-rw-r--r--modules/simpletest/tests/upgrade/upgrade.upload.test66
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.');
+ }
+ }
+}