2 namespace TYPO3\CMS\Backend\Tests\Unit\Form;
18 use TYPO3\CMS\Core\Tests\UnitTestCase;
29 $dbProphecy = $this->prophesize(DatabaseConnection::class);
30 $GLOBALS[
'TYPO3_DB'] = $dbProphecy->reveal();
39 'simple 1-level table structure' => array(
40 'data-pageId-childTable',
43 'table' =>
'childTable',
48 'simple 1-level table-uid structure' => array(
49 'data-pageId-childTable-childUid',
52 'table' =>
'childTable',
58 'simple 1-level table-uid-field structure' => array(
59 'data-pageId-childTable-childUid-childField',
62 'table' =>
'childTable',
64 'field' =>
'childField',
69 'simple 2-level table structure' => array(
70 'data-pageId-parentTable-parentUid-parentField-childTable',
74 'table' =>
'parentTable',
76 'field' =>
'parentField',
78 'localizationMode' =>
false,
82 'table' =>
'childTable',
86 'form' =>
'data[parentTable][parentUid][parentField]',
87 'object' =>
'data-pageId-parentTable-parentUid-parentField',
90 'simple 2-level table-uid structure' => array(
91 'data-pageId-parentTable-parentUid-parentField-childTable-childUid',
95 'table' =>
'parentTable',
97 'field' =>
'parentField',
99 'localizationMode' =>
false,
103 'table' =>
'childTable',
108 'form' =>
'data[parentTable][parentUid][parentField]',
109 'object' =>
'data-pageId-parentTable-parentUid-parentField',
112 'simple 2-level table-uid-field structure' => array(
113 'data-pageId-parentTable-parentUid-parentField-childTable-childUid-childField',
117 'table' =>
'parentTable',
118 'uid' =>
'parentUid',
119 'field' =>
'parentField',
121 'localizationMode' =>
false,
125 'table' =>
'childTable',
127 'field' =>
'childField',
131 'form' =>
'data[parentTable][parentUid][parentField]',
132 'object' =>
'data-pageId-parentTable-parentUid-parentField',
135 'simple 3-level table structure' => array(
136 'data-pageId-grandParentTable-grandParentUid-grandParentField-parentTable-parentUid-parentField-childTable',
140 'table' =>
'grandParentTable',
141 'uid' =>
'grandParentUid',
142 'field' =>
'grandParentField',
144 'localizationMode' =>
false,
147 'table' =>
'parentTable',
148 'uid' =>
'parentUid',
149 'field' =>
'parentField',
151 'localizationMode' =>
false,
155 'table' =>
'childTable',
159 'form' =>
'data[parentTable][parentUid][parentField]',
160 'object' =>
'data-pageId-grandParentTable-grandParentUid-grandParentField-parentTable-parentUid-parentField',
163 'simple 3-level table-uid structure' => array(
164 'data-pageId-grandParentTable-grandParentUid-grandParentField-parentTable-parentUid-parentField-childTable-childUid',
168 'table' =>
'grandParentTable',
169 'uid' =>
'grandParentUid',
170 'field' =>
'grandParentField',
172 'localizationMode' =>
false,
175 'table' =>
'parentTable',
176 'uid' =>
'parentUid',
177 'field' =>
'parentField',
179 'localizationMode' =>
false,
183 'table' =>
'childTable',
188 'form' =>
'data[parentTable][parentUid][parentField]',
189 'object' =>
'data-pageId-grandParentTable-grandParentUid-grandParentField-parentTable-parentUid-parentField',
192 'simple 3-level table-uid-field structure' => array(
193 'data-pageId-grandParentTable-grandParentUid-grandParentField-parentTable-parentUid-parentField-childTable-childUid-childField',
197 'table' =>
'grandParentTable',
198 'uid' =>
'grandParentUid',
199 'field' =>
'grandParentField',
201 'localizationMode' =>
false,
204 'table' =>
'parentTable',
205 'uid' =>
'parentUid',
206 'field' =>
'parentField',
208 'localizationMode' =>
false,
212 'table' =>
'childTable',
214 'field' =>
'childField',
218 'form' =>
'data[parentTable][parentUid][parentField]',
219 'object' =>
'data-pageId-grandParentTable-grandParentUid-grandParentField-parentTable-parentUid-parentField',
222 'flexform 3-level table-uid structure' => array(
223 'data-pageId-grandParentTable-grandParentUid-grandParentField---data---sDEF---lDEF---grandParentFlexForm---vDEF-parentTable-parentUid-parentField-childTable-childUid',
227 'table' =>
'grandParentTable',
228 'uid' =>
'grandParentUid',
229 'field' =>
'grandParentField',
231 'data',
'sDEF',
'lDEF',
'grandParentFlexForm',
'vDEF',
234 'localizationMode' =>
false,
237 'table' =>
'parentTable',
238 'uid' =>
'parentUid',
239 'field' =>
'parentField',
241 'localizationMode' =>
false,
245 'table' =>
'childTable',
250 'form' =>
'data[parentTable][parentUid][parentField]',
251 'object' =>
'data-pageId-grandParentTable-grandParentUid-grandParentField---data---sDEF---lDEF---grandParentFlexForm---vDEF-parentTable-parentUid-parentField',
261 public function initializeByParsingDomObjectIdStringParsesStructureString($string, array $expectedInlineStructure, array $_)
264 $subject = $this->getAccessibleMock(InlineStackProcessor::class, array(
'dummy'));
265 $subject->initializeByParsingDomObjectIdString($string);
266 $structure = $subject->_get(
'inlineStructure');
267 $this->assertEquals($expectedInlineStructure, $structure);
274 public function getCurrentStructureFormPrefixReturnsExceptedStringAfterInitializationByStructureString($string, array $_, array $expectedFormName)
277 $subject =
new InlineStackProcessor;
278 $subject->initializeByParsingDomObjectIdString($string);
279 $this->assertEquals($expectedFormName[
'form'], $subject->getCurrentStructureFormPrefix());
286 public function getCurrentStructureDomObjectIdPrefixReturnsExceptedStringAfterInitializationByStructureString($string, array $_, array $expectedFormName)
289 $subject =
new InlineStackProcessor;
290 $subject->initializeByParsingDomObjectIdString($string);
291 $this->assertEquals($expectedFormName[
'object'], $subject->getCurrentStructureDomObjectIdPrefix(
'pageId'));