Revert "[BUGFIX] Test ifBlank with strlen again" 22/56422/2
authorOliver Hader <oliver@typo3.org>
Thu, 22 Mar 2018 10:24:36 +0000 (11:24 +0100)
committerOliver Hader <oliver.hader@typo3.org>
Thu, 22 Mar 2018 10:46:30 +0000 (11:46 +0100)
This reverts commit c12fe3c17c3d339e9c84e8867ac9f6433e4953ca.

The patch for issue #84434 introduced a different behavior for the
stdWrap.ifBlank feature. The current implementation now ignores
whitespace characters (tab, spaces, new lines, carriage return)
which was not the case in previous TYPO3 versions - as a comparison:

* TYPO3 v7: trim($content) === ''
* TYPO3 v6.2: !strlen(trim($content))
* TYPO3 v.4.5: !strlen(trim($content))
* TYPO3 v4.3: !strlen(trim($content)

Thus, the trim() part is basically missing currently. To avoid this
regression concerning the change of behavior, the change is reverted.

Related: #84434
Resolves: #84520
Releases: master, 8.7
Change-Id: I1fcbd0d249e18d06a96d481bf44a39de0662bed1
Reviewed-on: https://review.typo3.org/56422
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php
typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php

index 92e422c..94267bc 100644 (file)
@@ -2159,7 +2159,7 @@ class ContentObjectRenderer
      */
     public function stdWrap_ifBlank($content = '', $conf = [])
     {
-        if (strlen($content) === 0) {
+        if (trim($content) === '') {
             $content = $conf['ifBlank'];
         }
         return $content;
index 7129219..b0c4607 100644 (file)
@@ -5696,13 +5696,13 @@ class ContentObjectRendererTest extends \TYPO3\TestingFramework\Core\Unit\UnitTe
             'null is blank' => [$alt, null, $conf],
             'false is blank' => [$alt, false, $conf],
             'empty string is blank' => [$alt, '', $conf],
+            'whitespace is blank' => [$alt, TAB . '', $conf],
             // non-blank cases
             'string is not blank' => ['string', 'string', $conf],
             'zero is not blank' => [0, 0, $conf],
             'zero string is not blank' => ['0', '0', $conf],
             'zero float is not blank' => [0.0, 0.0, $conf],
             'true is not blank' => [true, true, $conf],
-            'whitespace is not blank' => ['  ', '  ', $conf],
         ];
     }