function InstalledPackageTest::testPathResolution

@covers ::createFromArray

@depends testMetapackageWithAPath

File

core/modules/package_manager/tests/src/Unit/InstalledPackageTest.php, line 22

Class

InstalledPackageTest
@coversDefaultClass \Drupal\package_manager\InstalledPackage[[api-linebreak]]

Namespace

Drupal\Tests\package_manager\Unit

Code

public function testPathResolution() : void {
  // Metapackages must be created without a path.
  $package = InstalledPackage::createFromArray([
    'name' => 'vendor/test',
    'type' => 'metapackage',
    'version' => '1.0.0',
    'path' => NULL,
  ]);
  $this->assertNull($package->path);
  // Paths should be converted to real paths.
  $package = InstalledPackage::createFromArray([
    'name' => 'vendor/test',
    'type' => 'library',
    'version' => '1.0.0',
    'path' => __DIR__ . '/..',
  ]);
  $this->assertSame(realpath(__DIR__ . '/..'), $package->path);
  // If we provide a path that cannot be resolved to a real path, it should
  // raise an error.
  $this->expectException(\TypeError::class);
  InstalledPackage::createFromArray([
    'name' => 'vendor/test',
    'type' => 'library',
    'version' => '1.0.0',
    'path' => $this->getRandomGenerator()
      ->string(),
  ]);
}

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