/**
  * Download dependencies
  * expects an array of extension objects to download
  *
  * @param Extension[] $downloadQueue
  * @return array
  */
 protected function downloadDependencies(array $downloadQueue)
 {
     $resolvedDependencies = array();
     foreach ($downloadQueue as $extensionToDownload) {
         $this->downloadUtility->download($extensionToDownload);
         $this->downloadQueue->removeExtensionFromQueue($extensionToDownload);
         $resolvedDependencies['downloaded'][$extensionToDownload->getExtensionKey()] = $extensionToDownload;
         $this->markExtensionForInstallation($extensionToDownload->getExtensionKey());
     }
     return $resolvedDependencies;
 }
 /**
  * @test
  * @return void
  */
 public function removeExtensionFromQueueRemovesExtension()
 {
     $extensionMock2 = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array('dummy'));
     $extensionMock2->_set('extensionKey', 'foobarbaz');
     $extensionMock2->_set('version', '1.0.3');
     $this->downloadQueueMock->_set('extensionStorage', array('download' => array('foobar' => $this->extensionMock, 'foobarbaz' => $extensionMock2)));
     $extensionStorageBefore = $this->downloadQueueMock->_get('extensionStorage');
     $this->assertTrue(array_key_exists('foobar', $extensionStorageBefore['download']));
     $this->downloadQueueMock->removeExtensionFromQueue($this->extensionMock);
     $extensionStorageAfter = $this->downloadQueueMock->_get('extensionStorage');
     $this->assertFalse(array_key_exists('foobar', $extensionStorageAfter['download']));
 }