TYPO3 API  SVNRelease
TextValidatorTest.php
Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
00006 *  All rights reserved
00007 *
00008 *  This class is a backport of the corresponding class of FLOW3.
00009 *  All credits go to the v5 team.
00010 *
00011 *  This script is part of the TYPO3 project. The TYPO3 project is
00012 *  free software; you can redistribute it and/or modify
00013 *  it under the terms of the GNU General Public License as published by
00014 *  the Free Software Foundation; either version 2 of the License, or
00015 *  (at your option) any later version.
00016 *
00017 *  The GNU General Public License can be found at
00018 *  http://www.gnu.org/copyleft/gpl.html.
00019 *
00020 *  This script is distributed in the hope that it will be useful,
00021 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 *  GNU General Public License for more details.
00024 *
00025 *  This copyright notice MUST APPEAR in all copies of the script!
00026 ***************************************************************/
00027 
00028 /**
00029  * Testcase for the text validator
00030  *
00031  * @package Extbase
00032  * @subpackage extbase
00033  * @version $Id: TextValidator_testcase.php 2428 2010-07-20 10:18:51Z jocrau $
00034  */
00035 class Tx_Extbase_Tests_Unit_Validation_Validator_TextValidatorTest extends Tx_Extbase_Tests_Unit_BaseTestCase {
00036 
00037     /**
00038      * @test
00039      */
00040     public function textValidatorReturnsTrueForASimpleString() {
00041         $textValidator = new Tx_Extbase_Validation_Validator_TextValidator();
00042         $this->assertTrue($textValidator->isValid('this is a very simple string'));
00043     }
00044 
00045     /**
00046      * @test
00047      */
00048     public function textValidatorAllowsTheNewLineCharacter() {
00049         $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.";
00050         $textValidator = $this->getMock('Tx_Extbase_Validation_Validator_TextValidator', array('addError'), array(), '', FALSE);
00051         $this->assertTrue($textValidator->isValid($sampleText));
00052     }
00053 
00054     /**
00055      * @test
00056      */
00057     public function textValidatorAllowsCommonSpecialCharacters() {
00058         $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'.";
00059         $textValidator = $this->getMock('Tx_Extbase_Validation_Validator_TextValidator', array('addError'), array(), '', FALSE);
00060         $this->assertTrue($textValidator->isValid($sampleText));
00061     }
00062 
00063     /**
00064      * @test
00065      */
00066     public function textValidatorReturnsFalseForAStringWithHtml() {
00067         $textValidator = $this->getMock('Tx_Extbase_Validation_Validator_TextValidator', array('addError'), array(), '', FALSE);
00068         $this->assertFalse($textValidator->isValid('<span style="color: #BBBBBB;">a nice text</span>'));
00069     }
00070 
00071     /**
00072      * @test
00073      */
00074     public function textValidatorReturnsFalseForAStringWithPercentEncodedHtml() {
00075         $this->markTestIncomplete('The text validator currently allows percent encoded HTML!');
00076         $textValidator = $this->getMock('Tx_Extbase_Validation_Validator_TextValidator', array('addError'), array(), '', FALSE);
00077         $this->assertFalse($textValidator->isValid('%3cspan style="color: #BBBBBB;"%3ea nice text%3c/span%3e'));
00078     }
00079 
00080     /**
00081      * @test
00082      */
00083     public function textValidatorCreatesTheCorrectErrorIfTheSubjectContainsHtmlEntities() {
00084         $textValidator = $this->getMock('Tx_Extbase_Validation_Validator_TextValidator', array('addError'), array(), '', FALSE);
00085         $textValidator->expects($this->once())->method('addError')->with('The given subject was not a valid text (e.g. contained XML tags).', 1221565786);
00086         $textValidator->isValid('<span style="color: #BBBBBB;">a nice text</span>');
00087     }
00088 }
00089 
00090 ?>