/**
  * @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'));
 }
Esempio n. 2
0
 /**
  * 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);
 }
Esempio n. 3
0
 /**
  * @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;
     }
 }