[BUGFIX] Fix wrong enforcement of pid 0 for rootLevel = -1 in impexp 38/37838/3
authorMarc Bastian Heinrichs <typo3@mbh-software.de>
Mon, 23 Jun 2014 11:13:52 +0000 (13:13 +0200)
committerFrans Saris <franssaris@gmail.com>
Mon, 16 Mar 2015 19:48:55 +0000 (20:48 +0100)
The importer had no support for setting TCA ctrl rootLevel = -1 and
forces the import to pid 0, when a normal page id is also allowed.

Resolves: #59616
Releases: master, 6.2
Change-Id: I224a6d0065c2031636fce494924fc892541ab350
Reviewed-on: http://review.typo3.org/37838
Reviewed-by: Frans Saris <franssaris@gmail.com>
Tested-by: Frans Saris <franssaris@gmail.com>
typo3/sysext/impexp/Classes/ImportExport.php
typo3/sysext/impexp/Tests/Functional/Import/AbstractImportTestCase.php
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed.csv [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelNotAllowed.csv [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed.csv [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/ImportExportXml/impexp-group-file-and-file_reference-item-on-pid-zero.xml [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/ImportInEmptyDatabaseTest.php

index dcbb0ce..3754bac 100644 (file)
@@ -1871,9 +1871,17 @@ class ImportExport {
                                if ($table != 'pages') {
                                        foreach ($recs as $uid => $thisRec) {
                                                // PID: Set the main $pid, unless a NEW-id is found
-                                               $setPid = isset($this->import_mapId['pages'][$thisRec['pid']]) ? $this->import_mapId['pages'][$thisRec['pid']] : $pid;
-                                               if (is_array($GLOBALS['TCA'][$table]) && $GLOBALS['TCA'][$table]['ctrl']['rootLevel']) {
-                                                       $setPid = 0;
+                                               $setPid = isset($this->import_mapId['pages'][$thisRec['pid']])
+                                                       ? (int)$this->import_mapId['pages'][$thisRec['pid']]
+                                                       : (int)$pid;
+                                               if (is_array($GLOBALS['TCA'][$table]) && isset($GLOBALS['TCA'][$table]['ctrl']['rootLevel'])) {
+                                                       $rootLevelSetting = (int)$GLOBALS['TCA'][$table]['ctrl']['rootLevel'];
+                                                       if ($rootLevelSetting === 1) {
+                                                               $setPid = 0;
+                                                       } elseif ($rootLevelSetting === 0 && $setPid === 0) {
+                                                               $this->error('Error: Record type ' . $table . ' is not allowed on pid 0');
+                                                               continue;
+                                                       }
                                                }
                                                // Add record:
                                                $this->addSingle($table, $uid, $setPid);
@@ -3465,7 +3473,7 @@ class ImportExport {
                                if ($GLOBALS['TCA'][$table]['ctrl']['is_static']) {
                                        $pInfo['msg'] .= 'TABLE \'' . $table . '\' is a STATIC TABLE! ';
                                }
-                               if ($GLOBALS['TCA'][$table]['ctrl']['rootLevel']) {
+                               if ((int)$GLOBALS['TCA'][$table]['ctrl']['rootLevel'] === 1) {
                                        $pInfo['msg'] .= 'TABLE \'' . $table . '\' will be inserted on ROOT LEVEL! ';
                                }
                                $diffInverse = FALSE;
index 0620f04..4afcde9 100644 (file)
@@ -34,6 +34,14 @@ abstract class AbstractImportTestCase extends \TYPO3\CMS\Core\Tests\Functional\D
        protected $import;
 
        /**
+        * Absolute path to files that must be removed
+        * after a test - handled in tearDown
+        *
+        * @var array
+        */
+       protected $testFilesToDelete = array();
+
+       /**
         * Set up for set up the backend user, initialize the language object
         * and creating the ImportExport instance
         *
@@ -46,6 +54,17 @@ abstract class AbstractImportTestCase extends \TYPO3\CMS\Core\Tests\Functional\D
                $this->import->init(0, 'import');
        }
 
+       /**
+        * Tear down for remove of the test files
+        */
+       public function tearDown() {
+               foreach ($this->testFilesToDelete as $absoluteFileName) {
+                       if (@is_file($absoluteFileName)) {
+                               unlink($absoluteFileName);
+                       }
+               }
+               parent::tearDown();
+       }
 
        /**
         * Test if the local filesystem is case sensitive
diff --git a/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed.csv b/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed.csv
new file mode 100644 (file)
index 0000000..2a12eb8
--- /dev/null
@@ -0,0 +1,15 @@
+"pages"
+,"uid","pid","sorting","deleted","title"
+,1,0,256,0,"Root"
+"sys_file_storage"
+,"uid","pid","name","driver"
+,1,0,"fileadmin/ (auto-created)","Local"
+"sys_file"
+,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
+,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370","7425"
+"tx_impexpgroupfiles_item"
+,"uid","pid","title","deleted","hidden","images","image_references"
+,1,1,"Test item",0,0,"typo3_image4.jpg","fileadmin/user_upload/typo3_image5.jpg"
+"sys_file_metadata"
+,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent"
+,1,0,1,\NULL,300,200,\NULL,\NULL,0,0
diff --git a/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelNotAllowed.csv b/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelNotAllowed.csv
new file mode 100644 (file)
index 0000000..090a4f3
--- /dev/null
@@ -0,0 +1,12 @@
+"pages"
+,"uid","pid","sorting","deleted","title"
+,1,0,256,0,"Root"
+"sys_file_storage"
+,"uid","pid","name","driver"
+,1,0,"fileadmin/ (auto-created)","Local"
+"sys_file"
+,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
+,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370","7425"
+"sys_file_metadata"
+,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent"
+,1,0,1,\NULL,300,200,\NULL,\NULL,0,0
diff --git a/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed.csv b/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/DataSet/Assertion/importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed.csv
new file mode 100644 (file)
index 0000000..dee7924
--- /dev/null
@@ -0,0 +1,15 @@
+"pages"
+,"uid","pid","sorting","deleted","title"
+,1,0,256,0,"Root"
+"sys_file_storage"
+,"uid","pid","name","driver"
+,1,0,"fileadmin/ (auto-created)","Local"
+"sys_file"
+,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
+,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370","7425"
+"tx_impexpgroupfiles_item"
+,"uid","pid","title","deleted","hidden","images","image_references"
+,1,0,"Test item",0,0,"typo3_image4.jpg","fileadmin/user_upload/typo3_image5.jpg"
+"sys_file_metadata"
+,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent"
+,1,0,1,\NULL,300,200,\NULL,\NULL,0,0
diff --git a/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/ImportExportXml/impexp-group-file-and-file_reference-item-on-pid-zero.xml b/typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/ImportExportXml/impexp-group-file-and-file_reference-item-on-pid-zero.xml
new file mode 100644 (file)
index 0000000..9927d9f
--- /dev/null
@@ -0,0 +1,499 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<T3RecordDocument>
+       <header type="array">
+               <charset>utf-8</charset>
+               <records type="array">
+                       <table index="pages" type="array">
+                               <rec index="1" type="array">
+                                       <uid>1</uid>
+                                       <pid>0</pid>
+                                       <title>Root</title>
+                                       <size>162</size>
+                                       <relations index="rels" type="array">
+                                       </relations>
+                                       <softrefs type="array">
+                                       </softrefs>
+                               </rec>
+                       </table>
+                       <table index="tx_impexpgroupfiles_item" type="array">
+                               <rec index="1" type="array">
+                                       <uid>1</uid>
+                                       <pid>0</pid>
+                                       <title>Test item</title>
+                                       <size>220</size>
+                                       <relations index="rels" type="array">
+                                               <element index="sys_file:3" type="array">
+                                                       <table>sys_file</table>
+                                                       <id>3</id>
+                                               </element>
+                                       </relations>
+                                       <softrefs type="array">
+                                       </softrefs>
+                                       <filerefs type="array">
+                                               <file index="0">66a2b7534be9ebf810cd55164c5f085d</file>
+                                       </filerefs>
+                               </rec>
+                       </table>
+                       <table index="sys_file" type="array">
+                               <rec index="3" type="array">
+                                       <uid>3</uid>
+                                       <pid>0</pid>
+                                       <title>typo3_image5.jpg</title>
+                                       <size>558</size>
+                                       <relationLevel>1</relationLevel>
+                                       <relations index="rels" type="array">
+                                               <element index="sys_file_storage:1" type="array">
+                                                       <id>1</id>
+                                                       <table>sys_file_storage</table>
+                                               </element>
+                                       </relations>
+                                       <softrefs type="array">
+                                       </softrefs>
+                               </rec>
+                       </table>
+                       <table index="sys_file_storage" type="array">
+                               <rec index="1" type="array">
+                                       <uid>1</uid>
+                                       <pid>0</pid>
+                                       <title>fileadmin/ (auto-created)</title>
+                                       <size>722</size>
+                                       <relationLevel>2</relationLevel>
+                                       <relations index="rels" type="array">
+                                       </relations>
+                                       <softrefs type="array">
+                                       </softrefs>
+                               </rec>
+                       </table>
+               </records>
+               <pid_lookup type="array">
+                       <page_contents index="0" type="array">
+                               <table index="pages" type="array">
+                                       <item index="1">1</item>
+                               </table>
+                               <table index="sys_file" type="array">
+                                       <item index="3">1</item>
+                               </table>
+                               <table index="sys_file_storage" type="array">
+                                       <item index="1">1</item>
+                               </table>
+                               <table index="tx_impexpgroupfiles_item" type="array">
+                                       <item index="1">1</item>
+                               </table>
+                       </page_contents>
+               </pid_lookup>
+               <pagetree type="array">
+                       <node index="1" type="array">
+                               <uid>1</uid>
+                       </node>
+               </pagetree>
+               <files type="array">
+                       <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
+                               <filesize>6758</filesize>
+                               <filename>typo3_image4.jpg</filename>
+                               <filemtime>1393866824</filemtime>
+                               <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
+                               <record_ref>tx_impexpgroupfiles_item:1/images</record_ref>
+                       </file>
+               </files>
+               <files_fal type="array">
+                       <file index="23116a2a95820388bb7eede903382d4c" type="array">
+                               <filesize>7425</filesize>
+                               <filename>typo3_image5.jpg</filename>
+                               <filemtime>1393432183</filemtime>
+                       </file>
+               </files_fal>
+       </header>
+       <records type="array">
+               <tablerow index="pages:1" type="array">
+                       <fieldlist index="data" type="array">
+                               <field index="uid">1</field>
+                               <field index="pid">0</field>
+                               <field index="deleted">0</field>
+                               <field index="perms_everybody">15</field>
+                               <field index="hidden">0</field>
+                               <field index="title">Root</field>
+                               <field index="doktype">1</field>
+                       </fieldlist>
+                       <related index="rels" type="array">
+                       </related>
+               </tablerow>
+               <tablerow index="tx_impexpgroupfiles_item:1" type="array">
+                       <fieldlist index="data" type="array">
+                               <field index="uid">1</field>
+                               <field index="pid">0</field>
+                               <field index="deleted">0</field>
+                               <field index="hidden">0</field>
+                               <field index="title">Test item</field>
+                               <field index="images">typo3_image4.jpg</field>
+                               <field index="image_references">fileadmin/user_upload/typo3_image5.jpg</field>
+                       </fieldlist>
+                       <related index="rels" type="array">
+                               <field index="images" type="array">
+                                       <type>file</type>
+                                       <filerefs index="newValueFiles" type="array">
+                                               <file index="0" type="array">
+                                                       <filename>typo3_image4.jpg</filename>
+                                                       <ID>66a2b7534be9ebf810cd55164c5f085d</ID>
+                                               </file>
+                                       </filerefs>
+                               </field>
+                               <field index="image_references" type="array">
+                                       <type>db</type>
+                                       <relations index="itemArray" type="array">
+                                               <element index="0" type="array">
+                                                       <table>sys_file</table>
+                                                       <id>3</id>
+                                               </element>
+                                       </relations>
+                               </field>
+                       </related>
+               </tablerow>
+               <tablerow index="sys_file:3" type="array">
+                       <fieldlist index="data" type="array">
+                               <field index="uid">3</field>
+                               <field index="pid">0</field>
+                               <field index="storage">1</field>
+                               <field index="type">2</field>
+                               <field index="metadata">0</field>
+                               <field index="identifier">/user_upload/typo3_image5.jpg</field>
+                               <field index="identifier_hash">8180e85d25c96697ec9d2004683216831b91ffc1</field>
+                               <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
+                               <field index="extension">jpg</field>
+                               <field index="mime_type">image/jpeg</field>
+                               <field index="name">typo3_image5.jpg</field>
+                               <field index="sha1">c3511df85d21bc578faf71c6a19eeb3ff44af370</field>
+                               <field index="size">7425</field>
+                               <field index="creation_date">1393432184</field>
+                               <field index="modification_date">1393432183</field>
+                       </fieldlist>
+                       <related index="rels" type="array">
+                               <field index="storage" type="array">
+                                       <type>db</type>
+                                       <relations index="itemArray" type="array">
+                                               <element index="0" type="array">
+                                                       <id>1</id>
+                                                       <table>sys_file_storage</table>
+                                               </element>
+                                       </relations>
+                               </field>
+                       </related>
+               </tablerow>
+               <tablerow index="sys_file_storage:1" type="array">
+                       <fieldlist index="data" type="array">
+                               <field index="uid">1</field>
+                               <field index="pid">0</field>
+                               <field index="name">fileadmin/ (auto-created)</field>
+                               <field index="description" type="NULL"></field>
+                               <field index="driver">Local</field>
+                               <field index="configuration">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;
+&lt;T3FlexForms&gt;
+       &lt;data&gt;
+               &lt;sheet index=&quot;sDEF&quot;&gt;
+                       &lt;language index=&quot;lDEF&quot;&gt;
+                               &lt;field index=&quot;basePath&quot;&gt;
+                                       &lt;value index=&quot;vDEF&quot;&gt;fileadmin/&lt;/value&gt;
+                               &lt;/field&gt;
+                               &lt;field index=&quot;pathType&quot;&gt;
+                                       &lt;value index=&quot;vDEF&quot;&gt;relative&lt;/value&gt;
+                               &lt;/field&gt;
+                               &lt;field index=&quot;caseSensitive&quot;&gt;
+                                       &lt;value index=&quot;vDEF&quot;&gt;1&lt;/value&gt;
+                               &lt;/field&gt;
+                       &lt;/language&gt;
+               &lt;/sheet&gt;
+       &lt;/data&gt;
+&lt;/T3FlexForms&gt;</field>
+                               <field index="is_default">0</field>
+                               <field index="is_browsable">1</field>
+                               <field index="is_public">1</field>
+                               <field index="is_writable">1</field>
+                               <field index="is_online">1</field>
+                       </fieldlist>
+                       <related index="rels" type="array">
+                               <field index="configuration" type="array">
+                                       <type>flex</type>
+                                       <flexform index="flexFormRels" type="array">
+                                               <db_relations index="db" type="array">
+                                               </db_relations>
+                                               <file_relations index="file" type="array">
+                                               </file_relations>
+                                               <softref_relations index="softrefs" type="array">
+                                               </softref_relations>
+                                       </flexform>
+                               </field>
+                       </related>
+               </tablerow>
+       </records>
+       <files type="array">
+               <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
+                       <filesize>6758</filesize>
+                       <filename>typo3_image4.jpg</filename>
+                       <filemtime>1393866824</filemtime>
+                       <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
+                       <record_ref>tx_impexpgroupfiles_item:1/images</record_ref>
+                       <content base64="1">
+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
+bum/HHoj7VbS/qPUTat1yjHHkSpXcl8VZpcorUdVPb3V/lnBd5XddMnwv07D151nm6cm+mL5ryzf
+nk4Rcu8dzLFnT92KXXFr2t/p+KMZpzVW07TvzuTldp9VrlNvUU79PpTe2yLmxuOFzUK22TVfuZrJ
+HDU5Rc+rjwmvP9TKWraVq3N8t8L8Itjjfguvloz4Xi0M47dS9ylf3I4sDShKK233R1zySybTk2nz
+8nDjdTbfdlrjcZ26vxMpc+mTjbafBsMMmytGSkZvRx6umXqVB43Lpi938mjPc4UlSXfuYau1CLXZ
+mGOU5e3my0jj5+TKZeGLp0zUPbbal/k6DVh0/pU3Pqa42Np1YSydvL5cpb0EpP7lZQXs2zlsu449
+RF4cs01cmvZXBobtL57HpSdR6n+lbfBojjV9TVt9zmzni7+DjvP20R6kqlzVGWBb14ZNQ0si3q0Y
+6eT9yvZ870Ze3XuYZSV2fBslJzUW2nsla+DQ76qava7N+LInpvSUY1GVqS+expxdVh+blMpJPhiC
+g6nloCgCAoAgKKtgQGUoyg6kmn4ZiAAAEBQBAUgAAAZgFJVQFAEBQBAUBKFtRabk1XZAyhFStNX4
+RnyTeNWw/puyTjLH0yjN7cpU0acE4QXqNN3s21v4M4427U16a7X/APv+RigvcvUUk+V2RxOlax45
+rJj2jL7klt+TOU1t3vhBN449MY9T7JFjDpu3cny1/ggY50nC1scx05fsa+TnOzh/lhyew4Mk16sm
+tk2d55+qxrFN1w90OWdN/wAXLVrbjyJrpkVxcXa4OPGr5bOic5RS36uxz2PQw/JlnbdJRa91V8mK
+njivY0+3tNM+qeFpfvXc6tDjwegpSg0097lV7duxPirn+V/1jZBycE5Kn4Mish1zqPJztyytoACV
+WGT/AG38swVnoYPp09RFTnL08fN1uzp1mjw4dJKWCG6fub3dfucvL3Xqfi8uPHhq+6+d1mKbljfR
+Lpa5o6dFoHlyJKLaT3lXCPY+mzcsUovlPh7nS4Y+hwUVBS39qoy8k5Z7tuu3z+t1HWp6eGOMIQk1
+t3p8/wBjHS2oyT5+D0830jE3/DySj+dzmh9Py4XJ+2d+Ga4ZTblzlsawZyxzh90HH8oxOpyaQhkA
+IDdg02XUSrHG13b4R6Wn0Wn08l6s4zyvhSdL+hXLORbHC15+HR5Mq6muiHl9/wAHXj00MNUt33fJ
+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
+</content>
+                       <content_md5>e1c5c4e1e34e19e2facb438752e06c3f</content_md5>
+               </file>
+       </files>
+       <files_fal type="array">
+               <file index="23116a2a95820388bb7eede903382d4c" type="array">
+                       <filesize>7425</filesize>
+                       <filename>typo3_image5.jpg</filename>
+                       <filemtime>1393432183</filemtime>
+                       <content base64="1">
+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
+oDglIOy49+o2eaEKg//Z
+</content>
+                       <content_sha1>c3511df85d21bc578faf71c6a19eeb3ff44af370</content_sha1>
+               </file>
+       </files_fal>
+</T3RecordDocument>
\ No newline at end of file
index 6f1f5f3..7573c6c 100644 (file)
@@ -48,10 +48,76 @@ class ImportInEmptyDatabaseTest extends \TYPO3\CMS\Impexp\Tests\Functional\Impor
                $this->import->loadFile(__DIR__ . '/../../Fixtures/ImportExportXml/impexp-group-file-and-file_reference-item.xml', 1);
                $this->import->importData(0);
 
+               $this->testFilesToDelete[] = PATH_site . 'fileadmin/user_upload/typo3_image5.jpg';
+               $this->testFilesToDelete[] = PATH_site . 'uploads/tx_impexpgroupfiles/typo3_image4.jpg';
+
                $this->assertAssertionDataSet('importGroupFileAndFileReferenceItem');
 
                $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/fileadmin/user_upload/typo3_image5.jpg', PATH_site . 'fileadmin/user_upload/typo3_image5.jpg');
                $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg', PATH_site . 'uploads/tx_impexpgroupfiles/typo3_image4.jpg');
        }
 
+       /**
+        * @test
+        */
+       public function importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed() {
+
+               $GLOBALS['TCA']['tx_impexpgroupfiles_item']['ctrl']['rootLevel'] = 1;
+
+               $this->import->loadFile(__DIR__ . '/../../Fixtures/ImportExportXml/impexp-group-file-and-file_reference-item.xml', 1);
+               $this->import->importData(0);
+
+               $this->testFilesToDelete[] = PATH_site . 'fileadmin/user_upload/typo3_image5.jpg';
+               $this->testFilesToDelete[] = PATH_site . 'uploads/tx_impexpgroupfiles/typo3_image4.jpg';
+
+               $this->assertAssertionDataSet('importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed');
+
+               $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/fileadmin/user_upload/typo3_image5.jpg', PATH_site . 'fileadmin/user_upload/typo3_image5.jpg');
+               $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg', PATH_site . 'uploads/tx_impexpgroupfiles/typo3_image4.jpg');
+       }
+
+       /**
+        * @test
+        */
+       public function importGroupFileAndFileReferenceItemWithRootLevelNotAllowed() {
+
+               $GLOBALS['TCA']['tx_impexpgroupfiles_item']['ctrl']['rootLevel'] = 0;
+
+               $this->import->loadFile(__DIR__ . '/ImportExportXml/impexp-group-file-and-file_reference-item-on-pid-zero.xml', 1);
+               $this->import->importData(0);
+
+               $this->testFilesToDelete[] = PATH_site . 'fileadmin/user_upload/typo3_image5.jpg';
+
+               $this->assertAssertionDataSet('importGroupFileAndFileReferenceItemWithRootLevelNotAllowed');
+
+               $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/fileadmin/user_upload/typo3_image5.jpg', PATH_site . 'fileadmin/user_upload/typo3_image5.jpg');
+               $this->assertFileNotExists(PATH_site . 'uploads/tx_impexpgroupfiles/typo3_image4.jpg');
+
+               $expectedErrors = array(
+               'Error: Record type tx_impexpgroupfiles_item is not allowed on pid 0'
+               );
+               $errors = $this->import->errorLog;
+               $this->assertSame($expectedErrors, $errors);
+       }
+
+       /**
+        * @test
+        */
+       public function importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed() {
+
+               $GLOBALS['TCA']['tx_impexpgroupfiles_item']['ctrl']['rootLevel'] = -1;
+
+               $this->import->loadFile(__DIR__ . '/../../Fixtures/ImportExportXml/impexp-group-file-and-file_reference-item.xml', 1);
+               $this->import->importData(0);
+
+
+               $this->testFilesToDelete[] = PATH_site . 'fileadmin/user_upload/typo3_image5.jpg';
+               $this->testFilesToDelete[] = PATH_site . 'uploads/tx_impexpgroupfiles/typo3_image4.jpg';
+
+               $this->assertAssertionDataSet('importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed');
+
+               $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/fileadmin/user_upload/typo3_image5.jpg', PATH_site . 'fileadmin/user_upload/typo3_image5.jpg');
+               $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg', PATH_site . 'uploads/tx_impexpgroupfiles/typo3_image4.jpg');
+       }
+
 }