diff options
author | Dries Buytaert <dries@buytaert.net> | 2011-04-16 08:48:15 -0400 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2011-04-16 08:48:15 -0400 |
commit | e1b223b1ce62fb3cb5bcae809461bcda49708055 (patch) | |
tree | 52c07ba61587d5aab28bb7a581f32ce1141742c2 | |
parent | f27304162709461ccedc4d1ea35821b345ad685a (diff) | |
download | drupal-e1b223b1ce62fb3cb5bcae809461bcda49708055.tar.gz drupal-e1b223b1ce62fb3cb5bcae809461bcda49708055.zip |
- Patch #984456 by Dave Reid, bfroehle: cleanup file_field_widget_uri() and its token replacement.
-rw-r--r-- | modules/file/file.field.inc | 7 | ||||
-rw-r--r-- | modules/file/tests/file.test | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/modules/file/file.field.inc b/modules/file/file.field.inc index 5508b9bbb3c..2af3cb620be 100644 --- a/modules/file/file.field.inc +++ b/modules/file/file.field.inc @@ -567,14 +567,17 @@ function file_field_widget_upload_validators($field, $instance) { * A field array. * @param $instance * A field instance array. + * @param $data + * An array of token objects to pass to token_replace(). * @return * A file directory URI with tokens replaced. + * + * @see token_replace() */ -function file_field_widget_uri($field, $instance, $account = NULL) { +function file_field_widget_uri($field, $instance, $data = array()) { $destination = trim($instance['settings']['file_directory'], '/'); // Replace tokens. - $data = array('user' => isset($account) ? $account : $GLOBALS['user']); $destination = token_replace($destination, $data); return $field['settings']['uri_scheme'] . '://' . $destination; diff --git a/modules/file/tests/file.test b/modules/file/tests/file.test index 99f95b42f74..ea8c5c67bb9 100644 --- a/modules/file/tests/file.test +++ b/modules/file/tests/file.test @@ -932,7 +932,7 @@ class FileFieldPathTestCase extends FileFieldTestCase { // Check the path when used with tokens. // Change the path to contain multiple token directories. - $field = $this->updateFileField($field_name, $type_name, array('file_directory' => '[user:uid]/[user:name]')); + $field = $this->updateFileField($field_name, $type_name, array('file_directory' => '[current-user:uid]/[current-user:name]')); // Upload a new file into the token subdirectories. $nid = $this->uploadNodeFile($test_file, $field_name, $type_name); @@ -940,6 +940,8 @@ class FileFieldPathTestCase extends FileFieldTestCase { // Check that the file was uploaded into the subdirectory. $node = node_load($nid, NULL, TRUE); $node_file = (object) $node->{$field_name}[LANGUAGE_NONE][0]; + // Do token replacement using the same user which uploaded the file, not + // the user running the test case. $data = array('user' => $this->admin_user); $subdirectory = token_replace('[user:uid]/[user:name]', $data); $this->assertPathMatch('public://' . $subdirectory . '/' . $test_file->filename, $node_file->uri, t('The file %file was uploaded to the correct path with token replacements.', array('%file' => $node_file->uri))); |