function MigrateFileTest::testFiles
Same name in other branches
- 9 core/modules/file/tests/src/Kernel/Migrate/d6/MigrateFileTest.php \Drupal\Tests\file\Kernel\Migrate\d6\MigrateFileTest::testFiles()
- 8.9.x core/modules/file/tests/src/Kernel/Migrate/d6/MigrateFileTest.php \Drupal\Tests\file\Kernel\Migrate\d6\MigrateFileTest::testFiles()
- 10 core/modules/file/tests/src/Kernel/Migrate/d6/MigrateFileTest.php \Drupal\Tests\file\Kernel\Migrate\d6\MigrateFileTest::testFiles()
Tests the Drupal 6 files to Drupal 8 migration.
File
-
core/
modules/ file/ tests/ src/ Kernel/ Migrate/ d6/ MigrateFileTest.php, line 78
Class
- MigrateFileTest
- Test file migration.
Namespace
Drupal\Tests\file\Kernel\Migrate\d6Code
public function testFiles() : void {
$this->assertEntity(1, 'Image1.png', 39325, 'public://image-1.png', 'image/png', 1);
$this->assertEntity(2, 'Image2.jpg', 1831, 'public://image-2.jpg', 'image/jpeg', 1);
$this->assertEntity(3, 'image-3.jpg', 1831, 'public://image-3.jpg', 'image/jpeg', 1);
$this->assertEntity(4, 'html-1.txt', 19, 'public://html-1.txt', 'text/plain', 1);
// Ensure temporary file was not migrated.
$this->assertNull(File::load(6));
$map_table = $this->getMigration('d6_file')
->getIdMap()
->mapTableName();
$map = \Drupal::database()->select($map_table, 'm')
->fields('m', [
'sourceid1',
'destid1',
])
->execute()
->fetchAllKeyed();
$map_expected = [
// The 4 files from the fixture.
1 => '1',
2 => '2',
// The file updated in migrateDumpAlter().
3 => '3',
5 => '4',
// The file created in migrateDumpAlter().
7 => '4',
];
$this->assertEquals($map_expected, $map);
// Test that we can re-import and also test with file_directory_path set.
\Drupal::database()->truncate($map_table)
->execute();
// Set the file_directory_path.
Database::getConnection('default', 'migrate')->insert('variable')
->fields([
'name',
'value',
])
->values([
'name' => 'file_directory_path',
'value' => serialize('files/test'),
])
->execute();
$this->executeMigration('d6_file');
// File 2, when migrated for the second time, is treated as a different file
// (due to having a different uri this time) and is given fid 6.
$file = File::load(6);
$this->assertSame('public://core/tests/fixtures/files/image-2.jpg', $file->getFileUri());
$map_table = $this->getMigration('d6_file')
->getIdMap()
->mapTableName();
$map = \Drupal::database()->select($map_table, 'm')
->fields('m', [
'sourceid1',
'destid1',
])
->execute()
->fetchAllKeyed();
$map_expected = [
// The 4 files from the fixture.
1 => '5',
2 => '6',
// The file updated in migrateDumpAlter().
3 => '7',
5 => '8',
// The files created in migrateDumpAlter().
7 => '8',
8 => '8',
];
$this->assertEquals($map_expected, $map);
// File 6, created in static::migrateDumpAlter(), shares a path with
// file 4, which means it should be skipped entirely. If it was migrated
// then it would have an fid of 9.
$this->assertNull(File::load(9));
$this->assertCount(8, File::loadMultiple());
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.