preview_site-1.1.2/tests/src/Kernel/TomeGeneratorPrivateFileTest.php

tests/src/Kernel/TomeGeneratorPrivateFileTest.php
<?php

namespace Drupal\Tests\preview_site\Kernel;

use Drupal\file\Entity\File;
use Drupal\filter\Entity\FilterFormat;
use Drupal\node\Entity\Node;
use Drupal\preview_site\Entity\PreviewSiteBuild;
use Drupal\user\Entity\User;

/**
 * Defines a class for testing tome generator with private files.
 *
 * @group preview_site
 */
class TomeGeneratorPrivateFileTest extends TomeGeneratorTestBase {

  public function setUp(): void {
    parent::setUp();
    $filter_format = FilterFormat::create([
      'format' => 'basic_html',
      'name' => 'Basic HTML',
      'weight' => 0,
    ]);
    $filter_format->save();
  }

  /**
   * Tests generation, with link to private file.
   */
  public function testGenerationWithPrivateFile(): void {
    $uri = 'private://test-file.txt';

    /** @var \Drupal\Core\File\FileSystemInterface $fileSystem */
    $fileSystem = \Drupal::service('file_system');
    $fileSystem->copy($this->getTestFile('text')->getFileUri(), $uri);

    $file = File::create([
      'uri' => $uri,
      'filename' => basename($uri),
      'uid' => User::getAnonymousUser()->id(),
    ]);
    $file->save();

    \Drupal::service('session')->set('anonymous_allowed_file_ids', [
      $file->id() => $file->id(),
    ]);

    $url = $file->createFileUrl();
    $node = Node::create([
      'status' => 0,
      'moderation_state' => 'draft',
      'title' => $this->randomMachineName(),
      'type' => 'page',
      'body' => [
        'format' => 'basic_html',
        'value' => '<a href="' . $url . '">File</a>',
      ],
    ]);
    $node->save();

    $build = $this->createPreviewSiteBuild([
      'strategy' => $this->strategy->id(),
      'contents' => [$node],
      'artifacts' => NULL,
      'processed_paths' => NULL,
      'log' => NULL,
    ]);

    $this->genererateAndDeployBuild($build);

    $build = PreviewSiteBuild::load($build->id());
    $node_static_file = $this->getGeneratedFileForEntity($node, $build);
    $this->assertTrue(file_exists($node_static_file));
    $this->assertTrue(file_exists(sprintf('public://preview-site-test/%s/%s%s', $this->prefix, $build->uuid(), $url)));
  }

}

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

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