Browse Source

Don't load missing plugins.

Instead we should throw an exception like other parts of the framework
do.
Mark Story 7 years ago
parent
commit
fbd8a17672
2 changed files with 4 additions and 1 deletions
  1. 2 1
      src/Shell/Task/ExtractTask.php
  2. 2 0
      tests/TestCase/Shell/Task/ExtractTaskTest.php

+ 2 - 1
src/Shell/Task/ExtractTask.php

@@ -16,6 +16,7 @@ namespace Cake\Shell\Task;
 
 use Cake\Console\Shell;
 use Cake\Core\App;
+use Cake\Core\Exception\MissingPluginException;
 use Cake\Core\Plugin;
 use Cake\Filesystem\File;
 use Cake\Filesystem\Folder;
@@ -169,7 +170,7 @@ class ExtractTask extends Shell
         } elseif (isset($this->params['plugin'])) {
             $plugin = Inflector::camelize($this->params['plugin']);
             if (!Plugin::isLoaded($plugin)) {
-                Plugin::load($plugin);
+                throw new MissingPluginException(['plugin' => $plugin]);
             }
             $this->_paths = [Plugin::classPath($plugin)];
             $this->params['plugin'] = $plugin;

+ 2 - 0
tests/TestCase/Shell/Task/ExtractTaskTest.php

@@ -268,6 +268,7 @@ class ExtractTaskTest extends TestCase
     public function testExtractPlugin()
     {
         static::setAppNamespace();
+        $this->loadPlugins(['TestPlugin']);
 
         $this->Task = $this->getMockBuilder('Cake\Shell\Task\ExtractTask')
             ->setMethods(['_isExtractingApp', 'in', 'out', 'err', 'clear', '_stop'])
@@ -292,6 +293,7 @@ class ExtractTaskTest extends TestCase
     public function testExtractVendoredPlugin()
     {
         static::setAppNamespace();
+        $this->loadPlugins(['Company/TestPluginThree']);
 
         $this->Task = $this->getMockBuilder('Cake\Shell\Task\ExtractTask')
             ->setMethods(['_isExtractingApp', 'in', 'out', 'err', 'clear', '_stop'])