diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/Framework/ActionService.php b/typo3/sysext/core/Tests/Functional/DataHandling/Framework/ActionService.php
index 7812a2944b968352d51edc829a25b2c2d0770a38..a48c8007c1f6e4fb7a8cb0e7ba8758ed9529fa66 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/Framework/ActionService.php
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/Framework/ActionService.php
@@ -153,13 +153,25 @@ class ActionService {
 	 * @param integer $uid
 	 */
 	public function deleteRecord($tableName, $uid) {
-		$commandMap = array(
-			$tableName => array(
-				$uid => array(
-					'delete' => TRUE,
-				),
-			),
+		$this->deleteRecords(
+			array(
+				$tableName => array($uid),
+			)
 		);
+	}
+
+	/**
+	 * @param array $tableRecordIds
+	 */
+	public function deleteRecords(array $tableRecordIds) {
+		$commandMap = array();
+		foreach ($tableRecordIds as $tableName => $ids) {
+			foreach ($ids as $uid) {
+				$commandMap[$tableName][$uid] = array(
+					'delete' => TRUE,
+				);
+			}
+		}
 		$this->dataHandler->start(array(), $commandMap);
 		$this->dataHandler->process_cmdmap();
 	}
@@ -168,6 +180,7 @@ class ActionService {
 	 * @param string $tableName
 	 * @param integer $uid
 	 * @param integer $pageId
+	 * @return array
 	 */
 	public function copyRecord($tableName, $uid, $pageId) {
 		$commandMap = array(
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php b/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php
index d584b547fa784b455998b782a1d3eb6926f4c37a..50ce71d7aede06a14cdc521d67e0d4eb5c18555d 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php
@@ -170,6 +170,43 @@ abstract class AbstractActionTestCase extends \TYPO3\CMS\Core\Tests\Functional\D
 		$this->assertAssertionDataSet('createParentContentRecordWithHotelAndOfferChildRecords');
 	}
 
+	/**
+	 * @test
+	 */
+	public function createAndCopyParentContentRecordWithHotelAndOfferChildRecords() {
+		$newTableIds = $this->actionService->createNewRecords(
+			self::VALUE_PageId,
+			array(
+				self::TABLE_Offer => array('title' => 'Offer #1'),
+				self::TABLE_Hotel => array('title' => 'Hotel #1', 'offers' => '__previousUid'),
+				self::TABLE_Content => array('header' => 'Testing #1', 'tx_irretutorial_hotels' => '__previousUid'),
+			)
+		);
+		$newContentId = $newTableIds[self::TABLE_Content][0];
+		$newHotelId = $newTableIds[self::TABLE_Hotel][0];
+		$copiedTableIds = $this->actionService->copyRecord(self::TABLE_Content, $newContentId, self::VALUE_PageId);
+		$this->assertAssertionDataSet('createAndCopyParentContentRecordWithHotelAndOfferChildRecords');
+	}
+
+	/**
+	 * @test
+	 */
+	public function createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords() {
+		// @todo Localizing the new child records is broken in the Core
+		$newTableIds = $this->actionService->createNewRecords(
+			self::VALUE_PageId,
+			array(
+				self::TABLE_Offer => array('title' => 'Offer #1'),
+				self::TABLE_Hotel => array('title' => 'Hotel #1', 'offers' => '__previousUid'),
+				self::TABLE_Content => array('header' => 'Testing #1', 'tx_irretutorial_hotels' => '__previousUid'),
+			)
+		);
+		$newContentId = $newTableIds[self::TABLE_Content][0];
+		$newHotelId = $newTableIds[self::TABLE_Hotel][0];
+		$localizedTableIds = $this->actionService->localizeRecord(self::TABLE_Content, $newContentId, self::VALUE_LanguageId);
+		$this->assertAssertionDataSet('createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords');
+	}
+
 	/**
 	 * @test
 	 */
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecords.csv b/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecords.csv
new file mode 100644
index 0000000000000000000000000000000000000000..17fb0708ba5434b0df1faba695275a5c2669e344
--- /dev/null
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecords.csv
@@ -0,0 +1,30 @@
+tt_content
+,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image,categories,tx_irretutorial_hotels
+,297,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",,0,2
+,298,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",,0,1
+,299,89,128,0,0,0,0,0,0,0,0,"Testing #1",,0,1
+,300,89,64,0,0,0,0,0,0,0,0,"Testing #1 (copy 1)",0,0,1
+tx_irretutorial_1nff_hotel
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,offers
+,3,89,1,0,0,0,0,0,0,0,"Hotel #1",297,tt_content,,2
+,4,89,2,0,0,0,0,0,0,0,"Hotel #2",297,tt_content,,1
+,5,89,1,0,0,0,0,0,0,0,"Hotel #1",298,tt_content,,1
+,6,89,1,0,0,0,0,0,0,0,"Hotel #1",299,tt_content,,1
+,7,89,1,0,0,0,0,0,0,0,"Hotel #1",300,tt_content,,1
+tx_irretutorial_1nff_offer
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,prices
+,5,89,1,0,0,0,0,0,0,0,"Offer #1.1",3,tx_irretutorial_1nff_hotel,,3
+,6,89,2,0,0,0,0,0,0,0,"Offer #1.2",3,tx_irretutorial_1nff_hotel,,2
+,7,89,1,0,0,0,0,0,0,0,"Offer #2.1",4,tx_irretutorial_1nff_hotel,,1
+,8,89,1,0,0,0,0,0,0,0,"Offer #1.1",5,tx_irretutorial_1nff_hotel,,1
+,9,89,1,0,0,0,0,0,0,0,"Offer #1",6,tx_irretutorial_1nff_hotel,,0
+,10,89,1,0,0,0,0,0,0,0,"Offer #1",7,tx_irretutorial_1nff_hotel,,0
+tx_irretutorial_1nff_price
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier
+,7,89,1,0,0,0,0,0,0,0,"Price #1.1.1",5,tx_irretutorial_1nff_offer,
+,8,89,2,0,0,0,0,0,0,0,"Price #1.1.2",5,tx_irretutorial_1nff_offer,
+,9,89,3,0,0,0,0,0,0,0,"Price #1.1.3",5,tx_irretutorial_1nff_offer,
+,10,89,1,0,0,0,0,0,0,0,"Price #1.2.1",6,tx_irretutorial_1nff_offer,
+,11,89,2,0,0,0,0,0,0,0,"Price #1.2.2",6,tx_irretutorial_1nff_offer,
+,12,89,1,0,0,0,0,0,0,0,"Price #2.1.1",7,tx_irretutorial_1nff_offer,
+,13,89,1,0,0,0,0,0,0,0,"Price #1.1.1",8,tx_irretutorial_1nff_offer,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords.csv b/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords.csv
new file mode 100644
index 0000000000000000000000000000000000000000..b28f4018e6b4a9af47bc8d0123a7f13baa56243e
--- /dev/null
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords.csv
@@ -0,0 +1,30 @@
+tt_content
+,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image,categories,tx_irretutorial_hotels
+,297,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",,0,2
+,298,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",,0,1
+,299,89,128,0,0,0,0,0,0,0,0,"Testing #1",,0,1
+,300,89,192,0,1,299,0,0,0,0,0,"[Translate to Dansk:] Testing #1",0,0,1
+tx_irretutorial_1nff_hotel
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,offers
+,3,89,512,0,0,0,0,0,0,0,"Hotel #1",297,tt_content,,2
+,4,89,1536,0,0,0,0,0,0,0,"Hotel #2",297,tt_content,,1
+,5,89,768,0,0,0,0,0,0,0,"Hotel #1",298,tt_content,,1
+,6,89,1024,0,0,0,0,0,0,0,"Hotel #1",299,tt_content,,1
+,7,89,1,0,1,0,0,0,0,0,"[Translate to Dansk:] Hotel #1",300,tt_content,,1
+tx_irretutorial_1nff_offer
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,prices
+,5,89,512,0,0,0,0,0,0,0,"Offer #1.1",3,tx_irretutorial_1nff_hotel,,3
+,6,89,1792,0,0,0,0,0,0,0,"Offer #1.2",3,tx_irretutorial_1nff_hotel,,2
+,7,89,768,0,0,0,0,0,0,0,"Offer #2.1",4,tx_irretutorial_1nff_hotel,,1
+,8,89,1024,0,0,0,0,0,0,0,"Offer #1.1",5,tx_irretutorial_1nff_hotel,,1
+,9,89,1280,0,0,0,0,0,0,0,"Offer #1",6,tx_irretutorial_1nff_hotel,,0
+,10,89,1,0,1,0,0,0,0,0,"[Translate to Dansk:] Offer #1",7,tx_irretutorial_1nff_hotel,,0
+tx_irretutorial_1nff_price
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier
+,7,89,1,0,0,0,0,0,0,0,"Price #1.1.1",5,tx_irretutorial_1nff_offer,
+,8,89,2,0,0,0,0,0,0,0,"Price #1.1.2",5,tx_irretutorial_1nff_offer,
+,9,89,3,0,0,0,0,0,0,0,"Price #1.1.3",5,tx_irretutorial_1nff_offer,
+,10,89,1,0,0,0,0,0,0,0,"Price #1.2.1",6,tx_irretutorial_1nff_offer,
+,11,89,2,0,0,0,0,0,0,0,"Price #1.2.2",6,tx_irretutorial_1nff_offer,
+,12,89,1,0,0,0,0,0,0,0,"Price #2.1.1",7,tx_irretutorial_1nff_offer,
+,13,89,1,0,0,0,0,0,0,0,"Price #1.1.1",8,tx_irretutorial_1nff_offer,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php
index f5da40fae46c829a907c7f9cd1e3ce05263395ac..4a65c9b3b70b4e20cbf062f94d25993bb6c10036 100644
--- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/AbstractActionTestCase.php
@@ -197,6 +197,65 @@ abstract class AbstractActionTestCase extends \TYPO3\CMS\Core\Tests\Functional\D
 		$this->assertAssertionDataSet('createAndCopyParentContentRecordWithHotelAndOfferChildRecords');
 	}
 
+	/**
+	 * @test
+	 */
+	public function createAndCopyParentContentRecordWithHotelAndOfferChildRecordsAndDiscardCopiedParentRecord() {
+		// @todo Copying the new child records is broken in the Core
+		$newTableIds = $this->actionService->createNewRecords(
+			self::VALUE_PageId,
+			array(
+				self::TABLE_Offer => array('title' => 'Offer #1'),
+				self::TABLE_Hotel => array('title' => 'Hotel #1', 'offers' => '__previousUid'),
+				self::TABLE_Content => array('header' => 'Testing #1', 'tx_irretutorial_hotels' => '__previousUid'),
+			)
+		);
+		$newContentId = $newTableIds['tt_content'][0];
+		$copiedTableIds = $this->actionService->copyRecord(self::TABLE_Content, $newContentId, self::VALUE_PageId);
+		$copiedContentId = $copiedTableIds[self::TABLE_Content][$newContentId];
+		$this->actionService->deleteRecord(self::TABLE_Content, $copiedContentId);
+		$this->assertAssertionDataSet('createAndCopyParentContentRecordWithHotelAndOfferChildRecordsAndDiscardCopiedParentRecord');
+	}
+
+	/**
+	 * @test
+	 */
+	public function createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords() {
+		// @todo Localizing the new child records is broken in the Core
+		$newTableIds = $this->actionService->createNewRecords(
+			self::VALUE_PageId,
+			array(
+				self::TABLE_Offer => array('title' => 'Offer #1'),
+				self::TABLE_Hotel => array('title' => 'Hotel #1', 'offers' => '__previousUid'),
+				self::TABLE_Content => array('header' => 'Testing #1', 'tx_irretutorial_hotels' => '__previousUid'),
+			)
+		);
+		$newContentId = $newTableIds[self::TABLE_Content][0];
+		$newHotelId = $newTableIds[self::TABLE_Hotel][0];
+		$localizedTableIds = $this->actionService->localizeRecord(self::TABLE_Content, $newContentId, self::VALUE_LanguageId);
+		$this->assertAssertionDataSet('createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords');
+	}
+
+	/**
+	 * @test
+	 */
+	public function createAndLocalizeParentContentRecordWithHotelAndOfferChildRecordsAndDiscardLocalizedParentRecord() {
+		// @todo Localizing the new child records is broken in the Core
+		$newTableIds = $this->actionService->createNewRecords(
+			self::VALUE_PageId,
+			array(
+				self::TABLE_Offer => array('title' => 'Offer #1'),
+				self::TABLE_Hotel => array('title' => 'Hotel #1', 'offers' => '__previousUid'),
+				self::TABLE_Content => array('header' => 'Testing #1', 'tx_irretutorial_hotels' => '__previousUid'),
+			)
+		);
+		$newContentId = $newTableIds[self::TABLE_Content][0];
+		$localizedTableIds = $this->actionService->localizeRecord(self::TABLE_Content, $newContentId, self::VALUE_LanguageId);
+		$localizedContentId = $localizedTableIds[self::TABLE_Content][$newContentId];
+		$this->actionService->deleteRecord(self::TABLE_Content, $localizedContentId);
+		$this->assertAssertionDataSet('createAndLocalizeParentContentRecordWithHotelAndOfferChildRecordsAndDiscardLocalizedParentRecord');
+	}
+
 	/**
 	 * @test
 	 */
@@ -227,6 +286,41 @@ abstract class AbstractActionTestCase extends \TYPO3\CMS\Core\Tests\Functional\D
 		$this->assertAssertionDataSet('modifyParentRecordWithHotelChildRecord');
 	}
 
+	/**
+	 * @test
+	 */
+	public function modifyParentRecordWithHotelChildRecordAndDiscardModifiedParentRecord() {
+		$this->actionService->modifyRecords(
+			self::VALUE_PageId,
+			array(
+				self::TABLE_Hotel => array('uid' => 4, 'title' => 'Testing #1'),
+				self::TABLE_Content => array('uid' => self::VALUE_ContentIdFirst, 'tx_irretutorial_hotels' => '3,4'),
+			)
+		);
+		$this->actionService->deleteRecord(self::TABLE_Content, self::VALUE_ContentIdFirst);
+		$this->assertAssertionDataSet('modifyParentRecordWithHotelChildRecordAndDiscardModifiedParentRecord');
+	}
+
+	/**
+	 * @test
+	 */
+	public function modifyParentRecordWithHotelChildRecordAndDiscardAllModifiedRecords() {
+		$this->actionService->modifyRecords(
+			self::VALUE_PageId,
+			array(
+				self::TABLE_Hotel => array('uid' => 4, 'title' => 'Testing #1'),
+				self::TABLE_Content => array('uid' => self::VALUE_ContentIdFirst, 'tx_irretutorial_hotels' => '3,4'),
+			)
+		);
+		$this->actionService->deleteRecords(
+				array(
+					self::TABLE_Hotel => array(4),
+					self::TABLE_Content => array(self::VALUE_ContentIdFirst),
+				)
+		);
+		$this->assertAssertionDataSet('modifyParentRecordWithHotelChildRecordAndDiscardAllModifiedRecords');
+	}
+
 	/**
 	 * @test
 	 */
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecordsAndDiscardCopiedParentRecord.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecordsAndDiscardCopiedParentRecord.csv
new file mode 100644
index 0000000000000000000000000000000000000000..24e4b1a1d5536a554dcb3b4cf76e13170e34c597
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndCopyParentContentRecordWithHotelAndOfferChildRecordsAndDiscardCopiedParentRecord.csv
@@ -0,0 +1,32 @@
+tt_content
+,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image,categories,tx_irretutorial_hotels
+,297,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",,0,2
+,298,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",,0,1
+,299,89,128,0,0,0,1,1,0,0,0,"Testing #1",,0,0
+,300,-1,128,0,0,0,1,-1,0,299,0,"Testing #1",,0,1
+,301,89,1000000000,1,0,0,0,1,0,0,0,"Testing #1 (copy 1)",,0,0
+,302,-1,1000000000,1,0,0,0,-1,0,301,0,"Testing #1 (copy 1)",0,0,0
+tx_irretutorial_1nff_hotel
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,offers
+,3,89,1,0,0,0,0,0,0,0,"Hotel #1",297,tt_content,,2
+,4,89,2,0,0,0,0,0,0,0,"Hotel #2",297,tt_content,,1
+,5,89,1,0,0,0,0,0,0,0,"Hotel #1",298,tt_content,,1
+,6,89,1,0,0,1,1,0,0,0,"Hotel #1",0,,,0
+,7,-1,1,0,0,1,-1,0,6,0,"Hotel #1",300,tt_content,,1
+tx_irretutorial_1nff_offer
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,prices
+,5,89,1,0,0,0,0,0,0,0,"Offer #1.1",3,tx_irretutorial_1nff_hotel,,3
+,6,89,2,0,0,0,0,0,0,0,"Offer #1.2",3,tx_irretutorial_1nff_hotel,,2
+,7,89,1,0,0,0,0,0,0,0,"Offer #2.1",4,tx_irretutorial_1nff_hotel,,1
+,8,89,1,0,0,0,0,0,0,0,"Offer #1.1",5,tx_irretutorial_1nff_hotel,,1
+,9,89,1,0,0,1,1,0,0,0,"Offer #1",0,,,0
+,10,-1,1,0,0,1,-1,0,9,0,"Offer #1",7,tx_irretutorial_1nff_hotel,,0
+tx_irretutorial_1nff_price
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier
+,7,89,1,0,0,0,0,0,0,0,"Price #1.1.1",5,tx_irretutorial_1nff_offer,
+,8,89,2,0,0,0,0,0,0,0,"Price #1.1.2",5,tx_irretutorial_1nff_offer,
+,9,89,3,0,0,0,0,0,0,0,"Price #1.1.3",5,tx_irretutorial_1nff_offer,
+,10,89,1,0,0,0,0,0,0,0,"Price #1.2.1",6,tx_irretutorial_1nff_offer,
+,11,89,2,0,0,0,0,0,0,0,"Price #1.2.2",6,tx_irretutorial_1nff_offer,
+,12,89,1,0,0,0,0,0,0,0,"Price #2.1.1",7,tx_irretutorial_1nff_offer,
+,13,89,1,0,0,0,0,0,0,0,"Price #1.1.1",8,tx_irretutorial_1nff_offer,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords.csv
new file mode 100644
index 0000000000000000000000000000000000000000..fd55e1cbabfc55890158f017f6af7d124db67959
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecords.csv
@@ -0,0 +1,34 @@
+tt_content
+,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image,categories,tx_irretutorial_hotels
+,297,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",,0,2
+,298,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",,0,1
+,299,89,128,0,0,0,1,1,0,0,0,"Testing #1",,0,0
+,300,-1,128,0,0,0,1,-1,0,299,0,"Testing #1",,0,1
+,301,89,192,0,1,299,1,1,0,0,0,"[Translate to Dansk:] Testing #1",,0,0
+,302,-1,192,0,1,299,1,-1,0,301,0,"[Translate to Dansk:] Testing #1",0,0,0
+tx_irretutorial_1nff_hotel
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,offers
+,3,89,1,0,0,0,0,0,0,0,"Hotel #1",297,tt_content,,2
+,4,89,2,0,0,0,0,0,0,0,"Hotel #2",297,tt_content,,1
+,5,89,1,0,0,0,0,0,0,0,"Hotel #1",298,tt_content,,1
+,6,89,1,0,0,1,1,0,0,0,"Hotel #1",0,\*tt_content,,0
+,7,-1,1,0,0,1,-1,0,6,0,"Hotel #1",300,tt_content,,1
+# tx_irretutorial_1nff_hotel localizations are missing
+tx_irretutorial_1nff_offer
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,prices
+,5,89,1,0,0,0,0,0,0,0,"Offer #1.1",3,tx_irretutorial_1nff_hotel,,3
+,6,89,2,0,0,0,0,0,0,0,"Offer #1.2",3,tx_irretutorial_1nff_hotel,,2
+,7,89,1,0,0,0,0,0,0,0,"Offer #2.1",4,tx_irretutorial_1nff_hotel,,1
+,8,89,1,0,0,0,0,0,0,0,"Offer #1.1",5,tx_irretutorial_1nff_hotel,,1
+,9,89,1,0,0,1,1,0,0,0,"Offer #1",0,\*tx_irretutorial_1nff_hotel,,0
+,10,-1,1,0,0,1,-1,0,9,0,"Offer #1",7,tx_irretutorial_1nff_hotel,,0
+# tx_irretutorial_1nff_offer localizations are missing
+tx_irretutorial_1nff_price
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier
+,7,89,1,0,0,0,0,0,0,0,"Price #1.1.1",5,tx_irretutorial_1nff_offer,
+,8,89,2,0,0,0,0,0,0,0,"Price #1.1.2",5,tx_irretutorial_1nff_offer,
+,9,89,3,0,0,0,0,0,0,0,"Price #1.1.3",5,tx_irretutorial_1nff_offer,
+,10,89,1,0,0,0,0,0,0,0,"Price #1.2.1",6,tx_irretutorial_1nff_offer,
+,11,89,2,0,0,0,0,0,0,0,"Price #1.2.2",6,tx_irretutorial_1nff_offer,
+,12,89,1,0,0,0,0,0,0,0,"Price #2.1.1",7,tx_irretutorial_1nff_offer,
+,13,89,1,0,0,0,0,0,0,0,"Price #1.1.1",8,tx_irretutorial_1nff_offer,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecordsAndDiscardLocalizedParentRecord.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecordsAndDiscardLocalizedParentRecord.csv
new file mode 100644
index 0000000000000000000000000000000000000000..5be62769e27b46b1e64e23196d4a68dcc46eadd4
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/createAndLocalizeParentContentRecordWithHotelAndOfferChildRecordsAndDiscardLocalizedParentRecord.csv
@@ -0,0 +1,32 @@
+tt_content
+,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image,categories,tx_irretutorial_hotels
+,297,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",,0,2
+,298,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",,0,1
+,299,89,128,0,0,0,1,1,0,0,0,"Testing #1",,0,0
+,300,-1,128,0,0,0,1,-1,0,299,0,"Testing #1",,0,1
+,301,89,1000000000,1,1,299,0,1,0,0,0,"[Translate to Dansk:] Testing #1",,0,0
+,302,-1,1000000000,1,1,299,0,-1,0,301,0,"[Translate to Dansk:] Testing #1",0,0,0
+tx_irretutorial_1nff_hotel
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,offers
+,3,89,1,0,0,0,0,0,0,0,"Hotel #1",297,tt_content,,2
+,4,89,2,0,0,0,0,0,0,0,"Hotel #2",297,tt_content,,1
+,5,89,1,0,0,0,0,0,0,0,"Hotel #1",298,tt_content,,1
+,6,89,1,0,0,1,1,0,0,0,"Hotel #1",0,,,0
+,7,-1,1,0,0,1,-1,0,6,0,"Hotel #1",300,tt_content,,1
+tx_irretutorial_1nff_offer
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,prices
+,5,89,1,0,0,0,0,0,0,0,"Offer #1.1",3,tx_irretutorial_1nff_hotel,,3
+,6,89,2,0,0,0,0,0,0,0,"Offer #1.2",3,tx_irretutorial_1nff_hotel,,2
+,7,89,1,0,0,0,0,0,0,0,"Offer #2.1",4,tx_irretutorial_1nff_hotel,,1
+,8,89,1,0,0,0,0,0,0,0,"Offer #1.1",5,tx_irretutorial_1nff_hotel,,1
+,9,89,1,0,0,1,1,0,0,0,"Offer #1",0,,,0
+,10,-1,1,0,0,1,-1,0,9,0,"Offer #1",7,tx_irretutorial_1nff_hotel,,0
+tx_irretutorial_1nff_price
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier
+,7,89,1,0,0,0,0,0,0,0,"Price #1.1.1",5,tx_irretutorial_1nff_offer,
+,8,89,2,0,0,0,0,0,0,0,"Price #1.1.2",5,tx_irretutorial_1nff_offer,
+,9,89,3,0,0,0,0,0,0,0,"Price #1.1.3",5,tx_irretutorial_1nff_offer,
+,10,89,1,0,0,0,0,0,0,0,"Price #1.2.1",6,tx_irretutorial_1nff_offer,
+,11,89,2,0,0,0,0,0,0,0,"Price #1.2.2",6,tx_irretutorial_1nff_offer,
+,12,89,1,0,0,0,0,0,0,0,"Price #2.1.1",7,tx_irretutorial_1nff_offer,
+,13,89,1,0,0,0,0,0,0,0,"Price #1.1.1",8,tx_irretutorial_1nff_offer,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardAllModifiedRecords.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardAllModifiedRecords.csv
new file mode 100644
index 0000000000000000000000000000000000000000..99b1a005cfd2c93b4861688df401af23271c400c
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardAllModifiedRecords.csv
@@ -0,0 +1,36 @@
+tt_content
+,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image,categories,tx_irretutorial_hotels
+,297,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",,0,2
+,298,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",,0,1
+,299,-1,256,0,0,0,1,2,0,297,0,"Regular Element #1",0,0,2
+tx_irretutorial_1nff_hotel
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,offers
+,3,89,1,0,0,0,0,0,0,0,"Hotel #1",297,tt_content,,2
+,4,89,2,0,0,0,0,0,0,0,"Hotel #2",297,tt_content,,1
+,5,89,1,0,0,0,0,0,0,0,"Hotel #1",298,tt_content,,1
+,6,-1,2,0,0,1,2,0,4,0,"Testing #1",299,tt_content,,1
+,7,-1,1,0,0,1,0,0,3,0,"Hotel #1",299,tt_content,,2
+tx_irretutorial_1nff_offer
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,prices
+,5,89,1,0,0,0,0,0,0,0,"Offer #1.1",3,tx_irretutorial_1nff_hotel,,3
+,6,89,2,0,0,0,0,0,0,0,"Offer #1.2",3,tx_irretutorial_1nff_hotel,,2
+,7,89,1,0,0,0,0,0,0,0,"Offer #2.1",4,tx_irretutorial_1nff_hotel,,1
+,8,89,1,0,0,0,0,0,0,0,"Offer #1.1",5,tx_irretutorial_1nff_hotel,,1
+,9,-1,1,0,0,1,0,0,7,0,"Offer #2.1",6,tx_irretutorial_1nff_hotel,,1
+,10,-1,1,0,0,1,0,0,5,0,"Offer #1.1",7,tx_irretutorial_1nff_hotel,,3
+,11,-1,2,0,0,1,0,0,6,0,"Offer #1.2",7,tx_irretutorial_1nff_hotel,,2
+tx_irretutorial_1nff_price
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier
+,7,89,1,0,0,0,0,0,0,0,"Price #1.1.1",5,tx_irretutorial_1nff_offer,
+,8,89,2,0,0,0,0,0,0,0,"Price #1.1.2",5,tx_irretutorial_1nff_offer,
+,9,89,3,0,0,0,0,0,0,0,"Price #1.1.3",5,tx_irretutorial_1nff_offer,
+,10,89,1,0,0,0,0,0,0,0,"Price #1.2.1",6,tx_irretutorial_1nff_offer,
+,11,89,2,0,0,0,0,0,0,0,"Price #1.2.2",6,tx_irretutorial_1nff_offer,
+,12,89,1,0,0,0,0,0,0,0,"Price #2.1.1",7,tx_irretutorial_1nff_offer,
+,13,89,1,0,0,0,0,0,0,0,"Price #1.1.1",8,tx_irretutorial_1nff_offer,
+,14,-1,1,0,0,1,0,0,12,0,"Price #2.1.1",9,tx_irretutorial_1nff_offer,
+,15,-1,1,0,0,1,0,0,7,0,"Price #1.1.1",10,tx_irretutorial_1nff_offer,
+,16,-1,2,0,0,1,0,0,8,0,"Price #1.1.2",10,tx_irretutorial_1nff_offer,
+,17,-1,3,0,0,1,0,0,9,0,"Price #1.1.3",10,tx_irretutorial_1nff_offer,
+,18,-1,1,0,0,1,0,0,10,0,"Price #1.2.1",11,tx_irretutorial_1nff_offer,
+,19,-1,2,0,0,1,0,0,11,0,"Price #1.2.2",11,tx_irretutorial_1nff_offer,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardModifiedParentRecord.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardModifiedParentRecord.csv
new file mode 100644
index 0000000000000000000000000000000000000000..f2128dbfcd501d4edfe76a8e6e25c1babdfce572
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/InlineRelationalRecordEditing/ForeignField/DataSet/Assertion/modifyParentRecordWithHotelChildRecordAndDiscardModifiedParentRecord.csv
@@ -0,0 +1,36 @@
+tt_content
+,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image,categories,tx_irretutorial_hotels
+,297,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",,0,2
+,298,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",,0,1
+,299,-1,256,0,0,0,1,2,0,297,0,"Regular Element #1",0,0,2
+tx_irretutorial_1nff_hotel
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,offers
+,3,89,1,0,0,0,0,0,0,0,"Hotel #1",297,tt_content,,2
+,4,89,2,0,0,0,0,0,0,0,"Hotel #2",297,tt_content,,1
+,5,89,1,0,0,0,0,0,0,0,"Hotel #1",298,tt_content,,1
+,6,-1,2,0,0,1,0,0,4,0,"Testing #1",299,tt_content,,1
+,7,-1,1,0,0,1,0,0,3,0,"Hotel #1",299,tt_content,,2
+tx_irretutorial_1nff_offer
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier,prices
+,5,89,1,0,0,0,0,0,0,0,"Offer #1.1",3,tx_irretutorial_1nff_hotel,,3
+,6,89,2,0,0,0,0,0,0,0,"Offer #1.2",3,tx_irretutorial_1nff_hotel,,2
+,7,89,1,0,0,0,0,0,0,0,"Offer #2.1",4,tx_irretutorial_1nff_hotel,,1
+,8,89,1,0,0,0,0,0,0,0,"Offer #1.1",5,tx_irretutorial_1nff_hotel,,1
+,9,-1,1,0,0,1,0,0,7,0,"Offer #2.1",6,tx_irretutorial_1nff_hotel,,1
+,10,-1,1,0,0,1,0,0,5,0,"Offer #1.1",7,tx_irretutorial_1nff_hotel,,3
+,11,-1,2,0,0,1,0,0,6,0,"Offer #1.2",7,tx_irretutorial_1nff_hotel,,2
+tx_irretutorial_1nff_price
+,uid,pid,sorting,deleted,sys_language_uid,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,title,parentid,parenttable,parentidentifier
+,7,89,1,0,0,0,0,0,0,0,"Price #1.1.1",5,tx_irretutorial_1nff_offer,
+,8,89,2,0,0,0,0,0,0,0,"Price #1.1.2",5,tx_irretutorial_1nff_offer,
+,9,89,3,0,0,0,0,0,0,0,"Price #1.1.3",5,tx_irretutorial_1nff_offer,
+,10,89,1,0,0,0,0,0,0,0,"Price #1.2.1",6,tx_irretutorial_1nff_offer,
+,11,89,2,0,0,0,0,0,0,0,"Price #1.2.2",6,tx_irretutorial_1nff_offer,
+,12,89,1,0,0,0,0,0,0,0,"Price #2.1.1",7,tx_irretutorial_1nff_offer,
+,13,89,1,0,0,0,0,0,0,0,"Price #1.1.1",8,tx_irretutorial_1nff_offer,
+,14,-1,1,0,0,1,0,0,12,0,"Price #2.1.1",9,tx_irretutorial_1nff_offer,
+,15,-1,1,0,0,1,0,0,7,0,"Price #1.1.1",10,tx_irretutorial_1nff_offer,
+,16,-1,2,0,0,1,0,0,8,0,"Price #1.1.2",10,tx_irretutorial_1nff_offer,
+,17,-1,3,0,0,1,0,0,9,0,"Price #1.1.3",10,tx_irretutorial_1nff_offer,
+,18,-1,1,0,0,1,0,0,10,0,"Price #1.2.1",11,tx_irretutorial_1nff_offer,
+,19,-1,2,0,0,1,0,0,11,0,"Price #1.2.2",11,tx_irretutorial_1nff_offer,