diff options
author | webchick <webchick@24967.no-reply.drupal.org> | 2012-04-26 11:33:42 -0700 |
---|---|---|
committer | webchick <webchick@24967.no-reply.drupal.org> | 2012-04-26 11:33:42 -0700 |
commit | 6af9c29d6338cb634906b48819ea2840fe15ff3f (patch) | |
tree | 0a4e1311858e8b9dd00f6ab4dd8f377013da8e08 /modules | |
parent | 3a928db5053d17b36d73af9689059e4be5b8dcb6 (diff) | |
download | brdo-6af9c29d6338cb634906b48819ea2840fe15ff3f.tar.gz brdo-6af9c29d6338cb634906b48819ea2840fe15ff3f.tar.bz2 |
Issue #1542854 by drumm, BTMash: Fixed system_update_7061() converts filepaths too aggressively.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/simpletest/tests/upgrade/drupal-6.upload.database.php | 25 | ||||
-rw-r--r-- | modules/simpletest/tests/upgrade/upgrade.upload.test | 6 | ||||
-rw-r--r-- | modules/system/system.install | 2 |
3 files changed, 30 insertions, 3 deletions
diff --git a/modules/simpletest/tests/upgrade/drupal-6.upload.database.php b/modules/simpletest/tests/upgrade/drupal-6.upload.database.php index 493483f3d..c7f032ecb 100644 --- a/modules/simpletest/tests/upgrade/drupal-6.upload.database.php +++ b/modules/simpletest/tests/upgrade/drupal-6.upload.database.php @@ -114,6 +114,19 @@ db_insert('files')->fields(array( 'status' => '1', 'timestamp' => '1285708957', )) +/* + * This is a case where the path is repeated twice. + */ +->values(array( + 'fid' => '11', + 'uid' => '1', + 'filename' => 'crazy-basename.png', + 'filepath' => '/drupal-6/file/directory/path/drupal-6/file/directory/path/crazy-basename.png', + 'filemime' => 'image/png', + 'filesize' => '329', + 'status' => '1', + 'timestamp' => '1285708958', +)) ->execute(); db_insert('node')->fields(array( @@ -235,8 +248,8 @@ db_insert('node_revisions')->fields(array( 'vid' => '53', 'uid' => '1', 'title' => 'node title 40 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", + 'body' => "Attachments:\r\nforum-hot-new.png\r\nforum-hot.png\r\nforum-sticky.png\r\nforum-new.png\r\ncrazy-basename.png", + 'teaser' => "Attachments:\r\nforum-hot-new.png\r\nforum-hot.png\r\nforum-sticky.png\r\nforum-new.png\r\ncrazy-basename.png", 'log' => '', 'timestamp' => '1285709012', 'format' => '1', @@ -394,4 +407,12 @@ db_insert('upload')->fields(array( 'list' => '1', 'weight' => '-1', )) +->values(array( + 'fid' => '11', + 'nid' => '40', + 'vid' => '53', + 'description' => 'crazy-basename.png', + 'list' => '1', + 'weight' => '0', +)) ->execute(); diff --git a/modules/simpletest/tests/upgrade/upgrade.upload.test b/modules/simpletest/tests/upgrade/upgrade.upload.test index e3e1dc21e..276fae4e1 100644 --- a/modules/simpletest/tests/upgrade/upgrade.upload.test +++ b/modules/simpletest/tests/upgrade/upgrade.upload.test @@ -64,6 +64,12 @@ class UploadUpgradePathTestCase extends UpgradePathTestCase { } $this->assertIdentical($filenames, $recorded_filenames, 'The uploaded files are present in the same order after the upgrade.'); } + // Test for the file with repeating basename to only have the streaming + // path replaced. + $node = node_load(40, 53); + $repeated_basename_file = $node->upload[LANGUAGE_NONE][4]; + $this->assertEqual($repeated_basename_file['uri'], 'private://drupal-6/file/directory/path/crazy-basename.png', "The file with the repeated basename path only had the stream portion replaced"); + // Make sure the file settings were properly migrated. $d6_file_directory_temp = '/drupal-6/file/directory/temp'; $d6_file_directory_path = '/drupal-6/file/directory/path'; diff --git a/modules/system/system.install b/modules/system/system.install index 0b4e1faa1..6161eb333 100644 --- a/modules/system/system.install +++ b/modules/system/system.install @@ -2791,7 +2791,7 @@ function system_update_7061(&$sandbox) { foreach ($revision['file'][LANGUAGE_NONE] as $delta => $file) { // We will convert filepaths to uri using the default scheme // and stripping off the existing file directory path. - $file['uri'] = $scheme . str_replace($basename, '', $file['filepath']); + $file['uri'] = $scheme . preg_replace('!^' . $basename . '!', '', $file['filepath']); $file['uri'] = file_stream_wrapper_uri_normalize($file['uri']); unset($file['filepath']); // Insert into the file_managed table. |