[SECURITY] Mitigate phar stream wrapper
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Tests / Unit / Database / SoftReferenceIndexTest.php
1 <?php
2 declare(strict_types = 1);
3 namespace TYPO3\CMS\Core\Tests\Unit\Database;
4
5 /*
6 * This file is part of the TYPO3 CMS project.
7 *
8 * It is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License, either version 2
10 * of the License, or any later version.
11 *
12 * For the full copyright and license information, please read the
13 * LICENSE.txt file that was distributed with this source code.
14 *
15 * The TYPO3 project - inspiring people to share!
16 */
17
18 use TYPO3\CMS\Core\Database\SoftReferenceIndex;
19 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
20
21 /**
22 * Test case
23 */
24 class SoftReferenceIndexTest extends UnitTestCase
25 {
26 /**
27 * @return array
28 */
29 public function getTypoLinkPartsThrowExceptionWithPharReferencesDataProvider(): array
30 {
31 return [
32 'URL encoded local' => [
33 'phar%3a//some-file.jpg',
34 ],
35 'URL encoded absolute' => [
36 'phar%3a///path/some-file.jpg',
37 ],
38 'not URL encoded local' => [
39 'phar://some-file.jpg',
40 ],
41 'not URL encoded absolute' => [
42 'phar:///path/some-file.jpg',
43 ],
44 ];
45 }
46
47 /**
48 * @test
49 * @dataProvider getTypoLinkPartsThrowExceptionWithPharReferencesDataProvider
50 */
51 public function getTypoLinkPartsThrowExceptionWithPharReferences(string $pharUrl)
52 {
53 $this->expectException(\RuntimeException::class);
54 $this->expectExceptionCode(1530030672);
55 (new SoftReferenceIndex())->getTypoLinkParts($pharUrl);
56 }
57 }