You are here

protected function FileUploadHalJsonTestBase::getExpectedNormalizedEntity in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/file/tests/src/Functional/Hal/FileUploadHalJsonTestBase.php \Drupal\Tests\file\Functional\Hal\FileUploadHalJsonTestBase::getExpectedNormalizedEntity()

Gets the expected file entity.

Parameters

int $fid: The file ID to load and create normalized data for.

string $expected_filename: The expected filename for the stored file.

bool $expected_as_filename: Whether the expected filename should be the filename property too.

Return value

array The expected normalized data array.

Overrides FileUploadResourceTestBase::getExpectedNormalizedEntity

File

core/modules/file/tests/src/Functional/Hal/FileUploadHalJsonTestBase.php, line 33

Class

FileUploadHalJsonTestBase
Tests binary data file upload route for HAL JSON.

Namespace

Drupal\Tests\file\Functional\Hal

Code

protected function getExpectedNormalizedEntity($fid = 1, $expected_filename = 'example.txt', $expected_as_filename = FALSE) {
  $normalization = parent::getExpectedNormalizedEntity($fid, $expected_filename, $expected_as_filename);

  // Cannot use applyHalFieldNormalization() as it uses the $entity property
  // from the test class, which in the case of file upload tests, is the
  // parent entity test entity for the file that's created.
  // The HAL normalization adds entity reference fields to '_links' and
  // '_embedded'.
  unset($normalization['uid']);
  return $normalization + [
    '_links' => [
      'self' => [
        // @todo This can use a proper link once
        // https://www.drupal.org/project/drupal/issues/2907402 is complete.
        // This link matches what is generated from File::url(), a resource
        // URL is currently not available.
        'href' => \Drupal::service('file_url_generator')
          ->generateAbsoluteString($normalization['uri'][0]['value']),
      ],
      'type' => [
        'href' => $this->baseUrl . '/rest/type/file/file',
      ],
      $this->baseUrl . '/rest/relation/file/file/uid' => [
        [
          'href' => $this->baseUrl . '/user/' . $this->account
            ->id() . '?_format=hal_json',
        ],
      ],
    ],
    '_embedded' => [
      $this->baseUrl . '/rest/relation/file/file/uid' => [
        [
          '_links' => [
            'self' => [
              'href' => $this->baseUrl . '/user/' . $this->account
                ->id() . '?_format=hal_json',
            ],
            'type' => [
              'href' => $this->baseUrl . '/rest/type/user/user',
            ],
          ],
          'uuid' => [
            [
              'value' => $this->account
                ->uuid(),
            ],
          ],
        ],
      ],
    ],
  ];
}