You are here

function ValidateTest::testCallerValidation in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/file/src/Tests/ValidateTest.php \Drupal\file\Tests\ValidateTest::testCallerValidation()

Test that the validators passed into are checked.

File

core/modules/file/src/Tests/ValidateTest.php, line 19
Contains \Drupal\file\Tests\ValidateTest.

Class

ValidateTest
Tests the file_validate() function.

Namespace

Drupal\file\Tests

Code

function testCallerValidation() {
  $file = $this
    ->createFile();

  // Empty validators.
  $this
    ->assertEqual(file_validate($file, array()), array(), 'Validating an empty array works successfully.');
  $this
    ->assertFileHooksCalled(array(
    'validate',
  ));

  // Use the file_test.module's test validator to ensure that passing tests
  // return correctly.
  file_test_reset();
  file_test_set_return('validate', array());
  $passing = array(
    'file_test_validator' => array(
      array(),
    ),
  );
  $this
    ->assertEqual(file_validate($file, $passing), array(), 'Validating passes.');
  $this
    ->assertFileHooksCalled(array(
    'validate',
  ));

  // Now test for failures in validators passed in and by hook_validate.
  file_test_reset();
  file_test_set_return('validate', array(
    'Epic fail',
  ));
  $failing = array(
    'file_test_validator' => array(
      array(
        'Failed',
        'Badly',
      ),
    ),
  );
  $this
    ->assertEqual(file_validate($file, $failing), array(
    'Failed',
    'Badly',
    'Epic fail',
  ), 'Validating returns errors.');
  $this
    ->assertFileHooksCalled(array(
    'validate',
  ));
}