You are here

function FileValidatorTest::testFileValidateSize in SimpleTest 7

Test file_validate_size().

File

tests/file.test, line 457
This provides SimpleTests for the core file handling functionality. These include FileValidateTest and FileSaveTest.

Class

FileValidatorTest
This will run tests against the file validation functions (file_validate_*).

Code

function testFileValidateSize() {
  global $user;
  $original_user = $user;
  drupal_save_session(FALSE);

  // Run these test as uid = 1.
  $user = user_load(1);
  $file = new stdClass();
  $file->filesize = 999999;
  $errors = file_validate_size($file, 1, 1);
  $this
    ->assertEqual(count($errors), 0, t('No size limits enforced on uid=1.'), 'File');

  // Run these tests as a regular user.
  $user = $this
    ->drupalCreateUser();

  // Create a file with a size of 1000 bytes, and quotas of only 1 byte.
  $file = new stdClass();
  $file->filesize = 1000;
  $errors = file_validate_size($file, 0, 0);
  $this
    ->assertEqual(count($errors), 0, t('No limits means no errors.'), 'File');
  $errors = file_validate_size($file, 1, 0);
  $this
    ->assertEqual(count($errors), 1, t('Error for the file being over the limit.'), 'File');
  $errors = file_validate_size($file, 0, 1);
  $this
    ->assertEqual(count($errors), 1, t('Error for the user being over their limit.'), 'File');
  $errors = file_validate_size($file, 1, 1);
  $this
    ->assertEqual(count($errors), 2, t('Errors for both the file and their limit.'), 'File');
  $user = $original_user;
  drupal_save_session(TRUE);
}