$tableName = $source->getRight()->getSelectorName();
}
$this->pageSelectObject->versionOL($tableName, $row, TRUE);
+ if ($this->pageSelectObject->versioningPreview && isset($row['_ORIG_uid'])) {
+ $row['uid'] = $row['_ORIG_uid'];
+ }
if($tableName == 'pages') {
$row = $this->pageSelectObject->getPageOverlay($row, $languageUid);
} elseif(isset($GLOBALS['TCA'][$tableName]['ctrl']['languageField']) && $GLOBALS['TCA'][$tableName]['ctrl']['languageField'] !== '') {
$this->assertSame($expecedSql, $sql);
}
+ /**
+ * @test
+ */
+ public function doLanguageAndWorkspaceOverlayChangesUidIfInPreview() {
+ $comparisonRow = array(
+ 'uid' => '43',
+ 'pid' => '42',
+ '_ORIG_pid' => '-1',
+ '_ORIG_uid' => '43'
+ );
+
+ $row = array(
+ 'uid' => '42',
+ 'pid' => '42',
+ );
+
+ $workspaceVersion = array(
+ 'uid' => '43',
+ 'pid' => '-1',
+ );
+
+ $languageUid = 2;
+ $workspaceUid = 2;
+
+ $sourceMock = new Tx_Extbase_Persistence_QOM_Selector('tx_foo', 'Tx_Foo');
+
+ $pageSelectMock = $this->getMock('t3lib_pageSelect', array('movePlhOL', 'getWorkspaceVersionOfRecord'));
+ $pageSelectMock->versioningPreview = 1;
+
+ $pageSelectMock->expects($this->once())
+ ->method('getWorkspaceVersionOfRecord')
+ ->with($workspaceUid, 'tx_foo', '42')
+ ->will($this->returnValue($workspaceVersion));
+
+ $mockTypo3DbBackend = $this->getAccessibleMock(
+ 'Tx_Extbase_Persistence_Storage_Typo3DbBackend',
+ array('dummy'),
+ array(), '', FALSE);
+
+
+ $mockTypo3DbBackend->_set('pageSelectObject', $pageSelectMock);
+
+ $this->assertSame(
+ array($comparisonRow),
+ $mockTypo3DbBackend->_call('doLanguageAndWorkspaceOverlay', $sourceMock, array($row), $languageUid, $workspaceUid)
+ );
+ }
}
?>
\ No newline at end of file