/** * @covers ::getPackage * @covers ::getPackages * @covers ::reset * @covers ::setPackages */ public function testPackages() { $packages = ['foo' => 'bar']; $this->featuresManager->setPackages($packages); $this->assertEquals($packages, $this->featuresManager->getPackages()); $this->assertEquals('bar', $this->featuresManager->getPackage('foo')); $this->featuresManager->reset(); $this->assertArrayEquals([], $this->featuresManager->getPackages()); $this->assertNull($this->featuresManager->getPackage('foo')); }
/** * Clean up the package list after all config has been assigned */ protected function cleanup() { $packages = $this->featuresManager->getPackages(); foreach ($packages as $index => $package) { if ($package->getStatus() === FeaturesManagerInterface::STATUS_NO_EXPORT && empty($package->getConfig()) && empty($package->getConfigOrig())) { unset($packages[$index]); } } $this->featuresManager->setPackages($packages); }
/** * @covers ::reset */ public function testReset() { $packages = ['package' => ['machine_name' => 'package', 'config' => ['example.config', 'example.config3'], 'dependencies' => [], 'bundle' => 'giraffe'], 'package2' => ['machine_name' => 'package2', 'config' => ['example.config2'], 'dependencies' => [], 'bundle' => 'giraffe']]; $this->featuresManager->setPackages($packages); $config_item = new ConfigurationItem('example', [], ['package' => 'package']); $config_item2 = new ConfigurationItem('example2', [], ['package' => 'package2']); $this->featuresManager->setConfigCollection([$config_item, $config_item2]); $this->featuresManager->reset(); $this->assertEmpty($this->featuresManager->getPackages()); $config_collection = $this->featuresManager->getConfigCollection(); $this->assertEquals('', $config_collection[0]->getPackage()); $this->assertEquals('', $config_collection[1]->getPackage()); }
/** * Adds the optional bundle prefix to package machine names. * * @param string[] &$package_names * Array of package names, passed by reference. * @param \Drupal\features\FeaturesBundleInterface $bundle * The optional bundle used for the generation. Used to generate profiles. */ protected function setPackageBundleNames(array &$package_names, FeaturesBundleInterface $bundle = NULL) { if ($bundle && !$bundle->isDefault()) { $new_package_names = []; // Assign the selected bundle to the exports. $packages = $this->featuresManager->getPackages(); foreach ($package_names as $package_name) { // Rename package to use bundle prefix. $package = $packages[$package_name]; // The install profile doesn't need renaming. if ($package['type'] != 'profile') { unset($packages[$package_name]); $package['machine_name'] = $bundle->getFullName($package['machine_name']); $package['bundle'] = $bundle->getMachineName(); $packages[$package['machine_name']] = $package; } $new_package_names[] = $package['machine_name']; } $this->featuresManager->setPackages($packages); $package_names = $new_package_names; } }