[BUGFIX] Fix import for fields of type input with link wizard 84/36384/2
authorMarc Bastian Heinrichs <typo3@mbh-software.de>
Fri, 16 May 2014 10:41:06 +0000 (12:41 +0200)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Thu, 29 Jan 2015 20:10:44 +0000 (21:10 +0100)
Fields of type import and link wizard could also contain a path to
a local file in addition to a direct file reference (file:42). The
refindex correctly analyse this relation and saves a db relation to
the uid of the sys_file records.

On imports this is not correct resolved back, but a value
"sys_file_{uid}" is saved.

In addition this patch fixes also a redundant inclusion of files
stored in fileadmin for such a field type, because of having a
sys_file db relation and a softreference.

Change-Id: I1399006b44f6a9365a92e42911cc3daaa8a81d89
Resolves: #58843
Releases: master, 6.2
Reviewed-on: http://review.typo3.org/36384
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
12 files changed:
typo3/sysext/impexp/Classes/ImportExport.php
typo3/sysext/impexp/Tests/Functional/Export/PagesAndTtContent/ExportTest.php
typo3/sysext/impexp/Tests/Functional/Export/PagesAndTtContent/Fixtures/Database/sys_file.xml [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Fixtures/Database/tt_content.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/Resources/Public/Templates/Empty.html [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/ext_emconf.php [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/ext_icon.gif [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Fixtures/ImportExportXml/pages-and-ttcontent.xml
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItem/ImportInEmptyDatabaseTest.php
typo3/sysext/impexp/Tests/Functional/Import/PagesAndTtContent/DataSet/Assertion/importPagesAndRelatedTtContent.csv [new file with mode: 0644]
typo3/sysext/impexp/Tests/Functional/Import/PagesAndTtContent/DataSet/Assertion/importSimplePagesAndRelatedTtContent.csv [deleted file]
typo3/sysext/impexp/Tests/Functional/Import/PagesAndTtContent/ImportInEmptyDatabaseTest.php

index 93cdbe2..971f161 100644 (file)
@@ -650,6 +650,7 @@ class ImportExport {
                                                $refIndexObj->WSOL = TRUE;
                                                $relations = $refIndexObj->getRelations($table, $row);
                                                $relations = $this->fixFileIDsInRelations($relations);
+                                               $relations = $this->removeSoftrefsHavingTheSameDatabaseRelation($relations);
                                                // Data:
                                                $this->dat['records'][$table . ':' . $row['uid']] = array();
                                                $this->dat['records'][$table . ':' . $row['uid']]['data'] = $row;
@@ -707,6 +708,44 @@ class ImportExport {
                return $relations;
        }
 
+       /**
+        * Relations could contain db relations to sys_file records. Some configuration combinations of TCA and
+        * SoftReferenceIndex create also softref relation entries for the identical file. This results
+        * in double included files, one in array "files" and one in array "file_fal".
+        * This function checks the relations for this double inclusions and removes the redundant softref relation.
+        *
+        * @param array $relations
+        * @return array
+        */
+       protected function removeSoftrefsHavingTheSameDatabaseRelation($relations) {
+               $fixedRelations = array();
+               foreach ($relations as $field => $relation) {
+                       $newRelation = $relation;
+                       if (isset($newRelation['type']) && $newRelation['type'] === 'db') {
+                               foreach ($newRelation['itemArray'] as $key => $dbRelationData) {
+                                       if ($dbRelationData['table'] === 'sys_file') {
+                                               if (isset($newRelation['softrefs']['keys']['typolink'])) {
+                                                       foreach ($newRelation['softrefs']['keys']['typolink'] as $softrefKey => $softRefData) {
+                                                               if ($softRefData['subst']['type'] === 'file') {
+                                                                       $file = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->retrieveFileOrFolderObject($softRefData['subst']['relFileName']);
+                                                                       if ($file instanceof \TYPO3\CMS\Core\Resource\File) {
+                                                                               if ($file->getUid() == $dbRelationData['id']) {
+                                                                                       unset($newRelation['softrefs']['keys']['typolink'][$softrefKey]);
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                                       if (empty($newRelation['softrefs']['keys']['typolink'])) {
+                                                               unset($newRelation['softrefs']);
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+                       $fixedRelations[$field] = $newRelation;
+               }
+               return $fixedRelations;
+       }
 
 
        /**
@@ -2231,6 +2270,18 @@ class ImportExport {
                                // sys_file records Datahandler requires the value as uid of the the related sys_file record only
                                if ($itemConfig['type'] === 'group' && $itemConfig['internal_type'] === 'file_reference') {
                                        $value = $this->import_mapId[$relDat['table']][$relDat['id']];
+                               } elseif ($itemConfig['type'] === 'input' && isset($itemConfig['wizards']['link'])) {
+                                       // If an input field has a relation to a sys_file record this need to be converted back to
+                                       // the public path. But use getPublicUrl here, because could normally only be a local file path.
+                                       $fileUid = $this->import_mapId[$relDat['table']][$relDat['id']];
+                                       // Fallback value
+                                       $value = 'file:' . $fileUid;
+                                       try {
+                                               $file = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->retrieveFileOrFolderObject($fileUid);
+                                       } catch (\Exception $e) {}
+                                       if ($file instanceof \TYPO3\CMS\Core\Resource\FileInterface) {
+                                               $value = $file->getPublicUrl();
+                                       }
                                } else {
                                        $value = $relDat['table'] . '_' . $this->import_mapId[$relDat['table']][$relDat['id']];
                                }
index e600797..1e698e3 100644 (file)
@@ -23,17 +23,30 @@ require_once __DIR__ . '/../AbstractExportTestCase.php';
  */
 class ExportTest extends \TYPO3\CMS\Impexp\Tests\Functional\Export\AbstractExportTestCase {
 
+       protected $pathsToLinkInTestInstance = array(
+                       'typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/fileadmin/user_upload' => 'fileadmin/user_upload'
+       );
+
+       /**
+        * @var array
+        */
+       protected $testExtensionsToLoad = array(
+                       'typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension'
+       );
+
        public function setUp() {
                parent::setUp();
 
                $this->importDataSet(__DIR__ . '/../../Fixtures/Database/pages.xml');
                $this->importDataSet(__DIR__ . '/../../Fixtures/Database/tt_content.xml');
+               $this->importDataSet(__DIR__ . '/../../Fixtures/Database/sys_file.xml');
+               $this->importDataSet(__DIR__ . '/Fixtures/Database/sys_file.xml');
        }
 
        /**
         * @test
         */
-       public function exportSimplePagesAndRelatedTtContent() {
+       public function exportPagesAndRelatedTtContent() {
 
                $this->export->setRecordTypesIncludeFields(
                        array(
@@ -47,16 +60,36 @@ class ExportTest extends \TYPO3\CMS\Impexp\Tests\Functional\Export\AbstractExpor
                                'tt_content' => array(
                                        'CType',
                                        'header',
+                                       'header_link',
                                        'deleted',
                                        'hidden',
                                        't3ver_oid'
-                               )
+                               ),
+                               'sys_file' => array(
+                                       'storage',
+                                       'type',
+                                       'metadata',
+                                       'identifier',
+                                       'identifier_hash',
+                                       'folder_hash',
+                                       'mime_type',
+                                       'name',
+                                       'sha1',
+                                       'size',
+                                       'creation_date',
+                                       'modification_date',
+                               ),
                        )
                );
 
+               $this->export->relOnlyTables = array(
+                               'sys_file',
+               );
+
                $this->export->export_addRecord('pages', BackendUtility::getRecord('pages', 1));
                $this->export->export_addRecord('pages', BackendUtility::getRecord('pages', 2));
                $this->export->export_addRecord('tt_content', BackendUtility::getRecord('tt_content', 1));
+               $this->export->export_addRecord('tt_content', BackendUtility::getRecord('tt_content', 2));
 
                $this->setPageTree(1, 1);
 
@@ -69,6 +102,7 @@ class ExportTest extends \TYPO3\CMS\Impexp\Tests\Functional\Export\AbstractExpor
                }
 
                $this->export->export_addFilesFromRelations();
+               $this->export->export_addFilesFromSysFilesRecords();
 
                $out = $this->export->compileMemoryToFileContent('xml');
 
diff --git a/typo3/sysext/impexp/Tests/Functional/Export/PagesAndTtContent/Fixtures/Database/sys_file.xml b/typo3/sysext/impexp/Tests/Functional/Export/PagesAndTtContent/Fixtures/Database/sys_file.xml
new file mode 100644 (file)
index 0000000..4b62a14
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<dataset>
+       <sys_file>
+               <uid>4</uid>
+               <pid>0</pid>
+               <storage>0</storage>
+               <type>1</type>
+               <identifier>/typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html</identifier>
+               <identifier_hash>ae03df120da87352822f4aae6d476086cb8c0cf8</identifier_hash>
+               <folder_hash>85051482e1ba204348a9b9f6c1a37069e77de027</folder_hash>
+               <extension>html</extension>
+               <mime_type>text/html</mime_type>
+               <name>Empty.html</name>
+               <sha1>4a53ba5b5a156b82e3efd443f9a402f8c6e6dd08</sha1>
+               <size>92</size>
+               <creation_date>1400176659</creation_date>
+               <modification_date>1400176659</modification_date>
+       </sys_file>
+</dataset>
\ No newline at end of file
index e2d4f15..6a7a7b6 100644 (file)
@@ -5,6 +5,17 @@
                <pid>1</pid>
                <CType>text</CType>
                <header>Test content</header>
+               <header_link>fileadmin/user_upload/typo3_image3.jpg</header_link>
+               <deleted>0</deleted>
+               <t3ver_oid>0</t3ver_oid>
+               <t3ver_wsid>0</t3ver_wsid>
+       </tt_content>
+       <tt_content>
+               <uid>2</uid>
+               <pid>1</pid>
+               <CType>text</CType>
+               <header>Test content 2</header>
+               <header_link>typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html</header_link>
                <deleted>0</deleted>
                <t3ver_oid>0</t3ver_oid>
                <t3ver_wsid>0</t3ver_wsid>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/Resources/Public/Templates/Empty.html b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/Resources/Public/Templates/Empty.html
new file mode 100644 (file)
index 0000000..15d8e2c
--- /dev/null
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>An empty template</title>
+</head>
+<body></body>
+</html>
\ No newline at end of file
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/ext_emconf.php b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/ext_emconf.php
new file mode 100644 (file)
index 0000000..2a484f3
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+$EM_CONF[$_EXTKEY] = array(
+       'title' => 'Impexp test extension',
+       'description' => '',
+       'category' => '',
+       'shy' => 0,
+       'version' => '0.1.0',
+       'dependencies' => '',
+       'conflicts' => '',
+       'priority' => '',
+       'loadOrder' => '',
+       'module' => '',
+       'state' => 'beta',
+       'uploadfolder' => 1,
+       'createDirs' => '',
+       'modify_tables' => '',
+       'clearcacheonload' => 1,
+       'lockType' => '',
+       'author' => 'Marc Bastian Heinrichs',
+       'author_email' => 'typo3@mbh-software.de',
+       'author_company' => '',
+       'CGLcompliance' => '',
+       'CGLcompliance_note' => '',
+       'constraints' => array(
+               'depends' => array(
+                       'typo3' => '4.5.0-0.0.0',
+               ),
+               'conflicts' => array(
+               ),
+               'suggests' => array(
+               ),
+       ),
+       'suggests' => array(
+       ),
+);
+
+?>
\ No newline at end of file
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/ext_icon.gif b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/ext_icon.gif
new file mode 100644 (file)
index 0000000..893b87a
Binary files /dev/null and b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/template_extension/ext_icon.gif differ
index 037212d..9c839ba 100644 (file)
                                        <uid>1</uid>
                                        <pid>1</pid>
                                        <title>Test content</title>
-                                       <size>165</size>
+                                       <size>230</size>
+                                       <relations index="rels" type="array">
+                                               <element index="sys_file:2" type="array">
+                                                       <table>sys_file</table>
+                                                       <id>2</id>
+                                               </element>
+                                       </relations>
+                                       <softrefs type="array">
+                                       </softrefs>
+                               </rec>
+                               <rec index="2" type="array">
+                                       <uid>2</uid>
+                                       <pid>1</pid>
+                                       <title>Test content 2</title>
+                                       <size>264</size>
+                                       <relations index="rels" type="array">
+                                               <element index="sys_file:4" type="array">
+                                                       <table>sys_file</table>
+                                                       <id>4</id>
+                                               </element>
+                                       </relations>
+                                       <softrefs type="array">
+                                               <softref_element index="header_link:typolink:81b8b33df54ef433f1cbc7c3e513e6c4:0" type="array">
+                                                       <field>header_link</field>
+                                                       <spKey>typolink</spKey>
+                                                       <matchString>typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html</matchString>
+                                               </softref_element>
+                                       </softrefs>
+                               </rec>
+                       </table>
+                       <table index="sys_file" type="array">
+                               <rec index="2" type="array">
+                                       <uid>2</uid>
+                                       <pid>0</pid>
+                                       <title>typo3_image3.jpg</title>
+                                       <size>532</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>
+                               <rec index="4" type="array">
+                                       <uid>4</uid>
+                                       <pid>0</pid>
+                                       <title>Empty.html</title>
+                                       <size>564</size>
+                                       <relationLevel>1</relationLevel>
                                        <relations index="rels" type="array">
                                        </relations>
                                        <softrefs type="array">
                                <table index="pages" type="array">
                                        <item index="1">1</item>
                                </table>
+                               <table index="sys_file" type="array">
+                                       <item index="2">1</item>
+                                       <item index="4">1</item>
+                               </table>
                        </page_contents>
                        <page_contents index="1" type="array">
                                <table index="pages" type="array">
                                </table>
                                <table index="tt_content" type="array">
                                        <item index="1">1</item>
+                                       <item index="2">1</item>
                                </table>
                        </page_contents>
                </pid_lookup>
                                </node>
                        </node>
                </pagetree>
+               <files_fal type="array">
+                       <file index="0e290b0bb4f0b57f7f58fd5c342117fe" type="array">
+                               <filesize>5565</filesize>
+                               <filename>typo3_image3.jpg</filename>
+                               <filemtime>1392907534</filemtime>
+                       </file>
+                       <file index="006f2bbed1bef099981ce4cb9a0f8e14" type="array">
+                               <filesize>92</filesize>
+                               <filename>Empty.html</filename>
+                               <filemtime>1400176659</filemtime>
+                       </file>
+               </files_fal>
        </header>
        <records type="array">
                <tablerow index="pages:1" type="array">
                                <field index="CType">text</field>
                                <field index="header">Test content</field>
                                <field index="deleted">0</field>
+                               <field index="header_link">fileadmin/user_upload/typo3_image3.jpg</field>
+                       </fieldlist>
+                       <related index="rels" type="array">
+                               <field index="header_link" type="array">
+                                       <type>db</type>
+                                       <relations index="itemArray" type="array">
+                                               <element index="0" type="array">
+                                                       <table>sys_file</table>
+                                                       <id>2</id>
+                                               </element>
+                                       </relations>
+                               </field>
+                       </related>
+               </tablerow>
+               <tablerow index="tt_content:2" type="array">
+                       <fieldlist index="data" type="array">
+                               <field index="uid">2</field>
+                               <field index="pid">1</field>
+                               <field index="t3ver_oid">0</field>
+                               <field index="hidden">0</field>
+                               <field index="CType">text</field>
+                               <field index="header">Test content 2</field>
+                               <field index="deleted">0</field>
+                               <field index="header_link">typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html</field>
+                       </fieldlist>
+                       <related index="rels" type="array">
+                               <field index="header_link" type="array">
+                                       <type>db</type>
+                                       <relations index="itemArray" type="array">
+                                               <element index="0" type="array">
+                                                       <table>sys_file</table>
+                                                       <id>4</id>
+                                               </element>
+                                       </relations>
+                                       <softrefs type="array">
+                                               <keys type="array">
+                                                       <softref_key index="typolink" type="array">
+                                                               <softref_element index="81b8b33df54ef433f1cbc7c3e513e6c4:0" type="array">
+                                                                       <matchString>typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html</matchString>
+                                                               </softref_element>
+                                                       </softref_key>
+                                               </keys>
+                                       </softrefs>
+                               </field>
+                       </related>
+               </tablerow>
+               <tablerow index="sys_file:2" type="array">
+                       <fieldlist index="data" type="array">
+                               <field index="uid">2</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_image3.jpg</field>
+                               <field index="identifier_hash">25777b72e5e1cbed2d1b33e4fe5b737304b5bd28</field>
+                               <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
+                               <field index="mime_type">image/jpeg</field>
+                               <field index="name">typo3_image3.jpg</field>
+                               <field index="sha1">e873c1e2ffd0f191e183a1057de3eef4d62e782d</field>
+                               <field index="size">5565</field>
+                               <field index="creation_date">1393346082</field>
+                               <field index="modification_date">1392907534</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:4" type="array">
+                       <fieldlist index="data" type="array">
+                               <field index="uid">4</field>
+                               <field index="pid">0</field>
+                               <field index="storage">0</field>
+                               <field index="type">1</field>
+                               <field index="metadata">0</field>
+                               <field index="identifier">/typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html</field>
+                               <field index="identifier_hash">ae03df120da87352822f4aae6d476086cb8c0cf8</field>
+                               <field index="folder_hash">85051482e1ba204348a9b9f6c1a37069e77de027</field>
+                               <field index="mime_type">text/html</field>
+                               <field index="name">Empty.html</field>
+                               <field index="sha1">4a53ba5b5a156b82e3efd443f9a402f8c6e6dd08</field>
+                               <field index="size">92</field>
+                               <field index="creation_date">1400176659</field>
+                               <field index="modification_date">1400176659</field>
                        </fieldlist>
                        <related index="rels" type="array">
                        </related>
                </tablerow>
        </records>
+       <files_fal type="array">
+               <file index="0e290b0bb4f0b57f7f58fd5c342117fe" type="array">
+                       <filesize>5565</filesize>
+                       <filename>typo3_image3.jpg</filename>
+                       <filemtime>1392907534</filemtime>
+                       <content base64="1">
+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
+</content>
+                       <content_sha1>e873c1e2ffd0f191e183a1057de3eef4d62e782d</content_sha1>
+               </file>
+               <file index="006f2bbed1bef099981ce4cb9a0f8e14" type="array">
+                       <filesize>92</filesize>
+                       <filename>Empty.html</filename>
+                       <filemtime>1400176659</filemtime>
+                       <content>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;title&gt;An empty template&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;&lt;/body&gt;
+&lt;/html&gt;</content>
+                       <content_sha1>4a53ba5b5a156b82e3efd443f9a402f8c6e6dd08</content_sha1>
+    </file>
+       </files_fal>
 </T3RecordDocument>
\ No newline at end of file
index 1bb30a2..6f1f5f3 100644 (file)
@@ -27,6 +27,7 @@ class ImportInEmptyDatabaseTest extends \TYPO3\CMS\Impexp\Tests\Functional\Impor
        protected $additionalFoldersToCreate = array(
                '/uploads/tx_impexpgroupfiles'
        );
+
        /**
         * @var array
         */
diff --git a/typo3/sysext/impexp/Tests/Functional/Import/PagesAndTtContent/DataSet/Assertion/importPagesAndRelatedTtContent.csv b/typo3/sysext/impexp/Tests/Functional/Import/PagesAndTtContent/DataSet/Assertion/importPagesAndRelatedTtContent.csv
new file mode 100644 (file)
index 0000000..8c3a3db
--- /dev/null
@@ -0,0 +1,12 @@
+"pages"
+,"uid","pid","sorting","deleted","title"
+,1,0,256,0,"Root"
+,2,1,256,0,"Dummy 1-2"
+"tt_content"
+,"uid","pid","sorting","deleted","header","header_link"
+,1,1,256,0,"Test content 2","typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html"
+,2,1,128,0,"Test content","fileadmin/user_upload/typo3_image3.jpg"
+"sys_file"
+,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
+,1,0,1,2,"/user_upload/typo3_image3.jpg","25777b72e5e1cbed2d1b33e4fe5b737304b5bd28","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image3.jpg","e873c1e2ffd0f191e183a1057de3eef4d62e782d","5565"
+,2,0,0,1,"/typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html","ae03df120da87352822f4aae6d476086cb8c0cf8","85051482e1ba204348a9b9f6c1a37069e77de027","html","text/html","Empty.html","4a53ba5b5a156b82e3efd443f9a402f8c6e6dd08","92"
\ No newline at end of file
diff --git a/typo3/sysext/impexp/Tests/Functional/Import/PagesAndTtContent/DataSet/Assertion/importSimplePagesAndRelatedTtContent.csv b/typo3/sysext/impexp/Tests/Functional/Import/PagesAndTtContent/DataSet/Assertion/importSimplePagesAndRelatedTtContent.csv
deleted file mode 100644 (file)
index 6014a7a..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-"pages"
-,"uid","pid","sorting","deleted","title"
-,1,0,256,0,"Root"
-,2,1,256,0,"Dummy 1-2"
-"tt_content"
-,"uid","pid","sorting","deleted","header"
-,1,1,256,0,"Test content"
\ No newline at end of file
index 738802f..fcd7087 100644 (file)
@@ -26,12 +26,15 @@ class ImportInEmptyDatabaseTest extends \TYPO3\CMS\Impexp\Tests\Functional\Impor
        /**
         * @test
         */
-       public function importSimplePagesAndRelatedTtContent() {
+       public function importPagesAndRelatedTtContent() {
 
                $this->import->loadFile(__DIR__ . '/../../Fixtures/ImportExportXml/pages-and-ttcontent.xml', 1);
                $this->import->importData(0);
 
-               $this->assertAssertionDataSet('importSimplePagesAndRelatedTtContent');
+               $this->assertAssertionDataSet('importPagesAndRelatedTtContent');
+
+               $this->assertFileEquals(__DIR__ . '/../../Fixtures/Folders/fileadmin/user_upload/typo3_image3.jpg', PATH_site . 'fileadmin/user_upload/typo3_image3.jpg');
+               $this->assertFileEquals(__DIR__ . '/../../Fixtures/Extensions/template_extension/Resources/Public/Templates/Empty.html', PATH_site . 'typo3conf/ext/template_extension/Resources/Public/Templates/Empty.html');
        }
 
-}
\ No newline at end of file
+}