‪TYPO3CMS  ‪main
BeforeTypoLinkEncodedEventTest.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 ‪BeforeTypoLinkEncodedEventTest extends UnitTestCase
25 {
26  #[Test]
27  public function ‪gettersReturnInitializedObjects(): void
28  {
29  $parameters = [
30  'url' => 'https://example.com',
31  'target' => '_blank',
32  'class' => 'some-class',
33  'title' => '',
34  'additionalParams' => '&foo=bar',
35  ];
36  $typoLinkParts = [
37  'additionalParams' => '&foo=bar',
38  'title' => '',
39  'class' => 'some-class',
40  'target' => '_blank',
41  'url' => 'https://example.com',
42  ];
43  $delimiter = '*';
44  $emptyValueSymbol = '-';
45 
46  $event = new ‪BeforeTypoLinkEncodedEvent(
47  parameters: $parameters,
48  typoLinkParts: $typoLinkParts,
49  delimiter: $delimiter,
50  emptyValueSymbol: $emptyValueSymbol
51  );
52 
53  self::assertEquals($parameters, $event->getParameters());
54  self::assertEquals($typoLinkParts, $event->getTypoLinkParts());
55  self::assertEquals($delimiter, $event->getDelimiter());
56  self::assertEquals($emptyValueSymbol, $event->getEmptyValueSymbol());
57  }
58 
59  #[Test]
60  public function ‪setOverwritesParameters(): void
61  {
62  $parameters = [
63  'url' => 'https://example.com',
64  'target' => '_blank',
65  'class' => 'some-class',
66  'title' => '',
67  'additionalParams' => '&foo=bar',
68  ];
69  $typoLinkParts = [
70  'additionalParams' => '&foo=bar',
71  'title' => '',
72  'class' => 'some-class',
73  'target' => '_blank',
74  'url' => 'https://example.com',
75  ];
76  $delimiter = '*';
77  $emptyValueSymbol = '-';
78 
79  $event = new ‪BeforeTypoLinkEncodedEvent(
80  parameters: $parameters,
81  typoLinkParts: $typoLinkParts,
82  delimiter: $delimiter,
83  emptyValueSymbol: $emptyValueSymbol
84  );
85 
86  self::assertEquals($parameters, $event->getParameters());
87  self::assertEquals($typoLinkParts, $event->getTypoLinkParts());
88  self::assertEquals($delimiter, $event->getDelimiter());
89  self::assertEquals($emptyValueSymbol, $event->getEmptyValueSymbol());
90 
91  $modifiedParameters = array_replace($event->getParameters(), ['class' => 'new-class', 'foo' => 'bar']);
92 
93  $event->setParameters($modifiedParameters);
94 
95  self::assertEquals($modifiedParameters, $event->getParameters());
96  }
97 }