[BUGFIX] Enhancing StripNewLinesFilter for Windows line breaks 64/36564/3
authorRonny Vorpahl <vorpahl@artplan21.de>
Sun, 1 Feb 2015 11:20:58 +0000 (12:20 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Sun, 1 Feb 2015 12:51:34 +0000 (13:51 +0100)
Currently the filter does not handle Windows line breaks.
This results in unfiltered Windows line breaks.
This patch adds Windows line break support to the filter function.
Furthermore the unit tests for the filter are extended to check
Windows line breaks as well.

Resolves: #64710
Releases: master,6.2
Change-Id: I503657daaf693f1a28589bc7d8a9321ebae54e61
Reviewed-on: http://review.typo3.org/36564
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Nicole Cordes <typo3@cordes.co>
Tested-by: Nicole Cordes <typo3@cordes.co>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/form/Classes/Filter/StripNewLinesFilter.php
typo3/sysext/form/Tests/Unit/Filter/StripNewLinesFilterTest.php

index cfd71a3..3b2c00a 100644 (file)
@@ -28,7 +28,7 @@ class StripNewLinesFilter implements \TYPO3\CMS\Form\Filter\FilterInterface {
         * @return string
         */
        public function filter($value) {
-               return str_replace(array(LF, CR), ' ', (string)$value);
+               return str_replace(array(CRLF, LF, CR), ' ', (string)$value);
        }
 
 }
index a5c6f04..43df34b 100644 (file)
@@ -35,12 +35,28 @@ class StripNewLinesFilterTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 
        public function dataProviderWithNewlines() {
                return array(
+                       'some\rtext' => array("some\rtext", 'some text'),
                        'some\ntext' => array("some\ntext", 'some text'),
+                       'some\r\ntext' => array("some\r\ntext", 'some text'),
+                       'somechr(13)text' => array('some' . chr(13) . 'text', 'some text'),
                        'somechr(10)text' => array('some' . chr(10) . 'text', 'some text'),
+                       'somechr(13)chr(10)text' => array('some' . chr(13) . chr(10) . 'text', 'some text'),
+                       'someCRtext' => array('some' . CR . 'text', 'some text'),
+                       'someLFtext' => array('some' . LF . 'text', 'some text'),
+                       'someCRLFtext' => array('some' . CRLF . 'text', 'some text'),
                        'some^Mtext' => array('some
 text', 'some text'),
+                       'trailing newline\r' => array("trailing newline\n", 'trailing newline '),
+                       'trailing newline\n' => array("trailing newline\r", 'trailing newline '),
+                       'trailing newline\r\n' => array("trailing newline\r\n", 'trailing newline '),
+                       'trailing newlinechr(13)' => array('trailing newline' . chr(13), 'trailing newline '),
+                       'trailing newlinechr(10)' => array('trailing newline' . chr(10), 'trailing newline '),
+                       'trailing newlinechr(13)chr(10)' => array('trailing newline' . chr(13) . chr(10), 'trailing newline '),
+                       'trailing newlineCR' => array('trailing newline' . CR, 'trailing newline '),
+                       'trailing newlineLF' => array('trailing newline' . LF, 'trailing newline '),
+                       'trailing newlineCRLF' => array('trailing newline' . CRLF, 'trailing newline '),
                        'trailing newline^M' => array('trailing newline
-', 'trailing newline '),
+', 'trailing newline ')
                );
        }