--- a/tests/src/Functional/ToolkitImagemagickTest.php +++ b/tests/src/Functional/ToolkitImagemagickTest.php @@ -492,10 +492,14 @@ class ToolkitImagemagickTest extends BrowserTestBase { 'viet "with double quotes" hình ảnh thử nghiệm.png', ]; foreach ($file_names as $file) { + // On Windows, skip filenames with non-allowed characters. + if (substr(PHP_OS, 0, 3) === 'WIN' && preg_match('/[:*?"<>|]/', $file)) { + continue; + } $image = $this->imageFactory->get(); $this->assertTrue($image->createNew(50, 20, 'png')); $file_path = $this->testDirectory . '/' . $file; - $this->assertTrue($image->save($file_path)); + $this->assertTrue($image->save($file_path), $file); $image_reloaded = $this->imageFactory->get($file_path, 'gd'); $this->assertTrue($image_reloaded->isValid(), "Image file '$file' loaded successfully."); } @@ -770,7 +774,13 @@ class ToolkitImagemagickTest extends BrowserTestBase { $image->getToolkit()->addArgument($argument); } $image->save($image_uri . '.derived'); - $this->assertSame("-resize 100x75! -quality 75 -colorspace 'RGB'", $image->getToolkit()->getStringForBinary()); + if (substr(PHP_OS, 0, 3) === 'WIN') { + $expected = "-resize 100x75! -quality 75 -colorspace \"RGB\""; + } + else { + $expected = "-resize 100x75! -quality 75 -colorspace 'RGB'"; + } + $this->assertSame($expected, $image->getToolkit()->getStringForBinary()); } /** @@ -780,9 +790,9 @@ class ToolkitImagemagickTest extends BrowserTestBase { $exec_manager = \Drupal::service('imagemagick.exec_manager'); $output = ''; $error = ''; - // @todo differentiate for Windows? + $expected = substr(PHP_OS, 0, 3) !== 'WIN' ? 127 : 1; $ret = $exec_manager->runOsShell('pinkpanther', '-inspector Clouseau', 'blake', $output, $error); - $this->assertEquals(127, $ret, $error); + $this->assertEquals($expected, $ret, $error); } /** @@ -792,12 +802,12 @@ class ToolkitImagemagickTest extends BrowserTestBase { $exec_manager = \Drupal::service('imagemagick.exec_manager'); $output = ''; $error = ''; + $expected = substr(PHP_OS, 0, 3) !== 'WIN' ? 143 : 1; // Set a short timeout (1 sec.) and run a process that is expected to last // longer (10 secs.). Should return a 'terminate' exit code. $exec_manager->setTimeout(1); - // @todo differentiate for Windows? $ret = $exec_manager->runOsShell('sleep', '10', 'sleep', $output, $error); - $this->assertEquals(143, $ret, $error); + $this->assertEquals($expected, $ret, $error); } }