function FileManagedTestBase::createFile
Creates and saves a file, asserting that it was saved.
Parameters
string $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.
string $contents: Optional contents to save into the file. If a NULL value is provided an arbitrary string will be used.
string $scheme: Optional string indicating the stream scheme to use. Drupal core includes public, private, and temporary. The public wrapper is the default.
Return value
\Drupal\file\FileInterface File entity.
3 calls to FileManagedTestBase::createFile()
- DownloadTest::checkUrl in core/
modules/ file/ tests/ src/ Functional/ DownloadTest.php  - Download a file from the URL generated by generateString().
 - DownloadTest::doPrivateFileTransferTest in core/
modules/ file/ tests/ src/ Functional/ DownloadTest.php  - Tests the private file transfer system.
 - DownloadTest::testPublicFileTransfer in core/
modules/ file/ tests/ src/ Functional/ DownloadTest.php  - Tests the public file transfer system.
 
File
- 
              core/
modules/ file/ tests/ src/ Functional/ FileManagedTestBase.php, line 150  
Class
- FileManagedTestBase
 - Provides a base class for testing files with the file_test module.
 
Namespace
Drupal\Tests\file\FunctionalCode
public function createFile($filepath = NULL, $contents = NULL, $scheme = NULL) {
  // Don't count hook invocations caused by creating the file.
  \Drupal::state()->set('file_test.count_hook_invocations', FALSE);
  $file = File::create([
    'uri' => $this->createUri($filepath, $contents, $scheme),
    'uid' => 1,
  ]);
  $file->save();
  // Write the record directly rather than using the API so we don't invoke
  // the hooks.
  // Verify that the file was added to the database.
  $this->assertGreaterThan(0, $file->id());
  \Drupal::state()->set('file_test.count_hook_invocations', TRUE);
  return $file;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.