From d582ea74c72e2a3ceb1efe5bf14a60068b3c3aa7 Mon Sep 17 00:00:00 2001
From: darthsteven <darthsteven@99644.no-reply.drupal.org>
Date: Thu, 23 Aug 2018 07:10:08 +0100
Subject: [PATCH] Issue #2994535 by Steven Jones: Processors are broken

---
 imageapi_optimize_binaries.services.yml             | 4 ++--
 src/ImageAPIOptimizeProcessorBinaryBase.php         | 7 ++++---
 src/ImageAPIOptimizeShellOperationsInterface.php    | 9 +++++++++
 src/Plugin/ImageAPIOptimizeProcessor/AdvDef.php     | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/AdvPng.php     | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/JfifRemove.php | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/JpegOptim.php  | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/JpegTran.php   | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/OptiPng.php    | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/PngCrush.php   | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/PngOut.php     | 4 ++--
 src/Plugin/ImageAPIOptimizeProcessor/PngQuant.php   | 4 ++--
 src/ShellOperations.php                             | 2 +-
 tests/src/Unit/AdvDefTest.php                       | 2 +-
 tests/src/Unit/AdvPngTest.php                       | 2 +-
 tests/src/Unit/BinaryTestCase.php                   | 2 +-
 16 files changed, 37 insertions(+), 27 deletions(-)
 create mode 100644 src/ImageAPIOptimizeShellOperationsInterface.php

diff --git a/imageapi_optimize_binaries.services.yml b/imageapi_optimize_binaries.services.yml
index 824238f..eb10844 100644
--- a/imageapi_optimize_binaries.services.yml
+++ b/imageapi_optimize_binaries.services.yml
@@ -1,3 +1,3 @@
 services:
-  imageapi_optimize.shell_operations:
-    class: Drupal\imageapi_optimize\ShellOperations
+  imageapi_optimize_binaries.shell_operations:
+    class: Drupal\imageapi_optimize_binaries\ShellOperations
diff --git a/src/ImageAPIOptimizeProcessorBinaryBase.php b/src/ImageAPIOptimizeProcessorBinaryBase.php
index 3a5e117..8009fb3 100644
--- a/src/ImageAPIOptimizeProcessorBinaryBase.php
+++ b/src/ImageAPIOptimizeProcessorBinaryBase.php
@@ -1,10 +1,11 @@
 <?php
 
-namespace Drupal\imageapi_optimize;
+namespace Drupal\imageapi_optimize_binaries;
 
 use Drupal\Core\File\FileSystemInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Image\ImageFactory;
+use Drupal\imageapi_optimize\ConfigurableImageAPIOptimizeProcessorBase;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -23,7 +24,7 @@ abstract class ImageAPIOptimizeProcessorBinaryBase extends ConfigurableImageAPIO
   /**
    * The imageapi shell operation service.
    *
-   * @var \Drupal\imageapi_optimize\ImageAPIOptimizeShellOperationsInterface
+   * @var \Drupal\imageapi_optimize_binaries\ImageAPIOptimizeShellOperationsInterface
    */
   protected $shellOperations;
 
@@ -48,7 +49,7 @@ abstract class ImageAPIOptimizeProcessorBinaryBase extends ConfigurableImageAPIO
       $container->get('logger.factory')->get('imageapi_optimize'),
       $container->get('image.factory'),
       $container->get('file_system'),
-      $container->get('imageapi_optimize.shell_operations')
+      $container->get('imageapi_optimize_binaries.shell_operations')
     );
   }
 
diff --git a/src/ImageAPIOptimizeShellOperationsInterface.php b/src/ImageAPIOptimizeShellOperationsInterface.php
new file mode 100644
index 0000000..bbfdd8b
--- /dev/null
+++ b/src/ImageAPIOptimizeShellOperationsInterface.php
@@ -0,0 +1,9 @@
+<?php
+
+namespace Drupal\imageapi_optimize_binaries;
+
+interface ImageAPIOptimizeShellOperationsInterface {
+  public function findExecutablePath($executable = NULL);
+  public function execShellCommand($command, $options, $arguments);
+  public function saveCommandStdoutToFile($cmd, $dst);
+}
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/AdvDef.php b/src/Plugin/ImageAPIOptimizeProcessor/AdvDef.php
index 43c54c7..751e449 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/AdvDef.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/AdvDef.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the AdvDef binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/AdvPng.php b/src/Plugin/ImageAPIOptimizeProcessor/AdvPng.php
index bdba1b5..e33c7d4 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/AdvPng.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/AdvPng.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the AdvPng binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/JfifRemove.php b/src/Plugin/ImageAPIOptimizeProcessor/JfifRemove.php
index 7fa9421..04ffd3d 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/JfifRemove.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/JfifRemove.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the JfifRemove binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/JpegOptim.php b/src/Plugin/ImageAPIOptimizeProcessor/JpegOptim.php
index 65eee8a..316979d 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/JpegOptim.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/JpegOptim.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the JpegOptim binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/JpegTran.php b/src/Plugin/ImageAPIOptimizeProcessor/JpegTran.php
index ea44c79..b51abc6 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/JpegTran.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/JpegTran.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the JpegTran binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/OptiPng.php b/src/Plugin/ImageAPIOptimizeProcessor/OptiPng.php
index cb4127b..2810656 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/OptiPng.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/OptiPng.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the OptiPng binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/PngCrush.php b/src/Plugin/ImageAPIOptimizeProcessor/PngCrush.php
index 8c291ff..2f86bc0 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/PngCrush.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/PngCrush.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the PngCrush binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/PngOut.php b/src/Plugin/ImageAPIOptimizeProcessor/PngOut.php
index 13cb200..132eccb 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/PngOut.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/PngOut.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the PngOut binary to optimize images.
diff --git a/src/Plugin/ImageAPIOptimizeProcessor/PngQuant.php b/src/Plugin/ImageAPIOptimizeProcessor/PngQuant.php
index 30f9824..d2a74d7 100644
--- a/src/Plugin/ImageAPIOptimizeProcessor/PngQuant.php
+++ b/src/Plugin/ImageAPIOptimizeProcessor/PngQuant.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor;
+namespace Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor;
 
-use Drupal\imageapi_optimize\ImageAPIOptimizeProcessorBinaryBase;
+use Drupal\imageapi_optimize_binaries\ImageAPIOptimizeProcessorBinaryBase;
 
 /**
  * Uses the PngQuant binary to optimize images.
diff --git a/src/ShellOperations.php b/src/ShellOperations.php
index ee39821..1c45f0b 100644
--- a/src/ShellOperations.php
+++ b/src/ShellOperations.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\imageapi_optimize;
+namespace Drupal\imageapi_optimize_binaries;
 
 
 /**
diff --git a/tests/src/Unit/AdvDefTest.php b/tests/src/Unit/AdvDefTest.php
index 01c1b94..99b9533 100644
--- a/tests/src/Unit/AdvDefTest.php
+++ b/tests/src/Unit/AdvDefTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\Tests\imageapi_optimize\Unit;
 
-use Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor\AdvDef;
+use Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor\AdvDef;
 
 /**
  * Tests AdvDef image optimize plugin.
diff --git a/tests/src/Unit/AdvPngTest.php b/tests/src/Unit/AdvPngTest.php
index f7f91f8..1642fb9 100644
--- a/tests/src/Unit/AdvPngTest.php
+++ b/tests/src/Unit/AdvPngTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\Tests\imageapi_optimize\Unit;
 
-use Drupal\imageapi_optimize\Plugin\ImageAPIOptimizeProcessor\AdvPng;
+use Drupal\imageapi_optimize_binaries\Plugin\ImageAPIOptimizeProcessor\AdvPng;
 
 /**
  * Tests AdvPng image optimize plugin.
diff --git a/tests/src/Unit/BinaryTestCase.php b/tests/src/Unit/BinaryTestCase.php
index de77529..b128b31 100644
--- a/tests/src/Unit/BinaryTestCase.php
+++ b/tests/src/Unit/BinaryTestCase.php
@@ -30,7 +30,7 @@ abstract class BinaryTestCase extends UnitTestCase {
   }
 
   protected function getShellOperationsMock() {
-    $shellOperationsMock =  $this->getMockBuilder('\Drupal\imageapi_optimize\ImageAPIOptimizeShellOperationsInterface')
+    $shellOperationsMock =  $this->getMockBuilder('\Drupal\imageapi_optimize_binaries\ImageAPIOptimizeShellOperationsInterface')
       ->setMethods(['findExecutablePath', 'execShellCommand', 'saveCommandStdoutToFile'])
       ->getMock();
 
-- 
GitLab