function FileTestCase::createFile in Drupal 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.
30 calls to FileTestCase::createFile()
- FileCopyTest::testExistingError in modules/
simpletest/ tests/ file.test - Test that copying over an existing file fails when FILE_EXISTS_ERROR is specified.
- FileCopyTest::testExistingRename in modules/
simpletest/ tests/ file.test - Test renaming when copying over a file that already exists.
- FileCopyTest::testExistingReplace in modules/
simpletest/ tests/ file.test - Test replacement when copying over a file that already exists.
- FileCopyTest::testNormal in modules/
simpletest/ tests/ file.test - Test file copying in the normal, base case.
- FileDeleteTest::testInUse in modules/
simpletest/ tests/ file.test - Tries deleting a file that is in use.
File
- modules/
simpletest/ tests/ file.test, line 199 - 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 = NULL) {
if (!isset($filepath)) {
// Prefix with non-latin characters to ensure that all file-related
// tests work with international filenames.
$filepath = 'Файл для тестирования ' . $this
->randomName();
}
if (!isset($scheme)) {
$scheme = file_default_scheme();
}
$filepath = $scheme . '://' . $filepath;
if (!isset($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), 'The test file exists on the disk.', 'Create test file');
$file = new stdClass();
$file->uri = $filepath;
$file->filename = drupal_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_managed', $file), FALSE, 'The file was added to the database.', 'Create test file');
return $file;
}