* Jordi Boggiano * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Composer\Repository; use Composer\TestCase; use Composer\IO\NullIO; use Composer\Config; use Composer\Package\BasePackage; use Composer\Util\Filesystem; class ArtifactRepositoryTest extends TestCase { public function testExtractsConfigsFromZipArchives() { $expectedPackages = array( 'vendor0/package0-0.0.1', 'composer/composer-1.0.0-alpha6', 'vendor1/package2-4.3.2', 'vendor3/package1-5.4.3', ); $coordinates = array('type' => 'artifact', 'url' => __DIR__ . '/Fixtures/artifacts'); $repo = new ArtifactRepository($coordinates, new NullIO(), new Config()); $foundPackages = array_map(function(BasePackage $package) { return "{$package->getPrettyName()}-{$package->getPrettyVersion()}"; }, $repo->getPackages()); sort($expectedPackages); sort($foundPackages); $this->assertSame($expectedPackages, $foundPackages); } public function testAbsoluteRepoUrlCreatesAbsoluteUrlPackages() { $absolutePath = __DIR__ . '/Fixtures/artifacts'; $coordinates = array('type' => 'artifact', 'url' => $absolutePath); $repo = new ArtifactRepository($coordinates, new NullIO(), new Config()); foreach ($repo->getPackages() as $package) { $this->assertTrue(strpos($package->getDistUrl(), $absolutePath) === 0); } } public function testRelativeRepoUrlCreatesRelativeUrlPackages() { $relativePath = 'tests/Composer/Test/Repository/Fixtures/artifacts'; $coordinates = array('type' => 'artifact', 'url' => $relativePath); $repo = new ArtifactRepository($coordinates, new NullIO(), new Config()); foreach ($repo->getPackages() as $package) { $this->assertTrue(strpos($package->getDistUrl(), $relativePath) === 0); } } }