33 $GLOBALS[
'TYPO3_DB'] = $this->getMock(
'TYPO3\\CMS\\Core\\Database\\DatabaseConnection', array(
'exec_SELECTquery',
'sql_fetch_assoc',
'sql_free_result'));
34 $this->pageSelectObject = $this->
getAccessibleMock(
'TYPO3\\CMS\\Frontend\\Page\\PageRepository', array(
'getMultipleGroupsWhereClause'));
35 $this->pageSelectObject->expects($this->any())->method(
'getMultipleGroupsWhereClause')->will($this->returnValue(
' AND 1=1'));
46 $getPageHookMock = $this->getMock(
'TYPO3\\CMS\\Frontend\\Page\\PageRepositoryGetPageHookInterface', array(
'getPage_preProcess'), array(), $className);
48 $GLOBALS[
'T3_VAR'][
'getUserObj'][$className] = $getPageHookMock;
49 $GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
't3lib/class.t3lib_page.php'][
'getPage'][] = $className;
51 $getPageHookMock->expects($this->once())->method(
'getPage_preProcess')->will($this->returnCallback(array($this,
'isGetPagePreProcessCalledCallback')));
52 $this->pageSelectObject->getPage(42, FALSE);
59 list(
$uid, $disableGroupAccessCheck, $parent) = func_get_args();
60 $this->assertEquals(42,
$uid);
61 $this->assertFalse($disableGroupAccessCheck);
62 $this->assertTrue($parent instanceof \
TYPO3\CMS\Frontend\Page\PageRepository);
72 $this->assertEquals(
'', $this->pageSelectObject->getPathFromRootline(array()));
82 $this->assertEquals(
'http://www.example.com', $this->pageSelectObject->getExtURL(array(
83 'doktype' => \
TYPO3\CMS\Frontend\Page\PageRepository::DOKTYPE_LINK,
85 'url' =>
'www.example.com' 93 $this->assertEquals(\
TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv(
'TYPO3_SITE_URL') .
'hello/world/', $this->pageSelectObject->getExtURL(array(
94 'doktype' => \
TYPO3\CMS\Frontend\Page\PageRepository::DOKTYPE_LINK,
96 'url' =>
'hello/world/' 108 $GLOBALS[
'TCA'][
'fake_table'][
'columns'] = array(
110 'l10n_mode' =>
'exclude',
111 'config' => array(
'type' =>
'input'),
113 'mergeIfNotBlank' => array(
114 'l10n_mode' =>
'mergeIfNotBlank',
115 'config' => array(
'type' =>
'input'),
117 'mergeIfNotBlank_group' => array(
118 'l10n_mode' =>
'mergeIfNotBlank',
119 'config' => array(
'type' =>
'group'),
123 'config' => array(
'type' =>
'input'),
126 'l10n_mode' =>
'noCopy',
127 'config' => array(
'type' =>
'input'),
129 'prefixLangTitle' => array(
130 'l10n_mode' =>
'prefixLangTitle',
131 'config' => array(
'type' =>
'input'),
135 $result = $this->pageSelectObject->_call(
'shouldFieldBeOverlaid', $table, $field, $value);
136 unset(
$GLOBALS[
'TCA'][
'fake_table']);
138 $this->assertSame($expected,
$result, $comment);
146 array(
'default',
'fake_table',
'foobar', TRUE,
'default is to merge non-empty string'),
147 array(
'default',
'fake_table',
'', TRUE,
'default is to merge empty string'),
149 array(
'exclude',
'fake_table',
'', FALSE,
'exclude field with empty string'),
150 array(
'exclude',
'fake_table',
'foobar', FALSE,
'exclude field with non-empty string'),
152 array(
'mergeIfNotBlank',
'fake_table',
'', FALSE,
'mergeIfNotBlank is not merged with empty string'),
153 array(
'mergeIfNotBlank',
'fake_table', 0, TRUE,
'mergeIfNotBlank is merged with 0'),
154 array(
'mergeIfNotBlank',
'fake_table',
'0', TRUE,
'mergeIfNotBlank is merged with "0"'),
155 array(
'mergeIfNotBlank',
'fake_table',
'foobar', TRUE,
'mergeIfNotBlank is merged with non-empty string'),
157 array(
'mergeIfNotBlank_group',
'fake_table',
'', FALSE,
'mergeIfNotBlank on group is not merged empty string'),
158 array(
'mergeIfNotBlank_group',
'fake_table', 0, FALSE,
'mergeIfNotBlank on group is not merged with 0'),
159 array(
'mergeIfNotBlank_group',
'fake_table',
'0', FALSE,
'mergeIfNotBlank on group is not merged with "0"'),
160 array(
'mergeIfNotBlank_group',
'fake_table',
'foobar', TRUE,
'mergeIfNotBlank on group is merged with non-empty string'),
162 array(
'noCopy',
'fake_table',
'foobar', TRUE,
'noCopy is merged with non-empty string'),
163 array(
'noCopy',
'fake_table',
'', TRUE,
'noCopy is merged with empty string'),
165 array(
'prefixLangTitle',
'fake_table',
'foobar', TRUE,
'prefixLangTitle is merged with non-empty string'),
166 array(
'prefixLangTitle',
'fake_table',
'', TRUE,
'prefixLangTitle is merged with empty string'),
182 $this->pageSelectObject->versioningPreview = FALSE;
183 $this->pageSelectObject->versioningWorkspaceId = $wsid;
184 $this->pageSelectObject->init(FALSE);
187 $GLOBALS[
'TYPO3_DB']->expects($this->once())
188 ->method(
'exec_SELECTquery')
194 $this->stringContains(
'(pages.t3ver_wsid=0 or pages.t3ver_wsid=' . $wsid .
')')
196 $this->stringContains(
'AND NOT pages.t3ver_state>0')
200 $this->pageSelectObject->getPage(1);
212 $this->pageSelectObject->versioningPreview = TRUE;
213 $this->pageSelectObject->versioningWorkspaceId = $wsid;
214 $this->pageSelectObject->init(FALSE);
217 $GLOBALS[
'TYPO3_DB']->expects($this->once())
218 ->method(
'exec_SELECTquery')
222 $this->stringContains(
'(pages.t3ver_wsid=0 or pages.t3ver_wsid=' . $wsid .
')')
225 $this->pageSelectObject->getPage(1);
246 $this->pageSelectObject->versioningPreview = FALSE;
247 $this->pageSelectObject->init(FALSE);
249 $conditions = $this->pageSelectObject->enableFields($table);
251 $this->assertThat($conditions, $this->stringContains(
' AND ' . $table .
'.t3ver_state<=0'),
'Versioning placeholders');
252 $this->assertThat($conditions, $this->stringContains(
' AND ' . $table .
'.pid<>-1'),
'Records from page -1');
268 $this->pageSelectObject->versioningPreview = TRUE;
269 $this->pageSelectObject->init(FALSE);
271 $conditions = $this->pageSelectObject->enableFields($table);
273 $this->assertThat($conditions, $this->logicalNot($this->stringContains(
' AND ' . $table .
'.t3ver_state<=0')),
'No versioning placeholders');
274 $this->assertThat($conditions, $this->stringContains(
' AND ' . $table .
'.pid<>-1'),
'Records from page -1');
290 $this->pageSelectObject->versioningPreview = TRUE;
291 $this->pageSelectObject->versioningWorkspaceId = 2;
292 $this->pageSelectObject->init(FALSE);
294 $conditions = $this->pageSelectObject->enableFields($table);
296 $this->assertThat($conditions, $this->stringContains(
' AND (' . $table .
'.t3ver_wsid=0 OR ' . $table .
'.t3ver_wsid=2)'),
'No versioning placeholders');
312 $this->pageSelectObject->versioningPreview = TRUE;
313 $this->pageSelectObject->init(FALSE);
315 $conditions = $this->pageSelectObject->enableFields($table, -1, array(), TRUE );
317 $this->assertThat($conditions, $this->logicalNot($this->stringContains(
' AND ' . $table .
'.t3ver_state<=0')),
'No versioning placeholders');
318 $this->assertThat($conditions, $this->logicalNot($this->stringContains(
' AND ' . $table .
'.pid<>-1')),
'No ecords from page -1');
previewShowsPagesFromLiveAndCurrentWorkspace()
getExtUrlForDokType3AndUrlType0PrependsSiteUrl()
enableFieldsDoesNotHideVersionedRecordsWhenCheckingVersionOverlays()
enableFieldsDoesFilterToCurrentAndLiveWorkspaceForRecordsInPreview()
isGetPagePreProcessCalledCallback()
getShouldFieldBeOverlaidData()
getExtUrlForDokType3AndUrlType1AddsHttpSchemeToUrl()
enableFieldsDoesNotHidePlaceholdersInPreview()
enableFieldsHidesVersionedRecordsAndPlaceholders()
getAccessibleMock( $originalClassName, array $methods=array(), array $arguments=array(), $mockClassName='', $callOriginalConstructor=TRUE, $callOriginalClone=TRUE, $callAutoload=TRUE)
if($list_of_literals) if(!empty($literals)) if(!empty($literals)) $result
Analyse literals to prepend the N char to them if their contents aren't numeric.
shouldFieldBeOverlaid($field, $table, $value, $expected, $comment='')
getPathFromRootLineForEmptyRootLineReturnsEmptyString()
noPagesFromWorkspaceAreShownLive()
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]