MigrateUploadTest.php

Same filename in other branches
  1. 9 core/modules/file/tests/src/Kernel/Migrate/d6/MigrateUploadTest.php
  2. 8.9.x core/modules/file/tests/src/Kernel/Migrate/d6/MigrateUploadTest.php
  3. 11.x core/modules/file/tests/src/Kernel/Migrate/d6/MigrateUploadTest.php

Namespace

Drupal\Tests\file\Kernel\Migrate\d6

File

core/modules/file/tests/src/Kernel/Migrate/d6/MigrateUploadTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\file\Kernel\Migrate\d6;

use Drupal\file\Entity\File;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
use Drupal\node\Entity\Node;

/**
 * Migrate association data between nodes and files.
 *
 * @group migrate_drupal_6
 */
class MigrateUploadTest extends MigrateDrupal6TestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'language',
        'content_translation',
        'menu_ui',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        parent::setUp();
        $this->installEntitySchema('file');
        $this->installEntitySchema('node');
        $this->installSchema('file', [
            'file_usage',
        ]);
        $this->installSchema('node', [
            'node_access',
        ]);
        $id_mappings = [
            'd6_file' => [],
        ];
        // Create new file entities.
        for ($i = 1; $i <= 3; $i++) {
            $file = File::create([
                'fid' => $i,
                'uid' => 1,
                'filename' => 'druplicon.txt',
                'uri' => "public://druplicon-{$i}.txt",
                'filemime' => 'text/plain',
                'created' => 1,
                'changed' => 1,
            ]);
            $file->setPermanent();
            $file->enforceIsNew();
            file_put_contents($file->getFileUri(), 'hello world');
            // Save it, inserting a new record.
            $file->save();
            $id_mappings['d6_file'][] = [
                [
                    $i,
                ],
                [
                    $i,
                ],
            ];
        }
        $this->prepareMigrations($id_mappings);
        $this->migrateContent([
            'translations',
        ]);
        // Since we are only testing a subset of the file migration, do not check
        // that the full file migration has been run.
        $migration = $this->getMigration('d6_upload');
        $migration->set('requirements', []);
        $this->executeMigration($migration);
    }
    
    /**
     * Tests upload migration from Drupal 6 to Drupal 8.
     */
    public function testUpload() : void {
        $this->container
            ->get('entity_type.manager')
            ->getStorage('node')
            ->resetCache([
            1,
            2,
            12,
        ]);
        $nodes = Node::loadMultiple([
            1,
            2,
            12,
        ]);
        $node = $nodes[1];
        $this->assertEquals('en', $node->langcode->value);
        $this->assertCount(1, $node->upload);
        $this->assertSame('1', $node->upload[0]->target_id);
        $this->assertSame('file 1-1-1', $node->upload[0]->description);
        $this->assertFalse($node->upload[0]
            ->isDisplayed());
        $node = $nodes[2];
        $this->assertEquals('en', $node->langcode->value);
        $this->assertCount(2, $node->upload);
        $this->assertSame('3', $node->upload[0]->target_id);
        $this->assertSame('file 2-3-3', $node->upload[0]->description);
        $this->assertFalse($node->upload[0]
            ->isDisplayed());
        $this->assertSame('2', $node->upload[1]->target_id);
        $this->assertTrue($node->upload[1]
            ->isDisplayed());
        $this->assertSame('file 2-3-2', $node->upload[1]->description);
        $node = $nodes[12];
        $this->assertEquals('zu', $node->langcode->value);
        $this->assertCount(1, $node->upload);
        $this->assertEquals('3', $node->upload[0]->target_id);
        $this->assertEquals('file 12-15-3', $node->upload[0]->description);
        $this->assertEquals(FALSE, $node->upload[0]
            ->isDisplayed());
    }

}

Classes

Title Deprecated Summary
MigrateUploadTest Migrate association data between nodes and files.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.