'test/locator-test', 'require' => [ 'civicrm/composer-compile-plugin' => '@dev', 'test/cherry-jam' => '@dev', 'mindplay/composer-locator' => '*', ], 'minimum-stability' => 'dev', 'extra' => [ 'compile' => [ ['run' => '@php-eval echo "LOCATE JAM:" . ComposerLocator::getPath("test/cherry-jam") . "\n";'] ], ], ]; return $r; } public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); self::initTestProject(static::getComposerJson()); file_put_contents( self::getTestDir() . '/cherry-jam-hackery.diff', file_get_contents(self::getPluginSourceDir() . '/tests/pkgs/cherry-jam-hackery.diff') ); } /** * When running 'composer install', the compilation task should have access to the ComposerLocator. */ public function testComposerInstall() { $version = PH::runOk('composer --version')->getOutput(); if (!preg_match(';version 1;', $version)) { $this->markTestSkipped('Cannot test mindplay/composer-locator on composer v2. It does not yet support v2.'); } $this->assertFileNotExists('vendor/test/cherry-jam/jam.out'); $p = PH::runOk('COMPOSER_COMPILE=1 composer install -v'); $matches = preg_grep(';^LOCATE JAM:;', explode("\n", $p->getOutput())); $this->assertCount(1, $matches); $parts = explode(':', array_shift($matches)); $this->assertNotEmpty($parts[1]); $this->assertEquals(realpath(self::getTestDir() . '/vendor/test/cherry-jam'), realpath($parts[1])); } }__halt_compiler();----SIGNATURE:----jXEvsl/a+GVcJbQwC0qPLxS99GKZ8EBtjtA+++ShYpXsVzawtaN8QCOzsLvxF263iKqlRZ+QsCP3d9/6Lc8dIqUxXVkgnuCZt05L1abtbVBwucQpOb4Cy76CupqP+G3tUbt7ulqA/AeYSzfDf6u97WLQqbpaGyj9DjEC80VBTFsdn/R508cqBHQxgfzhLGeSMARrJYzTt3Y4SlD47RWZssfjH5gskmAhDQ3xjFx657mGY7DhdaoyAUD7WrHLaDOZXgrBL1ais1iaBGkxBAt0Y+6UoHe+Mw0QjBg0Kvb4ZDbiPuiP9F+aclqr2H7ie7w4HtofrUU46El9Bj+7ogqxGspmf+0t4lKb+qTwCzKuoKvMjcJzz7PN1Xh5jcZ9IxzASILzD3F9xJ2JNh7zfbbs+9xVHBadhoe7w7f5GvWjVTMHag8Z8ygWiGgGjU2DXY0IKoojmxrsU2UQR7uAH4eJnI3fnOxTDvAVfmJtIP3yjVAa9K+h+O1R9Pp4bA6gF0J+RcVF4G5mJ01HBzANPPH6MhJ3DEGaq9mHVHwVIAszUSHN26KkEFNu6aAOLjSoNygQFXDrgJC6d3K0YJ+zQPkSGCFJLs81sc4YtiwVTLyInfY7K9l5aqNwTcQkIjnBtO1NIUjX06Om+lMZlIok3jqOYN52i4BK4Zf0Ii2RXVjJXQA=----ATTACHMENT:----NjY1MzY4MDM5MDYzMzYzNyA3MzgwODkwMTAwODIwMDM0IDExMjM0ODQ4NzQxMTQ5NDI=