function ScanDirectoryTest::testOptionCallback

Check that the callback function is called correctly.

File

drupal/core/modules/system/lib/Drupal/system/Tests/File/ScanDirectoryTest.php, line 63
Definition of Drupal\system\Tests\File\ScanDirectoryTest.

Class

ScanDirectoryTest
Tests the file_scan_directory() function.

Namespace

Drupal\system\Tests\File

Code

function testOptionCallback() {
  drupal_load('module', 'file_test');

  // When nothing is matched nothing should be passed to the callback.
  $all_files = file_scan_directory($this->path, '/^NONEXISTINGFILENAME/', array(
    'callback' => 'file_test_file_scan_callback',
  ));
  $this
    ->assertEqual(0, count($all_files), 'No files were found.');
  $results = file_test_file_scan_callback();
  file_test_file_scan_callback_reset();
  $this
    ->assertEqual(0, count($results), 'No files were passed to the callback.');

  // Grab a listing of all the JavaSscript files and check that they're
  // passed to the callback.
  $all_files = file_scan_directory($this->path, '/^javascript-/', array(
    'callback' => 'file_test_file_scan_callback',
  ));
  $this
    ->assertEqual(2, count($all_files), 'Found two, expected javascript files.');
  $results = file_test_file_scan_callback();
  file_test_file_scan_callback_reset();
  $this
    ->assertEqual(2, count($results), 'Files were passed to the callback.');
}