1
0
Fork 0

Merge branch '1.9'

pull/8538/head
Jordi Boggiano 2020-01-14 09:32:27 +01:00
commit a902279a5b
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
2 changed files with 37 additions and 0 deletions

View File

@ -249,6 +249,14 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
$this->loadProviderListings($this->loadRootServerFile());
}
if ($this->hasPartialPackages) {
if (null === $this->partialPackagesByName) {
$this->initializePartialPackages();
}
return array_keys($this->partialPackagesByName);
}
if ($this->lazyProvidersUrl) {
// Can not determine list of provided packages for lazy repositories
return array();

View File

@ -271,4 +271,33 @@ class ComposerRepositoryTest extends TestCase
),
);
}
public function testGetProviderNamesWillReturnPartialPackageNames()
{
$rfs = $this->getMockBuilder('Composer\Util\RemoteFilesystem')
->disableOriginalConstructor()
->getMock();
$rfs->expects($this->at(0))
->method('getContents')
->with('example.org', 'http://example.org/packages.json', false)
->willReturn(json_encode(array(
'providers-lazy-url' => '/foo/p/%package%.json',
'packages' => array('foo/bar' => array(
'dev-branch' => array(),
'v1.0.0' => array(),
))
)));
$repository = new ComposerRepository(
array('url' => 'http://example.org/packages.json'),
new NullIO(),
FactoryMock::createConfig(),
null,
$rfs
);
$this->assertTrue($repository->hasProviders());
$this->assertEquals(array('foo/bar'), $repository->getProviderNames());
}
}