diff --git a/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.services.yml b/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.services.yml deleted file mode 100644 index 42e9234669eb51e8f8e5c782da2ac955214d8a27..0000000000000000000000000000000000000000 --- a/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.services.yml +++ /dev/null @@ -1,9 +0,0 @@ -services: - package_manager_bypass.committer: - public: false - class: Drupal\package_manager_bypass\Committer - decorates: package_manager.committer - arguments: - - '@package_manager_bypass.committer.inner' - properties: - - { _serviceId: package_manager.committer } diff --git a/package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php b/package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php index e9b95a50efe857846cd262b3ad23311005f9eb74..3394cf4e159b39d300273529e119dc94929346c3 100644 --- a/package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php +++ b/package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php @@ -5,6 +5,7 @@ namespace Drupal\package_manager_bypass; use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\DependencyInjection\ServiceProviderBase; use Drupal\Core\Site\Settings; +use Symfony\Component\DependencyInjection\Reference; /** * Defines services to bypass Package Manager's core functionality. @@ -17,10 +18,24 @@ class PackageManagerBypassServiceProvider extends ServiceProviderBase { public function alter(ContainerBuilder $container) { parent::alter($container); - $container->getDefinition('package_manager.beginner') - ->setClass(Beginner::class); - $container->getDefinition('package_manager.stager') - ->setClass(Stager::class); + // By default, bypass the Composer Stager library. This can be disabled for + // tests that want to use the real library, but only need to disable + // validators. + if (Settings::get('package_manager_bypass_stager', TRUE)) { + $container->getDefinition('package_manager.beginner') + ->setClass(Beginner::class); + $container->getDefinition('package_manager.stager') + ->setClass(Stager::class); + + $container->register('package_manager_bypass.committer') + ->setClass(Committer::class) + ->setPublic(FALSE) + ->setDecoratedService('package_manager.committer') + ->setArguments([ + new Reference('package_manager_bypass.committer.inner'), + ]) + ->setProperty('_serviceId', 'package_manager.committer'); + } // Allow functional tests to disable specific validators as necessary. // Kernel tests can override the ::register() method and modify the diff --git a/package_manager/tests/src/Functional/ExcludedPathsTest.php b/package_manager/tests/src/Functional/ExcludedPathsTest.php index 97ed57a8a29ad10434f9849f0bc87cab338c2d99..f340b96a9033d49e85883601b5b0ef8e1a44a144 100644 --- a/package_manager/tests/src/Functional/ExcludedPathsTest.php +++ b/package_manager/tests/src/Functional/ExcludedPathsTest.php @@ -41,6 +41,10 @@ class ExcludedPathsTest extends BrowserTestBase { // @see \Drupal\Tests\package_manager\Kernel\WritableFileSystemValidatorTest $this->writeSettings([ 'settings' => [ + 'package_manager_bypass_stager' => (object) [ + 'value' => FALSE, + 'required' => TRUE, + ], 'package_manager_bypass_validators' => (object) [ 'value' => ['package_manager.validator.file_system'], 'required' => TRUE, @@ -77,7 +81,7 @@ class ExcludedPathsTest extends BrowserTestBase { $stage = new Stage( $path_locator->reveal(), $this->container->get('package_manager.beginner'), - $this->container->get('package_manager.stager'), + $stager, $this->container->get('package_manager.committer'), $this->container->get('package_manager.cleaner'), $this->container->get('event_dispatcher')