‪TYPO3CMS  ‪main
AfterTypoLinkDecodedEventTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
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 
19 
20 use PHPUnit\Framework\Attributes\Test;
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
23 
24 final class ‪AfterTypoLinkDecodedEventTest extends UnitTestCase
25 {
26  #[Test]
27  public function ‪gettersReturnInitializedObjects(): void
28  {
29  $typoLink = 'https://example.com _blank some-class &foo=bar';
30  $typoLinkParts = [
31  'url' => 'https://example.com',
32  'target' => '_blank',
33  'class' => 'some-class',
34  'title' => '',
35  'additionalParams' => '&foo=bar',
36  ];
37  $delimiter = '*';
38  $emptyValueSymbol = '-';
39 
40  $event = new ‪AfterTypoLinkDecodedEvent(
41  typoLinkParts: $typoLinkParts,
42  typoLink: $typoLink,
43  delimiter: $delimiter,
44  emptyValueSymbol: $emptyValueSymbol
45  );
46 
47  self::assertEquals($typoLinkParts, $event->getTypoLinkParts());
48  self::assertEquals($typoLink, $event->getTypoLink());
49  self::assertEquals($delimiter, $event->getDelimiter());
50  self::assertEquals($emptyValueSymbol, $event->getEmptyValueSymbol());
51  }
52 
53  #[Test]
54  public function ‪setOverwritesTypoLinkParts(): void
55  {
56  $typoLink = 'https://example.com _blank some-class &foo=bar';
57  $typoLinkParts = [
58  'url' => 'https://example.com',
59  'target' => '_blank',
60  'class' => 'some-class',
61  'title' => '',
62  'additionalParams' => '&foo=bar',
63  ];
64  $delimiter = '*';
65  $emptyValueSymbol = '-';
66 
67  $event = new ‪AfterTypoLinkDecodedEvent(
68  typoLinkParts: $typoLinkParts,
69  typoLink: $typoLink,
70  delimiter: $delimiter,
71  emptyValueSymbol: $emptyValueSymbol
72  );
73 
74  self::assertEquals($typoLinkParts, $event->getTypoLinkParts());
75  self::assertEquals($typoLink, $event->getTypoLink());
76  self::assertEquals($delimiter, $event->getDelimiter());
77  self::assertEquals($emptyValueSymbol, $event->getEmptyValueSymbol());
78 
79  $modifiedTypoLinkParts = array_replace($event->getTypoLinkParts(), ['class' => 'new-class', 'foo' => 'bar']);
80 
81  $event->setTypoLinkParts($modifiedTypoLinkParts);
82 
83  self::assertEquals($modifiedTypoLinkParts, $event->getTypoLinkParts());
84  }
85 }