- Patch #394572 by Berdir: converted system module to the new database abstraction layer.

merge-requests/26/head
Dries Buytaert 2009-05-16 18:34:23 +00:00
parent 6cc59e5260
commit 196da1b876
5 changed files with 147 additions and 60 deletions

View File

@ -22,13 +22,13 @@ function system_main_admin_page($arg = NULL) {
drupal_set_message(t('One or more problems were detected with your Drupal installation. Check the <a href="@status">status report</a> for more information.', array('@status' => url('admin/reports/status'))), 'error');
}
$blocks = array();
if ($admin = db_fetch_array(db_query("SELECT menu_name, mlid FROM {menu_links} WHERE link_path = 'admin' AND module = 'system'"))) {
if ($admin = db_query("SELECT menu_name, mlid FROM {menu_links} WHERE link_path = 'admin' AND module = 'system'")->fetchAssoc()) {
$result = db_query("
SELECT m.*, ml.*
FROM {menu_links} ml
INNER JOIN {menu_router} m ON ml.router_path = m.path
WHERE ml.link_path != 'admin/help' AND menu_name = '%s' AND ml.plid = %d AND hidden = 0", $admin);
while ($item = db_fetch_array($result)) {
WHERE ml.link_path != 'admin/help' AND menu_name = :menu_name AND ml.plid = :mlid AND hidden = 0", $admin, array('fetch' => PDO::FETCH_ASSOC));
foreach ($result as $item) {
_menu_link_translate($item);
if (!$item['access']) {
continue;
@ -246,7 +246,10 @@ function system_themes_form_submit($form, &$form_state) {
$old_theme_list[] = $theme->name;
}
}
db_query("UPDATE {system} SET status = 0 WHERE type = 'theme'");
db_update('system')
->fields(array('status' => 0))
->condition('type', 'theme')
->execute();
if ($form_state['values']['op'] == t('Save configuration')) {
if (is_array($form_state['values']['status'])) {
@ -254,7 +257,11 @@ function system_themes_form_submit($form, &$form_state) {
// Always enable the default theme, despite its status checkbox being checked:
if ($choice || $form_state['values']['theme_default'] == $key) {
$new_theme_list[] = $key;
db_query("UPDATE {system} SET status = 1 WHERE type = 'theme' and name = '%s'", $key);
db_update('system')
->fields(array('status' => 1))
->condition('type', 'theme')
->condition('name', $key)
->execute();
}
}
}
@ -276,7 +283,11 @@ function system_themes_form_submit($form, &$form_state) {
variable_del('theme_default');
variable_del('admin_theme');
variable_del('node_admin_theme');
db_query("UPDATE {system} SET status = 1 WHERE type = 'theme' AND name = 'garland'");
db_update('system')
->fields(array('status' => 1))
->condition('type', 'theme')
->condition('name', 'garland')
->execute();
$new_theme_list = array('garland');
}
@ -962,8 +973,8 @@ function system_modules_uninstall($form_state = NULL) {
$form = array();
// Pull all disabled modules from the system table.
$disabled_modules = db_query("SELECT name, filename, info FROM {system} WHERE type = 'module' AND status = 0 AND schema_version > %d ORDER BY name", SCHEMA_UNINSTALLED);
while ($module = db_fetch_object($disabled_modules)) {
$disabled_modules = db_query("SELECT name, filename, info FROM {system} WHERE type = 'module' AND status = 0 AND schema_version > :schema ORDER BY name", array(':schema' => SCHEMA_UNINSTALLED));
foreach ($disabled_modules as $module) {
// Grab the module info
$info = unserialize($module->info);
@ -1077,7 +1088,7 @@ function system_ip_blocking() {
$rows = array();
$header = array(t('IP address'), t('Operations'));
$result = db_query('SELECT * FROM {blocked_ips}');
while ($ip = db_fetch_object($result)) {
foreach ($result as $ip) {
$rows[] = array(
$ip->ip,
l(t('delete'), "admin/settings/ip-blocking/delete/$ip->iid"),
@ -1118,7 +1129,7 @@ function system_ip_blocking_form($form_state) {
function system_ip_blocking_form_validate($form, &$form_state) {
$ip = trim($form_state['values']['ip']);
if (db_result(db_query("SELECT * FROM {blocked_ips} WHERE ip = '%s'", $ip))) {
if (db_query("SELECT * FROM {blocked_ips} WHERE ip = :ip", array(':ip' => $ip))->fetchField()) {
form_set_error('ip', t('This IP address is already blocked.'));
}
elseif ($ip == ip_address()) {
@ -1131,7 +1142,9 @@ function system_ip_blocking_form_validate($form, &$form_state) {
function system_ip_blocking_form_submit($form, &$form_state) {
$ip = trim($form_state['values']['ip']);
db_query("INSERT INTO {blocked_ips} (ip) VALUES ('%s')", $ip);
db_insert('blocked_ips')
->fields(array('ip' => $ip))
->execute();
drupal_set_message(t('The IP address %ip has been blocked.', array('%ip' => $ip)));
$form_state['redirect'] = 'admin/settings/ip-blocking';
return;
@ -1155,7 +1168,9 @@ function system_ip_blocking_delete(&$form_state, $iid) {
*/
function system_ip_blocking_delete_submit($form, &$form_state) {
$blocked_ip = $form_state['values']['blocked_ip'];
db_query("DELETE FROM {blocked_ips} WHERE iid = %d", $blocked_ip['iid']);
db_delete('blocked_ips')
->condition('iid', $blocked_ip['iid'])
->execute();
watchdog('user', 'Deleted %ip', array('%ip' => $blocked_ip['ip']));
drupal_set_message(t('The IP address %ip was deleted.', array('%ip' => $blocked_ip['ip'])));
$form_state['redirect'] = 'admin/settings/ip-blocking';
@ -1766,8 +1781,12 @@ function system_status($check = FALSE) {
}
// MySQL import might have set the uid of the anonymous user to autoincrement
// value. Let's try fixing it. See http://drupal.org/node/204411
db_query("UPDATE {users} SET uid = uid - uid WHERE name = '' AND pass = '' AND status = 0");
db_update('users')
->expression('uid', 'uid - uid')
->condition('name', '')
->condition('pass', '')
->condition('status', 0)
->execute();
return theme('status_report', $requirements);
}
@ -1821,7 +1840,7 @@ function _system_sql($data, $keys) {
function system_sql() {
$result = db_query("SHOW STATUS");
while ($entry = db_fetch_object($result)) {
foreach ($result as $entry) {
// 'SHOW STATUS' returns fields named 'Variable_name' and 'Value',
// case is important.
$data[$entry->Variable_name] = $entry->Value;

View File

@ -141,7 +141,10 @@ function hook_elements() {
* None.
*/
function hook_exit($destination = NULL) {
db_query('UPDATE {counter} SET hits = hits + 1 WHERE type = 1');
db_update('counter')
->expression('hits', 'hits + 1')
->condition('type', 1)
->execute();
}
/**
@ -1243,8 +1246,8 @@ function hook_file_delete($file) {
function hook_file_download($filepath) {
// Check if the file is controlled by the current module.
$filepath = file_create_path($filepath);
$result = db_query("SELECT f.* FROM {files} f INNER JOIN {upload} u ON f.fid = u.fid WHERE filepath = '%s'", $filepath);
if ($file = db_fetch_object($result)) {
$result = db_query("SELECT f.* FROM {files} f INNER JOIN {upload} u ON f.fid = u.fid WHERE filepath = :filepath", array('filepath' => $filepath));
foreach ($result as $file) {
if (!user_access('view uploaded files')) {
return -1;
}
@ -1617,8 +1620,12 @@ function hook_update_N(&$sandbox = NULL) {
// We'll -1 to disregard the uid 0...
$sandbox['max'] = db_query('SELECT COUNT(DISTINCT uid) FROM {users}')->fetchField() - 1;
}
$users = db_query_range("SELECT uid, name FROM {users} WHERE uid > %d ORDER BY uid ASC", $sandbox['current_uid'], 0, 3);
db_select('users', 'u')
->fields('u', array('uid', 'name'))
->condition('uid', $sandbox['current_uid'], '>')
->range(0, 3)
->orderBy('uid', 'ASC')
->execute();
foreach ($users as $user) {
$user->name .= '!';
$ret[] = update_sql("UPDATE {users} SET name = '$user->name' WHERE uid = $user->uid");

View File

@ -322,14 +322,14 @@ function system_install() {
\'SELECT greatest($1, greatest($2, $3));\'
LANGUAGE \'sql\''
);
if (!db_result(db_query("SELECT COUNT(*) FROM pg_proc WHERE proname = 'rand'"))) {
if (!db_query("SELECT COUNT(*) FROM pg_proc WHERE proname = 'rand'")->fetchField()) {
db_query('CREATE OR REPLACE FUNCTION "rand"() RETURNS float AS
\'SELECT random();\'
LANGUAGE \'sql\''
);
}
if (!db_result(db_query("SELECT COUNT(*) FROM pg_proc WHERE proname = 'concat'"))) {
if (!db_query("SELECT COUNT(*) FROM pg_proc WHERE proname = 'concat'")->fetchField()) {
db_query('CREATE OR REPLACE FUNCTION "concat"(text, text) RETURNS text AS
\'SELECT $1 || $2;\'
LANGUAGE \'sql\''
@ -2808,7 +2808,7 @@ function system_update_6049() {
function system_update_7000() {
$ret = array();
$result = db_query("SELECT rid, perm FROM {permission} ORDER BY rid");
while ($role = db_fetch_object($result)) {
foreach ($result as $role) {
$renamed_permission = preg_replace('/(?<=^|,\ )create\ blog\ entries(?=,|$)/', 'create blog content', $role->perm);
$renamed_permission = preg_replace('/(?<=^|,\ )edit\ own\ blog\ entries(?=,|$)/', 'edit own blog content', $role->perm);
$renamed_permission = preg_replace('/(?<=^|,\ )edit\ any\ blog\ entry(?=,|$)/', 'edit any blog content', $role->perm);
@ -2878,7 +2878,10 @@ function system_update_7002() {
function system_update_7003() {
$ret = array();
$type = 'host';
$result = db_query("SELECT mask FROM {access} WHERE status = %d AND TYPE = '%s'", 0, $type);
$result = db_query("SELECT mask FROM {access} WHERE status = :status AND type = :type", array(
':status' => 0,
':type' => $type,
));
while ($blocked = db_fetch_object($result)) {
if (filter_var($blocked->mask, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE) !== FALSE) {
$ret[] = update_sql("INSERT INTO {blocked_ips} (ip) VALUES ('$blocked->mask')");
@ -2894,8 +2897,11 @@ function system_update_7003() {
}
// Make sure not to block any IP addresses that were specifically allowed by access rules.
if (!empty($result)) {
$result = db_query("SELECT mask FROM {access} WHERE status = %d AND type = '%s'", 1, $type);
while ($allowed = db_fetch_object($result)) {
$result = db_query("SELECT mask FROM {access} WHERE status = :status AND type = :type", array(
':status' => 1,
':type' => $type,
));
foreach ($result as $allowed) {
$ret[] = update_sql("DELETE FROM {blocked_ips} WHERE LOWER(ip) LIKE LOWER('$allowed->mask')");
}
}
@ -2939,7 +2945,12 @@ function system_update_7004(&$sandbox) {
foreach ($renamed_deltas as $module => $deltas) {
foreach ($deltas as $old_delta => $new_delta) {
// Only do the update if the old block actually exists.
if (db_result(db_query("SELECT COUNT(*) FROM {" . $table . "} WHERE module = '%s' AND delta = '%s'", $module, $old_delta))) {
$block_exists = db_query("SELECT COUNT(*) FROM {" . $table . "} WHERE module = :module AND delta = :delta",array(
':module' => $module,
':delta' => $old_delta,
))
->fetchField();
if ($block_exists) {
$ret[] = update_sql("UPDATE {" . $table . "} SET delta = '" . $new_delta . "' WHERE module = '" . $module . "' AND delta = '" . $old_delta . "'");
}
}
@ -2959,12 +2970,17 @@ function system_update_7004(&$sandbox) {
// Initialize batch update information.
$sandbox['progress'] = 0;
$sandbox['last_user_processed'] = -1;
$sandbox['max'] = db_result(db_query("SELECT COUNT(*) FROM {users} WHERE data IS NOT NULL"));
$sandbox['max'] = db_query("SELECT COUNT(*) FROM {users} WHERE data IS NOT NULL")->fetchField();
}
// Now do the batch update of the user-specific block visibility settings.
$limit = 100;
$result = db_query_range("SELECT uid, data FROM {users} WHERE uid > %d AND data IS NOT NULL", $sandbox['last_user_processed'], 0, $limit);
while ($row = db_fetch_object($result)) {
$result = db_select('users', 'u')
->fields('u', array('uid', 'data'))
->condition('uid', $sandbox['last_user_processed'], '>')
->where('data IS NOT NULL')
->range(0, $limit)
->execute();
foreach ($result as $row) {
$data = unserialize($row->data);
$user_needs_update = FALSE;
foreach ($renamed_deltas as $module => $deltas) {
@ -2980,7 +2996,10 @@ function system_update_7004(&$sandbox) {
}
// Update the current user.
if ($user_needs_update) {
db_query("UPDATE {users} SET data = '%s' WHERE uid = %d", serialize($data), $row->uid);
db_update('users')
->fields(array('data' => serialize($data)))
->condition('uid', $row->uid)
->execute();
}
// Update our progress information for the batch update.
$sandbox['progress']++;
@ -3088,12 +3107,17 @@ function system_update_7007() {
// Copy the permissions from the old {permission} table to the new {role_permission} table.
$result = db_query("SELECT rid, perm FROM {permission} ORDER BY rid ASC");
while ($role = db_fetch_object($result)) {
$query = db_insert('role_permission')->fields(array('rid', 'permission'));
foreach ($result as $role) {
foreach (explode(', ', $role->perm) as $perm) {
db_query("INSERT INTO {role_permission} (rid, permission) VALUES (%d, '%s')", $role->rid, $perm);
$query->values(array(
'rid' => $role->rid,
'permission' => $perm,
));
}
$ret[] = array('success' => TRUE, 'query' => "Inserted into {role_permission} the permissions for role ID " . $role->rid);
}
$query->execute();
db_drop_table($ret, 'permission');
return $ret;
@ -3190,7 +3214,7 @@ function system_update_7013() {
// the time zone name and use it as the default time zone.
if (!$timezone && ($timezone_id = variable_get('date_default_timezone_id', 0))) {
try {
$timezone_name = db_result(db_query('SELECT name FROM {event_timezones} WHERE timezone = :timezone_id', array(':timezone_id' => $timezone_id)));
$timezone_name = db_query('SELECT name FROM {event_timezones} WHERE timezone = :timezone_id', array(':timezone_id' => $timezone_id))->fetchField();
if (($timezone_name = str_replace(' ', '_', $timezone_name)) && isset($timezones[$timezone_name])) {
$timezone = $timezone_name;
}
@ -3247,7 +3271,7 @@ function system_update_7016() {
LEFT JOIN pg_class c ON (c.oid = a.attrelid)
WHERE pg_catalog.pg_table_is_visible(c.oid) AND c.relkind = 'r'
AND pg_catalog.format_type(a.atttypid, a.atttypmod) LIKE '%unsigned%'");
while ($row = db_fetch_object($result)) {
foreach ($result as $row) {
switch ($row->type) {
case 'smallint_unsigned':
$datatype = 'int';

View File

@ -764,8 +764,7 @@ function system_menu() {
* The blocked IP address from the database as an array.
*/
function blocked_ip_load($iid) {
$blocked_ip = db_fetch_array(db_query("SELECT * FROM {blocked_ips} WHERE iid = %d", $iid));
return $blocked_ip;
return db_query("SELECT * FROM {blocked_ips} WHERE iid = :iid", array(':iid' => $iid))->fetchAssoc();
}
/**
@ -977,14 +976,14 @@ function system_block_view($delta = '') {
function system_admin_menu_block($item) {
$content = array();
if (!isset($item['mlid'])) {
$item += db_fetch_array(db_query("SELECT mlid, menu_name FROM {menu_links} ml WHERE ml.router_path = '%s' AND module = 'system'", $item['path']));
$item += db_query("SELECT mlid, menu_name FROM {menu_links} ml WHERE ml.router_path = :path AND module = 'system'", array(':path' => $item['path']))->fetchAssoc();
}
$result = db_query("
SELECT m.load_functions, m.to_arg_functions, m.access_callback, m.access_arguments, m.page_callback, m.page_arguments, m.title, m.title_callback, m.title_arguments, m.type, m.description, ml.*
FROM {menu_links} ml
LEFT JOIN {menu_router} m ON ml.router_path = m.path
WHERE ml.plid = %d AND ml.menu_name = '%s' AND hidden = 0", $item['mlid'], $item['menu_name']);
while ($item = db_fetch_array($result)) {
WHERE ml.plid = :plid AND ml.menu_name = :name AND hidden = 0", array(':plid' => $item['mlid'], ':name' => $item['menu_name']), array('fetch' => PDO::FETCH_ASSOC));
foreach ($result as $item) {
_menu_link_translate($item);
if (!$item['access']) {
continue;
@ -1089,8 +1088,8 @@ function system_check_directory($form_element) {
*/
function system_get_files_database(&$files, $type) {
// Extract current files from database.
$result = db_query("SELECT filename, name, type, status, schema_version, weight FROM {system} WHERE type = '%s'", $type);
while ($file = db_fetch_object($result)) {
$result = db_query("SELECT filename, name, type, status, schema_version, weight FROM {system} WHERE type = :type", array(':type' => $type));
foreach ($result as $file) {
if (isset($files[$file->name]) && is_object($files[$file->name])) {
$file->filepath = $file->filename;
$file->old_filepath = $file->filepath;
@ -1155,15 +1154,26 @@ function system_theme_data() {
// Extract current files from database.
system_get_files_database($themes, 'theme');
db_query("DELETE FROM {system} WHERE type = 'theme'");
db_delete('system')
->condition('type', 'theme')
->execute();
$query = db_insert('system')->fields(array('name', 'owner', 'info', 'type', 'filename', 'status'));
foreach ($themes as $theme) {
if (!isset($theme->owner)) {
$theme->owner = '';
}
db_query("INSERT INTO {system} (name, owner, info, type, filename, status) VALUES ('%s', '%s', '%s', '%s', '%s', %d)", $theme->name, $theme->owner, serialize($theme->info), 'theme', $theme->filename, isset($theme->status) ? $theme->status : 0);
$query->values(array(
'name' => $theme->name,
'owner' => $theme->owner,
'info' => serialize($theme->info),
'type' => 'theme',
'filename' => $theme->filename,
'status' => isset($theme->status) ? $theme->status : 0,
));
}
$query->execute();
return $themes;
}
@ -1307,7 +1317,7 @@ function system_region_list($theme_key) {
static $list = array();
if (!array_key_exists($theme_key, $list)) {
$info = unserialize(db_result(db_query("SELECT info FROM {system} WHERE type = :type AND name = :name", array(':type' => 'theme', ':name' => $theme_key))));
$info = unserialize(db_query("SELECT info FROM {system} WHERE type = :type AND name = :name", array(':type' => 'theme', ':name' => $theme_key))->fetchField());
$list[$theme_key] = array_map('t', $info['regions']);
}
@ -1519,9 +1529,9 @@ function system_get_module_admin_tasks($module) {
if (!isset($items)) {
$result = db_query("
SELECT m.load_functions, m.to_arg_functions, m.access_callback, m.access_arguments, m.page_callback, m.page_arguments, m.title, m.title_callback, m.title_arguments, m.type, ml.*
FROM {menu_links} ml INNER JOIN {menu_router} m ON ml.router_path = m.path WHERE ml.link_path LIKE 'admin/%' AND hidden >= 0 AND module = 'system' AND m.number_parts > 2");
FROM {menu_links} ml INNER JOIN {menu_router} m ON ml.router_path = m.path WHERE ml.link_path LIKE 'admin/%' AND hidden >= 0 AND module = 'system' AND m.number_parts > 2", array(), array('fetch' => PDO::FETCH_ASSOC));
$items = array();
while ($item = db_fetch_array($result)) {
foreach ($result as $item) {
_menu_link_translate($item);
if ($item['access']) {
$items[$item['router_path']] = $item;
@ -1556,14 +1566,22 @@ function system_get_module_admin_tasks($module) {
*/
function system_cron() {
// Cleanup the flood.
db_query('DELETE FROM {flood} WHERE timestamp < %d', REQUEST_TIME - 3600);
db_delete('flood')
->condition('timestamp', REQUEST_TIME - 3600, '<')
->execute();
// Cleanup the batch table.
db_query('DELETE FROM {batch} WHERE timestamp < %d', REQUEST_TIME - 864000);
db_delete('batch')
->condition('timestamp', REQUEST_TIME - 864000, '<')
->execute();
// Remove temporary files that are older than DRUPAL_MAXIMUM_TEMP_FILE_AGE.
// Use separate placeholders for the status to avoid a bug in some versions
// of PHP. See http://drupal.org/node/352956
$result = db_query('SELECT fid FROM {files} WHERE status & :permanent1 <> :permanent2 AND timestamp < :timestamp', array(':permanent1' => FILE_STATUS_PERMANENT, ':permanent2' => FILE_STATUS_PERMANENT, ':timestamp' => REQUEST_TIME - DRUPAL_MAXIMUM_TEMP_FILE_AGE));
$result = db_query('SELECT fid FROM {files} WHERE status & :permanent1 <> :permanent2 AND timestamp < :timestamp', array(
':permanent1' => FILE_STATUS_PERMANENT,
':permanent2' => FILE_STATUS_PERMANENT,
':timestamp' => REQUEST_TIME - DRUPAL_MAXIMUM_TEMP_FILE_AGE
));
foreach ($result as $row) {
if ($file = file_load($row->fid)) {
if (!file_delete($file)) {
@ -1672,15 +1690,20 @@ function system_actions_manage() {
}
$row = array();
$instances_present = db_fetch_object(db_query("SELECT aid FROM {actions} WHERE parameters <> ''"));
$instances_present = db_query("SELECT aid FROM {actions} WHERE parameters <> ''")->fetchField();
$header = array(
array('data' => t('Action type'), 'field' => 'type'),
array('data' => t('Description'), 'field' => 'description'),
array('data' => $instances_present ? t('Operations') : '', 'colspan' => '2')
);
$sql = 'SELECT * FROM {actions}';
$result = pager_query($sql . tablesort_sql($header), 50);
while ($action = db_fetch_object($result)) {
$query = db_select('actions')->extend('PagerDefault')->extend('TableSort');
$result = $query
->fields('actions')
->limit(50)
->setHeader($header)
->execute();
foreach ($result as $action) {
$row[] = array(
array('data' => $action->type),
array('data' => $action->description),
@ -1776,7 +1799,7 @@ function system_actions_configure($form_state, $action = NULL) {
if (is_numeric($action)) {
$aid = $action;
// Load stored parameter values from database.
$data = db_fetch_object(db_query("SELECT * FROM {actions} WHERE aid = '%s'", $aid));
$data = db_query("SELECT * FROM {actions} WHERE aid = :aid", array(':aid' => $aid))->fetch();
$edit['actions_description'] = $data->description;
$edit['actions_type'] = $data->type;
$function = $data->callback;
@ -2199,7 +2222,9 @@ function system_goto_action($object, $context) {
*/
function system_block_ip_action() {
$ip = ip_address();
db_query("INSERT INTO {blocked_ips} (ip) VALUES ('%s')", $ip);
db_insert('blocked_ips')
->fields(array('ip' => $ip))
->execute();
watchdog('action', 'Banned IP address %ip', array('%ip' => $ip));
}

View File

@ -250,7 +250,7 @@ class IPAddressBlockingTestCase extends DrupalWebTestCase {
$edit = array();
$edit['ip'] = '192.168.1.1';
$this->drupalPost('admin/settings/ip-blocking', $edit, t('Save'));
$ip = db_result(db_query("SELECT iid from {blocked_ips} WHERE ip = '%s'", $edit['ip']));
$ip = db_query("SELECT iid from {blocked_ips} WHERE ip = :ip", array(':ip' => $edit['ip']))->fetchField();
$this->assertNotNull($ip, t('IP address found in database'));
$this->assertRaw(t('The IP address %ip has been blocked.', array('%ip' => $edit['ip'])), t('IP address was blocked.'));
@ -332,17 +332,29 @@ class CronRunTestCase extends DrupalWebTestCase {
// Temporary file that is older than DRUPAL_MAXIMUM_TEMP_FILE_AGE.
$temp_old = file_save_data('');
db_query('UPDATE {files} SET status = :status, timestamp = :timestamp WHERE fid = :fid', array(':status' => 0, ':timestamp' => 1, ':fid' => $temp_old->fid));
db_update('files')
->fields(array(
'status' => 0,
'timestamp' => 1,
))
->condition('fid', $temp_old->fid)
->execute();
$this->assertTrue(file_exists($temp_old->filepath), t('Old temp file was created correctly.'));
// Temporary file that is less than DRUPAL_MAXIMUM_TEMP_FILE_AGE.
$temp_new = file_save_data('');
db_query('UPDATE {files} SET status = :status WHERE fid = :fid', array(':status' => 0, ':fid' => $temp_new->fid));
db_update('files')
->fields(array('status' => 0))
->condition('fid', $temp_new->fid)
->execute();
$this->assertTrue(file_exists($temp_new->filepath), t('New temp file was created correctly.'));
// Permanent file that is older than DRUPAL_MAXIMUM_TEMP_FILE_AGE.
$perm_old = file_save_data('');
db_query('UPDATE {files} SET timestamp = :timestamp WHERE fid = :fid', array(':timestamp' => 1, ':fid' => $perm_old->fid));
db_update('files')
->fields(array('timestamp' => 1))
->condition('fid', $temp_old->fid)
->execute();
$this->assertTrue(file_exists($perm_old->filepath), t('Old permanent file was created correctly.'));
// Permanent file that is newer than DRUPAL_MAXIMUM_TEMP_FILE_AGE.