function FileManagedUnitTestBase::assertFileHooksCalled

Same name and namespace in other branches
  1. 10 core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php \Drupal\Tests\file\Kernel\FileManagedUnitTestBase::assertFileHooksCalled()
  2. 11.x core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php \Drupal\Tests\file\Kernel\FileManagedUnitTestBase::assertFileHooksCalled()
  3. 9 core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php \Drupal\Tests\file\Kernel\FileManagedUnitTestBase::assertFileHooksCalled()

Assert that all of the specified hook_file_* hooks were called once, other values result in failure.

Parameters

array $expected: Array with string containing with the hook name, e.g. 'load', 'save', 'insert', etc.

9 calls to FileManagedUnitTestBase::assertFileHooksCalled()
SaveDataTest::testExistingError in core/modules/file/tests/src/Kernel/SaveDataTest.php
Test that file_save_data() fails overwriting an existing file.
SaveDataTest::testExistingRename in core/modules/file/tests/src/Kernel/SaveDataTest.php
Test file_save_data() when renaming around an existing file.
SaveDataTest::testExistingReplace in core/modules/file/tests/src/Kernel/SaveDataTest.php
Test file_save_data() when replacing an existing file.
SaveDataTest::testWithFilename in core/modules/file/tests/src/Kernel/SaveDataTest.php
Test the file_save_data() function when a filename is provided.
SaveDataTest::testWithoutFilename in core/modules/file/tests/src/Kernel/SaveDataTest.php
Test the file_save_data() function when no filename is provided.

... See full list

File

core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php, line 50

Class

FileManagedUnitTestBase
Base class for file unit tests that use the file_test module to test uploads and hooks.

Namespace

Drupal\Tests\file\Kernel

Code

public function assertFileHooksCalled($expected) {
  \Drupal::state()->resetCache();
  // Determine which hooks were called.
  $actual = array_keys(array_filter(file_test_get_all_calls()));
  // Determine if there were any expected that were not called.
  $uncalled = array_diff($expected, $actual);
  if (count($uncalled)) {
    $this->assertTrue(FALSE, new FormattableMarkup('Expected hooks %expected to be called but %uncalled was not called.', [
      '%expected' => implode(', ', $expected),
      '%uncalled' => implode(', ', $uncalled),
    ]));
  }
  else {
    $this->assertTrue(TRUE, new FormattableMarkup('All the expected hooks were called: %expected', [
      '%expected' => empty($expected) ? '(none)' : implode(', ', $expected),
    ]));
  }
  // Determine if there were any unexpected calls.
  $unexpected = array_diff($actual, $expected);
  if (count($unexpected)) {
    $this->assertTrue(FALSE, new FormattableMarkup('Unexpected hooks were called: %unexpected.', [
      '%unexpected' => empty($unexpected) ? '(none)' : implode(', ', $unexpected),
    ]));
  }
  else {
    $this->assertTrue(TRUE, 'No unexpected hooks were called.');
  }
}

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