Loading core/modules/migrate/src/Plugin/MigrationPluginManager.php +1 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ public function expandPluginIds(array $migration_ids) { $plugin_ids = []; $all_ids = array_keys($this->getDefinitions()); foreach ($migration_ids as $id) { $plugin_ids += preg_grep('/^' . preg_quote($id, '/') . PluginBase::DERIVATIVE_SEPARATOR . '/', $all_ids); $plugin_ids = array_merge($plugin_ids, preg_grep('/^' . preg_quote($id, '/') . PluginBase::DERIVATIVE_SEPARATOR . '/', $all_ids)); if ($this->hasDefinition($id)) { $plugin_ids[] = $id; } Loading core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php +20 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\migrate\Unit; use Drupal\Core\Cache\CacheBackendInterface; use Drupal\migrate\Plugin\Migration; use Drupal\migrate\Plugin\MigrationPluginManager; use Drupal\Tests\UnitTestCase; Loading Loading @@ -65,6 +66,25 @@ public function testDependencyBuilding($migrations_data, $result_ids) { } } /** * Tests that expandPluginIds returns all derivatives. */ public function testExpandPluginIds() { $backend = $this->prophesize(CacheBackendInterface::class); $cache = new \stdClass(); $cache->data = [ 'a:a' => ['provider' => 'core'], 'a:b' => ['provider' => 'core'], 'b' => ['provider' => 'core'], ]; $backend->get('migration_plugins')->willReturn($cache); $this->pluginManager->setCacheBackend($backend->reveal(), 'migration_plugins'); $plugin_ids = $this->pluginManager->expandPluginIds(['b', 'a']); $this->assertContains('a:a', $plugin_ids); $this->assertContains('a:b', $plugin_ids); $this->assertContains('b', $plugin_ids); } /** * Provide dependency data for testing. */ Loading Loading
core/modules/migrate/src/Plugin/MigrationPluginManager.php +1 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ public function expandPluginIds(array $migration_ids) { $plugin_ids = []; $all_ids = array_keys($this->getDefinitions()); foreach ($migration_ids as $id) { $plugin_ids += preg_grep('/^' . preg_quote($id, '/') . PluginBase::DERIVATIVE_SEPARATOR . '/', $all_ids); $plugin_ids = array_merge($plugin_ids, preg_grep('/^' . preg_quote($id, '/') . PluginBase::DERIVATIVE_SEPARATOR . '/', $all_ids)); if ($this->hasDefinition($id)) { $plugin_ids[] = $id; } Loading
core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php +20 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\migrate\Unit; use Drupal\Core\Cache\CacheBackendInterface; use Drupal\migrate\Plugin\Migration; use Drupal\migrate\Plugin\MigrationPluginManager; use Drupal\Tests\UnitTestCase; Loading Loading @@ -65,6 +66,25 @@ public function testDependencyBuilding($migrations_data, $result_ids) { } } /** * Tests that expandPluginIds returns all derivatives. */ public function testExpandPluginIds() { $backend = $this->prophesize(CacheBackendInterface::class); $cache = new \stdClass(); $cache->data = [ 'a:a' => ['provider' => 'core'], 'a:b' => ['provider' => 'core'], 'b' => ['provider' => 'core'], ]; $backend->get('migration_plugins')->willReturn($cache); $this->pluginManager->setCacheBackend($backend->reveal(), 'migration_plugins'); $plugin_ids = $this->pluginManager->expandPluginIds(['b', 'a']); $this->assertContains('a:a', $plugin_ids); $this->assertContains('a:b', $plugin_ids); $this->assertContains('b', $plugin_ids); } /** * Provide dependency data for testing. */ Loading