You are here

private function DownloadTest::checkUrl in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/file/src/Tests/DownloadTest.php \Drupal\file\Tests\DownloadTest::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

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

string $directory: A directory, possibly "".

string $filename: A filename.

string $expected_url: The expected URL.

1 call to DownloadTest::checkUrl()
DownloadTest::testFileCreateUrl in core/modules/file/src/Tests/DownloadTest.php
Test file_create_url().

File

core/modules/file/src/Tests/DownloadTest.php, line 151
Contains \Drupal\file\Tests\DownloadTest.

Class

DownloadTest
Tests for download/file transfer functions.

Namespace

Drupal\file\Tests

Code

private function checkUrl($scheme, $directory, $filename, $expected_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
    ->getFileUri());
  $this
    ->assertEqual($url, $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
      ->getFileUri()), 'Contents of the file are correct.');
  }
  $file
    ->delete();
}