/**
  * @test
  */
 public function deletePackageRemovesPackageFromAvailableAndActivePackagesAndDeletesThePackageDirectory()
 {
     $this->createPackage('Acme.YetAnotherTestPackage');
     $this->assertTrue($this->packageManager->isPackageActive('Acme.YetAnotherTestPackage'));
     $this->assertTrue($this->packageManager->isPackageAvailable('Acme.YetAnotherTestPackage'));
     $this->packageManager->deletePackage('Acme.YetAnotherTestPackage');
     $this->assertFalse($this->packageManager->isPackageActive('Acme.YetAnotherTestPackage'));
     $this->assertFalse($this->packageManager->isPackageAvailable('Acme.YetAnotherTestPackage'));
 }
 /**
  * Remove an extension (delete the directory)
  *
  * @param string $extension
  * @throws \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
  * @return void
  */
 public function removeExtension($extension)
 {
     $absolutePath = $this->fileHandlingUtility->getAbsoluteExtensionPath($extension);
     if ($this->fileHandlingUtility->isValidExtensionPath($absolutePath)) {
         if ($this->packageManager->isPackageAvailable($extension)) {
             // Package manager deletes the extension and removes the entry from PackageStates.php
             $this->packageManager->deletePackage($extension);
         } else {
             // The extension is not listed in PackageStates.php, we can safely remove it
             $this->fileHandlingUtility->removeDirectory($absolutePath);
         }
     } else {
         throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException('No valid extension path given.', 1342875724);
     }
 }