TYPO3 CMS  TYPO3_6-2
TypoScriptServiceTest.php
Go to the documentation of this file.
1 <?php
3 
21 
27  return array(
28  'simple typoscript array' => array(
29  'typoScriptSettings' => array(
30  '10.' => array(
31  'value' => 'Hello World!',
32  'foo.' => array(
33  'bar' => 5
34  )
35  ),
36  '10' => 'TEXT'
37  ),
38  'expectedSettings' => array(
39  '10' => array(
40  'value' => 'Hello World!',
41  'foo' => array(
42  'bar' => 5
43  ),
44  '_typoScriptNodeValue' => 'TEXT'
45  )
46  )
47  ),
48  'typoscript with intermediate dots' => array(
49  'typoScriptSettings' => array(
50  '10.' => array(
51  'value' => 'Hello World!',
52  'foo.' => array(
53  'bar' => 5
54  )
55  ),
56  '10' => 'TEXT'
57  ),
58  'expectedSettings' => array(
59  '10' => array(
60  'value' => 'Hello World!',
61  'foo' => array(
62  'bar' => 5
63  ),
64  '_typoScriptNodeValue' => 'TEXT'
65  )
66  )
67  ),
68  'typoscript array with changed order' => array(
69  'typoScriptSettings' => array(
70  '10' => 'TEXT',
71  '10.' => array(
72  'value' => 'Hello World!',
73  'foo.' => array(
74  'bar' => 5
75  )
76  )
77  ),
78  'expectedSettings' => array(
79  '10' => array(
80  'value' => 'Hello World!',
81  'foo' => array(
82  'bar' => 5
83  ),
84  '_typoScriptNodeValue' => 'TEXT'
85  )
86  )
87  ),
88  'nested typoscript array' => array(
89  'typoScriptSettings' => array(
90  '10' => 'COA',
91  '10.' => array(
92  '10' => 'TEXT',
93  '10.' => array(
94  'value' => 'Hello World!',
95  'foo.' => array(
96  'bar' => 5
97  )
98  ),
99  '20' => 'COA',
100  '20.' => array(
101  '10' => 'TEXT',
102  '10.' => array(
103  'value' => 'Test',
104  'wrap' => '[|]'
105  ),
106  '20' => 'TEXT',
107  '20.' => array(
108  'value' => 'Test',
109  'wrap' => '[|]'
110  )
111  ),
112  '30' => 'custom'
113  )
114  ),
115  'expectedSettings' => array(
116  '10' => array(
117  '10' => array(
118  'value' => 'Hello World!',
119  'foo' => array(
120  'bar' => 5
121  ),
122  '_typoScriptNodeValue' => 'TEXT'
123  ),
124  '20' => array(
125  '10' => array(
126  'value' => 'Test',
127  'wrap' => '[|]',
128  '_typoScriptNodeValue' => 'TEXT'
129  ),
130  '20' => array(
131  'value' => 'Test',
132  'wrap' => '[|]',
133  '_typoScriptNodeValue' => 'TEXT'
134  ),
135  '_typoScriptNodeValue' => 'COA'
136  ),
137  '30' => 'custom',
138  '_typoScriptNodeValue' => 'COA'
139  )
140  )
141  ),
142  );
143  }
144 
152  $typoScriptService = new \TYPO3\CMS\Extbase\Service\TypoScriptService();
153  $processedSettings = $typoScriptService->convertTypoScriptArrayToPlainArray($typoScriptSettings);
154  $this->assertEquals($expectedSettings, $processedSettings);
155  }
156 
163  return array(
164  'simple typoscript' => array(
165  'extbaseTS' => array(
166  '10' => array(
167  'value' => 'Hallo',
168  '_typoScriptNodeValue' => 'TEXT'
169  )
170  ),
171  'classic' => array(
172  '10' => 'TEXT',
173  '10.' => array(
174  'value' => 'Hallo'
175  )
176  )
177  ),
178  'typoscript with null value' => array(
179  'extbaseTS' => array(
180  '10' => array(
181  'value' => 'Hallo',
182  '_typoScriptNodeValue' => 'TEXT'
183  ),
184  '20' => NULL
185  ),
186  'classic' => array(
187  '10' => 'TEXT',
188  '10.' => array(
189  'value' => 'Hallo'
190  ),
191  '20' => ''
192  )
193  ),
194  'ts with dots in key' => array(
195  'extbaseTS' => array(
196  '1.0' => array(
197  'value' => 'Hallo',
198  '_typoScriptNodeValue' => 'TEXT'
199  )
200  ),
201  'classic' => array(
202  '1.0' => 'TEXT',
203  '1.0.' => array(
204  'value' => 'Hallo'
205  )
206  )
207  ),
208  'ts with backslashes in key' => array(
209  'extbaseTS' => array(
210  '1\\0\\' => array(
211  'value' => 'Hallo',
212  '_typoScriptNodeValue' => 'TEXT'
213  )
214  ),
215  'classic' => array(
216  '1\\0\\' => 'TEXT',
217  '1\\0\\.' => array(
218  'value' => 'Hallo'
219  )
220  )
221  ),
222  'bigger typoscript' => array(
223  'extbaseTS' => array(
224  '10' => array(
225  '10' => array(
226  'value' => 'Hello World!',
227  'foo' => array(
228  'bar' => 5
229  ),
230  '_typoScriptNodeValue' => 'TEXT'
231  ),
232  '20' => array(
233  '10' => array(
234  'value' => 'Test',
235  'wrap' => '[|]',
236  '_typoScriptNodeValue' => 'TEXT'
237  ),
238  '20' => array(
239  'value' => 'Test',
240  'wrap' => '[|]',
241  '_typoScriptNodeValue' => 'TEXT'
242  ),
243  '_typoScriptNodeValue' => 'COA'
244  ),
245  '_typoScriptNodeValue' => 'COA'
246  )
247  ),
248  'classic' => array(
249  '10' => 'COA',
250  '10.' => array(
251  '10' => 'TEXT',
252  '10.' => array(
253  'value' => 'Hello World!',
254  'foo.' => array(
255  'bar' => 5
256  )
257  ),
258  '20' => 'COA',
259  '20.' => array(
260  '10' => 'TEXT',
261  '10.' => array(
262  'value' => 'Test',
263  'wrap' => '[|]'
264  ),
265  '20' => 'TEXT',
266  '20.' => array(
267  'value' => 'Test',
268  'wrap' => '[|]'
269  )
270  )
271  )
272  )
273  ),
274  );
275  }
276 
283  public function convertPlainArrayToTypoScriptArray($extbaseTS, $classic) {
284  $typoScriptService = new \TYPO3\CMS\Extbase\Service\TypoScriptService();
285  $converted = $typoScriptService->convertPlainArrayToTypoScriptArray($extbaseTS);
286  $this->assertEquals($converted, $classic);
287  }
288 }
convertTypoScriptArrayToPlainArrayRemovesTrailingDotsWithChangedOrderInTheTypoScriptArray($typoScriptSettings, $expectedSettings)