You are here

function FileTestCase::createFile in SimpleTest 7

Create a file and save it to the files table and assert that it occurs correctly.

Parameters

$filepath: Optional string specifying the file path. If none is provided then a randomly named file will be created in the site's files directory.

$contents: Optional contents to save into the file. If a NULL value is provided an arbitrary string will be used.

$scheme: Optional string indicating the stream scheme to use. Drupal core includes public, private, and temporary. The public wrapper is the default.

Return value

File object.

24 calls to FileTestCase::createFile()
FileCopyTest::testExistingError in tests/file.test
Test that copying over an existing file fails when FILE_EXISTS_ERROR is specified.
FileCopyTest::testExistingRename in tests/file.test
Test renaming when copying over a file that already exists.
FileCopyTest::testExistingReplace in tests/file.test
Test replacement when copying over a file that already exists.
FileCopyTest::testNormal in tests/file.test
Test file copying in the normal, base case.
FileDeleteTest::testNormal in tests/file.test
Try deleting a normal file (as opposed to a directory, symlink, etc).

... See full list

File

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

Class

FileTestCase
Base class for file tests that adds some additional file specific assertions and helper functions.

Code

function createFile($filepath = NULL, $contents = NULL, $scheme = 'public') {
  if (is_null($filepath)) {
    $filepath = $this
      ->randomName();
  }
  $filepath = $scheme . '://' . $filepath;
  if (is_null($contents)) {
    $contents = "file_put_contents() doesn't seem to appreciate empty strings so let's put in some data.";
  }
  file_put_contents($filepath, $contents);
  $this
    ->assertTrue(is_file($filepath), t('The test file exists on the disk.'), 'Create test file');
  $file = new stdClass();
  $file->uri = $filepath;
  $file->filename = basename($file->uri);
  $file->filemime = 'text/plain';
  $file->uid = 1;
  $file->timestamp = REQUEST_TIME;
  $file->filesize = filesize($file->uri);
  $file->status = 0;

  // Write the record directly rather than calling file_save() so we don't
  // invoke the hooks.
  $this
    ->assertNotIdentical(drupal_write_record('file', $file), FALSE, t('The file was added to the database.'), 'Create test file');
  return $file;
}