file_encrypt-8.x-1.x-dev/tests/src/Functional/FileUploadTest.php

tests/src/Functional/FileUploadTest.php
<?php

namespace Drupal\Tests\file_encrypt\Functional;

use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\file\Entity\File;
use Drupal\node\Entity\Node;
use Drupal\node\Entity\NodeType;

/**
 * Tests uploading files as well as viewing files on the rendered entity.
 *
 * @group file_encrypt
 */
class FileUploadTest extends FunctionalTestBase {

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    NodeType::create([
      'type' => 'page',
    ])->save();

    FieldStorageConfig::create([
      'entity_type' => 'node',
      'field_name' => 'field_test_file',
      'type' => 'file',
      'settings' => [
        'uri_scheme' => 'encrypt',
      ],
      'third_party_settings' => [
        'file_encrypt' => [
          'encryption_profile' => 'encryption_profile_1',
        ],
      ],
    ])->save();

    FieldConfig::create([
      'entity_type' => 'node',
      'field_name' => 'field_test_file',
      'bundle' => 'page',
      'settings' => [
        'file_directory' => 'encryption_profile_1',
        'file_extensions' => 'txt',
      ],
    ])->save();

    $this->drupalGetTestFiles('text');

    $form_display = \Drupal::service('entity_display.repository')->getFormDisplay('node', 'page', 'default');
    $form_display->setComponent('field_test_file', [
      'type' => 'file_generic',
    ]);
    $form_display->save();

    $view_display = \Drupal::service('entity_display.repository')->getViewDisplay('node', 'page', 'default');
    $view_display->setComponent('field_test_file', [
      'type' => 'file_url_plain',
    ]);
    $view_display->save();
  }

  /**
   * Tests uploading an actual file.
   */
  public function testFileUpload() {
    $account = $this->drupalCreateUser(['create page content']);
    $this->drupalLogin($account);

    $text_files = $this->drupalGetTestFiles('text');
    $text_file = File::create((array) current($text_files));
    $text_file->getFileUri();

    $assert = $this->assertSession();
    $this->drupalGet('node/add/page');
    $assert->statusCodeEquals(200);
    $edit = [
      'title[0][value]' => 'Test title',
      'files[field_test_file_0]' => \Drupal::service('file_system')->realpath($text_file->getFileUri()),
    ];
    $this->submitForm($edit, 'Save');

    // Ensure the file was saved.
    $nodes = Node::loadMultiple();
    $this->assertCount(1, $nodes);
    $last_node = end($nodes);
    $this->assertEquals('encrypt://encryption_profile_1/text-0_0.txt', $last_node->field_test_file->entity->getFileUri());

    // Ensure the file was visible.
    $assert->pageTextContains('/encryption_profile_1/text-0_0.txt');
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc