function FileDownloadTest::checkUrl

Download a file from the URL generated by file_create_url().

Create a file with the specified scheme, directory and filename; check that the URL generated by file_create_url() for the specified file equals the specified URL; fetch the URL and then compare the contents to the file.

Parameters

$scheme: A scheme, e.g. "public"

$directory: A directory, possibly ""

$filename: A filename

$expected_url: The expected URL

$clean_url: The value of the clean_url setting

1 call to FileDownloadTest::checkUrl()
FileDownloadTest::testFileCreateUrl in modules/simpletest/tests/file.test
Test file_create_url().

File

modules/simpletest/tests/file.test, line 2669

Class

FileDownloadTest
Tests for download/file transfer functions.

Code

private function checkUrl($scheme, $directory, $filename, $expected_url, $clean_url = '1') {
    variable_set('clean_url', $clean_url);
    // Convert $filename to a valid filename, i.e. strip characters not
    // supported by the filesystem, and create the file in the specified
    // directory.
    $filepath = file_create_filename($filename, $directory);
    $directory_uri = $scheme . '://' . dirname($filepath);
    file_prepare_directory($directory_uri, FILE_CREATE_DIRECTORY);
    $file = $this->createFile($filepath, NULL, $scheme);
    $url = file_create_url($file->uri);
    $this->assertEqual($url, $expected_url, 'Generated URL matches expected URL.');
    if ($scheme == 'private') {
        // Tell the implementation of hook_file_download() in file_test.module
        // that this file may be downloaded.
        file_test_set_return('download', array(
            'x-foo' => 'Bar',
        ));
    }
    $this->drupalGet($url);
    if ($this->assertResponse(200) == 'pass') {
        $this->assertRaw(file_get_contents($file->uri), 'Contents of the file are correct.');
    }
    file_delete($file);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.