preview_site-1.1.2/tests/src/Unit/FileHelperTest.php

tests/src/Unit/FileHelperTest.php
<?php

namespace Drupal\Tests\preview_site\Unit;

use Prophecy\PhpUnit\ProphecyTrait;
use Drupal\file\FileInterface;
use Drupal\preview_site\Entity\PreviewSiteBuildInterface;
use Drupal\preview_site\Generate\FileHelper;
use Drupal\Tests\UnitTestCase;

/**
 * Defines a test for FileHelper.
 *
 * @group preview_site
 * @covers \Drupal\preview_site\Generate\FileHelper
 */
class FileHelperTest extends UnitTestCase {

  use ProphecyTrait;

  /**
   * Tests ::getFilePathWithoutSchema.
   *
   * @dataProvider providerGetFilePathWithoutSchema
   */
  public function testGetFilePathWithoutSchema(string $uri, ?string $base_path, string $expected): void {
    $file = $this->prophesize(FileInterface::class);
    $build = $this->prophesize(PreviewSiteBuildInterface::class);
    $build->getArtifactBasePath()->willReturn($base_path);
    $file->getFileUri()->willReturn($uri);
    $this->assertEquals($expected, FileHelper::getFilePathWithoutSchema($file->reveal(), $build->reveal()));
  }

  /**
   * Data provider for ::getFilePathWithoutSchema.
   *
   * @return array
   *   Test cases.
   */
  public static function providerGetFilePathWithoutSchema() : array {
    return [
      'private' => ['private://some/file.txt', 'private://', 'some/file.txt'],
      'private with prefix' => [
        'private://some/file.txt',
        'private://some',
        'file.txt',
      ],
      'private with prefix and /' => [
        'private://some/file.txt',
        'private://some/',
        'file.txt',
      ],
      'public' => ['public://some/file.txt', 'public://', 'some/file.txt'],
      'not matching' => [
        'public://some/file.txt',
        'private://',
        'public://some/file.txt',
      ],
      'leading /' => ['/some/file.txt', NULL, 'some/file.txt'],
      'no leading /' => ['some/file.txt', NULL, 'some/file.txt'],
    ];
  }

}

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

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