39 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'defaultCategorizedTables'] =
'pages';
40 $GLOBALS[
'TCA'][
'pages'][
'columns'] = array();
41 $this->subject = new \TYPO3\CMS\Core\Category\CategoryRegistry();
42 $this->tables = array(
46 foreach ($this->tables as $tableName) {
63 $this->assertTrue($this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories'));
70 $this->assertTrue($this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories'));
71 $this->assertFalse($this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories'));
80 $this->subject->add(
'test_extension_a',
'',
'categories');
89 $this->subject->add(
'',
'foo',
'categories');
98 $this->subject->add(
'test_extension_a', array(),
'categories');
107 $this->subject->add(array(),
'foo',
'categories');
114 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories');
115 $this->subject->add(
'test_extension_a', $this->tables[
'second'],
'categories');
116 $this->subject->applyTcaForPreRegisteredTables();
118 $this->assertArrayHasKey(
'categories',
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns']);
119 $this->assertArrayHasKey(
'categories',
$GLOBALS[
'TCA'][$this->tables[
'second']][
'columns']);
126 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories');
127 $this->subject->add(
'test_extension_b', $this->tables[
'second'],
'categories');
128 $this->subject->applyTcaForPreRegisteredTables();
130 $this->assertArrayHasKey(
'categories',
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns']);
131 $this->assertArrayHasKey(
'categories',
$GLOBALS[
'TCA'][$this->tables[
'second']][
'columns']);
138 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories1');
139 $this->subject->add(
'test_extension_b', $this->tables[
'first'],
'categories2');
140 $this->subject->applyTcaForPreRegisteredTables();
142 $this->assertArrayHasKey(
'categories1',
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns']);
143 $this->assertArrayHasKey(
'categories2',
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns']);
150 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories1');
151 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories2');
152 $this->subject->applyTcaForPreRegisteredTables();
154 $this->assertArrayHasKey(
'categories1',
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns']);
155 $this->assertArrayHasKey(
'categories2',
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns']);
162 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories');
163 $this->subject->add(
'test_extension_b', $this->tables[
'second'],
'categories');
164 $this->subject->add(
'test_extension_c', $this->tables[
'first'],
'categories');
165 $definitions = $this->subject->getDatabaseTableDefinitions();
167 preg_match_all(
'#CREATE TABLE\\s*([^ (]+)\\s*\\(\\s*([^ )]+)\\s+int\\(11\\)[^)]+\\);#mis', $definitions, $matches);
168 $this->assertEquals(2, count($matches[0]));
169 $this->assertEquals($matches[1][0], $this->tables[
'first']);
170 $this->assertEquals($matches[2][0],
'categories');
171 $this->assertEquals($matches[1][1], $this->tables[
'second']);
172 $this->assertEquals($matches[2][1],
'categories');
179 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories');
180 $this->subject->add(
'test_extension_b', $this->tables[
'second'],
'categories');
181 $definitions = $this->subject->getDatabaseTableDefinition(
'test_extension_a');
183 preg_match_all(
'#CREATE TABLE\\s*([^ (]+)\\s*\\(\\s*([^ )]+)\\s+int\\(11\\)[^)]+\\);#mis', $definitions, $matches);
184 $this->assertEquals(1, count($matches[0]));
185 $this->assertEquals($matches[1][0], $this->tables[
'first']);
186 $this->assertEquals($matches[2][0],
'categories');
193 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'defaultCategorizedTables'] = $this->tables[
'first'] .
',' . $this->tables[
'second'];
194 $this->subject->applyTcaForPreRegisteredTables();
196 $this->assertArrayHasKey(
'categories',
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns']);
197 $this->assertArrayHasKey(
'categories',
$GLOBALS[
'TCA'][$this->tables[
'second']][
'columns']);
204 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories');
205 $this->subject->add(
'test_extension_b', $this->tables[
'second'],
'categories');
206 $this->subject->applyTcaForPreRegisteredTables();
208 $this->assertNotEmpty(
$GLOBALS[
'TCA'][$this->tables[
'first']][
'columns'][
'categories']);
209 $this->assertNotEmpty(
$GLOBALS[
'TCA'][$this->tables[
'second']][
'columns'][
'categories']);
216 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories');
217 $this->assertTrue($this->subject->isRegistered($this->tables[
'first'],
'categories'));
224 $this->subject->add(
'test_extension_a', $this->tables[
'first'],
'categories');
225 $this->assertFalse($this->subject->isRegistered($this->tables[
'first'],
'_not_registered'));
226 $this->assertFalse($this->subject->isRegistered($this->tables[
'second'],
'categories'));
233 $this->subject->add(
'text_extension_a', $this->tables[
'first']);
234 $this->subject->applyTcaForPreRegisteredTables();
236 foreach(
$GLOBALS[
'TCA'][$this->tables[
'first']][
'types'] as $typeConfig) {
237 $this->assertContains(
'--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category', $typeConfig[
'showitem']);
245 $this->subject->add(
'text_extension_a', $this->tables[
'first'],
'categories', array(
'fieldList' =>
'categories'));
246 $this->subject->applyTcaForPreRegisteredTables();
248 foreach(
$GLOBALS[
'TCA'][$this->tables[
'first']][
'types'] as $typeConfig) {
249 $this->assertNotContains(
'--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category', $typeConfig[
'showitem']);
257 $this->subject->add(
'text_extension_a', $this->tables[
'first'],
'categories1');
258 $this->subject->add(
'text_extension_a', $this->tables[
'first'],
'categories2');
259 $this->subject->applyTcaForPreRegisteredTables();
261 foreach(
$GLOBALS[
'TCA'][$this->tables[
'first']][
'types'] as $typeConfig) {
263 1, substr_count($typeConfig[
'showitem'],
'--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category')
areDefaultCategorizedTablesLoaded()
areElementsOfDifferentExtensionsRegistered()
isRegisteredReturnsFalseIfElementIsNotRegistered()
areElementsOfSameExtensionOnSameTableRegistered()
tabIsNotAddedForElementIfFieldListIsSpecified()
doesAddReturnTrueOnDefinedTable()
areElementsOfDifferentExtensionsOnSameTableRegistered()
doesAddThrowExceptionOnEmptyExtensionKey()
doesAddThrowExceptionOnInvalidTablename()
areDatabaseDefinitionsOfParticularExtensionAvailable()
doesAddThrowExceptionOnEmptyTablename()
doesAddThrowExceptionOnInvalidExtensionKey()
isRegisteredReturnsTrueIfElementIsAlreadyRegistered()
doesAddReturnTrueOnDefinedTableTheFirstTimeAndFalseTheSecondTime()
areDatabaseDefinitionsOfAllElementsAvailable()
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
areMultipleElementsOfSameExtensionRegistered()
tabIsAddedOnlyOncePerTable()