0f348d69bd1c2c73655b61dee13f28659666bfe3
[yaffs-website] / web / core / modules / file / tests / src / Kernel / ValidateTest.php
1 <?php
2
3 namespace Drupal\Tests\file\Kernel;
4
5 /**
6  * Tests the file_validate() function.
7  *
8  * @group file
9  */
10 class ValidateTest extends FileManagedUnitTestBase {
11   /**
12    * Test that the validators passed into are checked.
13    */
14   public function testCallerValidation() {
15     $file = $this->createFile();
16
17     // Empty validators.
18     $this->assertEqual(file_validate($file, []), [], 'Validating an empty array works successfully.');
19     $this->assertFileHooksCalled(['validate']);
20
21     // Use the file_test.module's test validator to ensure that passing tests
22     // return correctly.
23     file_test_reset();
24     file_test_set_return('validate', []);
25     $passing = ['file_test_validator' => [[]]];
26     $this->assertEqual(file_validate($file, $passing), [], 'Validating passes.');
27     $this->assertFileHooksCalled(['validate']);
28
29     // Now test for failures in validators passed in and by hook_validate.
30     file_test_reset();
31     file_test_set_return('validate', ['Epic fail']);
32     $failing = ['file_test_validator' => [['Failed', 'Badly']]];
33     $this->assertEqual(file_validate($file, $failing), ['Failed', 'Badly', 'Epic fail'], 'Validating returns errors.');
34     $this->assertFileHooksCalled(['validate']);
35   }
36
37 }