From 315fbe282f1b0a59a00e335a0efa8443fe7fbe7b Mon Sep 17 00:00:00 2001
From: Georg Ringer <georg.ringer@gmail.com>
Date: Tue, 21 Jun 2016 22:21:00 +0200
Subject: [PATCH] [BUGFIX] Fix wrong hideTable check in SuggestWizard

Due to a regression in #67593 a wrong check is used which needs to be
fixed.

Resolves: #76722
Releases: master, 7.6
Change-Id: I6a0d1a95096c212354a64f66996c85b9789a47e7
Reviewed-on: https://review.typo3.org/48627
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-by: Daniel Goerz <ervaude@gmail.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
---
 .../Classes/Form/Wizard/SuggestWizard.php     |  2 +-
 .../Unit/Form/Wizard/SuggestWizardTest.php    | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/typo3/sysext/backend/Classes/Form/Wizard/SuggestWizard.php b/typo3/sysext/backend/Classes/Form/Wizard/SuggestWizard.php
index 2003273d1e16..832ffb5a1246 100644
--- a/typo3/sysext/backend/Classes/Form/Wizard/SuggestWizard.php
+++ b/typo3/sysext/backend/Classes/Form/Wizard/SuggestWizard.php
@@ -209,7 +209,7 @@ class SuggestWizard
      */
     protected function isTableHidden(array $tableConfig)
     {
-        return !$tableConfig['ctrl']['hideTable'];
+        return (bool)$tableConfig['ctrl']['hideTable'];
     }
 
     /**
diff --git a/typo3/sysext/backend/Tests/Unit/Form/Wizard/SuggestWizardTest.php b/typo3/sysext/backend/Tests/Unit/Form/Wizard/SuggestWizardTest.php
index 83d6815572da..574b2cfd70cc 100644
--- a/typo3/sysext/backend/Tests/Unit/Form/Wizard/SuggestWizardTest.php
+++ b/typo3/sysext/backend/Tests/Unit/Form/Wizard/SuggestWizardTest.php
@@ -148,4 +148,23 @@ class SuggestWizardTest extends UnitTestCase
 
         $subject->_call('getFieldConfiguration', $parts, $dataStructure);
     }
+
+    /**
+     * @test
+     * @dataProvider isTableHiddenIsProperlyRetrievedDataProvider
+     */
+    public function isTableHiddenIsProperlyRetrieved($expected, $array) {
+        $subject = $this->getAccessibleMock(SuggestWizard::class, array('dummy'), array(), '', false);
+        $this->assertEquals($expected, $subject->_call('isTableHidden', $array));
+    }
+
+    public function isTableHiddenIsProperlyRetrievedDataProvider() {
+        return [
+          'notSetValue' => [false, array('ctrl' => array('hideTable' => null))],
+          'true' => [true, array('ctrl' => array('hideTable' => true))],
+          'false' => [false, array('ctrl' => array('hideTable' => false))],
+          'string with true' => [true, array('ctrl' => array('hideTable' => '1'))],
+          'string with false' => [false, array('ctrl' => array('hideTable' => '0'))],
+        ];
+    }
 }
-- 
GitLab