[TASK] Use name-resolution instead of strings where possible: 3
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Tests / Unit / Validation / Validator / TextValidatorTest.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator;
3
4 /* *
5 * This script belongs to the Extbase framework. *
6 * *
7 * It is free software; you can redistribute it and/or modify it under *
8 * the terms of the GNU Lesser General Public License as published by the *
9 * Free Software Foundation, either version 3 of the License, or (at your *
10 * option) any later version. *
11 * *
12 * This script is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14 * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15 * General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License along with the script. *
19 * If not, see http://www.gnu.org/licenses/lgpl.html *
20 * *
21 * The TYPO3 project - inspiring people to share! *
22 * */
23
24 /**
25 * Testcase for the text validator
26 *
27 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
28 */
29 class TextValidatorTest extends \TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator\AbstractValidatorTestcase {
30
31 protected $validatorClassName = \TYPO3\CMS\Extbase\Validation\Validator\TextValidator::class;
32
33 public function setup() {
34 $this->validator = $this->getMock($this->validatorClassName, array('translateErrorMessage'));
35 }
36
37 /**
38 * @test
39 * @author Andreas Förthner <andreas.foerthner@netlogix.de>
40 */
41 public function textValidatorReturnsNoErrorForASimpleString() {
42 $this->assertFalse($this->validator->validate('this is a very simple string')->hasErrors());
43 }
44
45 /**
46 * @test
47 * @author Robert Lemke <robert@typo3.org>
48 */
49 public function textValidatorAllowsTheNewLineCharacter() {
50 $sampleText = 'Ierd Frot uechter mä get, Kirmesdag Milliounen all en, sinn main Stréi mä och. nVu dan durch jéngt gréng, ze rou Monn voll stolz. nKe kille Minutt d\'Kirmes net. Hir Wand Lann Gaas da, wär hu Heck Gart zënter, Welt Ronn grousse der ke. Wou fond eraus Wisen am. Hu dénen d\'Gaassen eng, eng am virun geplot d\'Lëtzebuerger, get botze rëscht Blieder si. Dat Dauschen schéinste Milliounen fu. Ze riede méngem Keppchen déi, si gét fergiess erwaacht, räich jéngt duerch en nun. Gëtt Gaas d\'Vullen hie hu, laacht Grénge der dé. Gemaacht gehéiert da aus, gutt gudden d\'wäiss mat wa.';
51 $this->assertFalse($this->validator->validate($sampleText)->hasErrors());
52 }
53
54 /**
55 * @test
56 * @author Robert Lemke <robert@typo3.org>
57 */
58 public function textValidatorAllowsCommonSpecialCharacters() {
59 $sampleText = '3% of most people tend to use semikolae; we need to check & allow that. And hashes (#) are not evil either, nor is the sign called \'quote\'.';
60 $this->assertFalse($this->validator->validate($sampleText)->hasErrors());
61 }
62
63 /**
64 * @test
65 * @author Andreas Förthner <andreas.foerthner@netlogix.de>
66 */
67 public function textValidatorReturnsErrorForAStringWithHtml() {
68 $this->assertTrue($this->validator->validate('<span style="color: #BBBBBB;">a nice text</span>')->hasErrors());
69 }
70
71 /**
72 * @test
73 * @author Andreas Förthner <andreas.foerthner@netlogix.de>
74 */
75 public function textValidatorCreatesTheCorrectErrorIfTheSubjectContainsHtmlEntities() {
76 // we only test for the error code, after the translation Method for message is mocked anyway
77 $expected = array(new \TYPO3\CMS\Extbase\Validation\Error(NULL, 1221565786));
78 $this->assertEquals($expected, $this->validator->validate('<span style="color: #BBBBBB;">a nice text</span>')->getErrors());
79 }
80 }