function FileDirectoryTest::testFileDestination in Drupal 7
This will test the filepath for a destination based on passed flags and whether or not the file exists.
If a file exists, file_destination($destination, $replace) will either return:
- the existing filepath, if $replace is FILE_EXISTS_REPLACE
- a new filepath if FILE_EXISTS_RENAME
- an error (returning FALSE) if FILE_EXISTS_ERROR.
If the file doesn't currently exist, then it will simply return the filepath.
File
- modules/
simpletest/ tests/ file.test, line 1146 - This provides SimpleTests for the core file handling functionality. These include FileValidateTest and FileSaveTest.
Class
- FileDirectoryTest
- Directory related tests.
Code
function testFileDestination() {
// First test for non-existent file.
$destination = 'misc/xyz.txt';
$path = file_destination($destination, FILE_EXISTS_REPLACE);
$this
->assertEqual($path, $destination, 'Non-existing filepath destination is correct with FILE_EXISTS_REPLACE.', 'File');
$path = file_destination($destination, FILE_EXISTS_RENAME);
$this
->assertEqual($path, $destination, 'Non-existing filepath destination is correct with FILE_EXISTS_RENAME.', 'File');
$path = file_destination($destination, FILE_EXISTS_ERROR);
$this
->assertEqual($path, $destination, 'Non-existing filepath destination is correct with FILE_EXISTS_ERROR.', 'File');
$destination = 'misc/druplicon.png';
$path = file_destination($destination, FILE_EXISTS_REPLACE);
$this
->assertEqual($path, $destination, 'Existing filepath destination remains the same with FILE_EXISTS_REPLACE.', 'File');
$path = file_destination($destination, FILE_EXISTS_RENAME);
$this
->assertNotEqual($path, $destination, 'A new filepath destination is created when filepath destination already exists with FILE_EXISTS_RENAME.', 'File');
$path = file_destination($destination, FILE_EXISTS_ERROR);
$this
->assertEqual($path, FALSE, 'An error is returned when filepath destination already exists with FILE_EXISTS_ERROR.', 'File');
try {
file_destination("", FILE_EXISTS_REPLACE);
$this
->fail('Expected exception not thrown');
} catch (RuntimeException $e) {
$this
->assertEqual("", $e
->getMessage(), 'The invalid destination has been detected and RuntimeException has been thrown.');
}
}