1 file.test public FileUnitTestCase::testFileTypeDetermineTimestamp()

Verify that file_type_determine() does not change the timestamp.

File

core/modules/file/tests/file.test, line 2485
Tests for file.module.

Class

FileUnitTestCase
Tests basic file entity functionality.

Code

public function testFileTypeDetermineTimestamp() {
  $file_type = 'document';
  $file = $this->createFile(array('type' => $file_type));

  // Directly make this file "old" and simulate an upgraded site with file
  // types not classified, yet.
  $date = new DateTime('1 month ago');
  $old_timestamp = (int) $date->format('U');
  db_update('file_managed')
    ->fields(array('timestamp' => $old_timestamp, 'type' => FILE_TYPE_NONE))
    ->condition('fid', $file->fid)
    ->execute();
  entity_get_controller('file')->resetCache();
  $file = file_load($file->fid);

  $this->assertEqual($file->timestamp, $old_timestamp, 'File has the old timestamp set.');
  $this->assertEqual($file->type, FILE_TYPE_NONE, 'No file type is set yet');

  file_type_determine($file->fid);
  $file = file_load($file->fid);
  $this->assertEqual($file->timestamp, $old_timestamp, 'File has the old timestamp set after running file_type_determine() on it.');
  $this->assertEqual($file->type, $file_type, 'File type is set after running file_type_determine() on it.');
}