View source
<?php
namespace Drupal\Tests\imagemagick\Functional;
use Drupal\Tests\BrowserTestBase;
class ToolkitImagemagickFormTest extends BrowserTestBase {
protected static $modules = [
'system',
'imagemagick',
'file_mdm',
];
protected $defaultTheme = 'stark';
public function setUp() : void {
parent::setUp();
$admin_user = $this
->drupalCreateUser([
'administer site configuration',
]);
$this
->drupalLogin($admin_user);
}
public function testFormAndSettings() : void {
$admin_path = 'admin/config/media/image-toolkit';
\Drupal::configFactory()
->getEditable('system.image')
->set('toolkit', 'imagemagick')
->save();
$this
->drupalGet($admin_path);
$this
->assertSession()
->fieldValueEquals('image_toolkit', 'imagemagick');
$edit = [
'image_toolkit' => 'gd',
'imagemagick[suite][path_to_binaries]' => '/foo/bar/',
];
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->fieldValueEquals('image_toolkit', 'gd');
$this
->drupalGet($admin_path);
$this
->assertSession()
->fieldValueEquals('image_toolkit', 'gd');
$edit = [
'image_toolkit' => 'imagemagick',
'imagemagick[suite][path_to_binaries]' => '',
];
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->fieldValueEquals('image_toolkit', 'imagemagick');
$this
->assertSession()
->responseNotContains('Image format errors');
$this
->assertSession()
->responseContains('GIF, JPEG, PNG');
$this
->assertSession()
->responseContains('gif, jpe, jpeg, jpg, png');
$config = \Drupal::configFactory()
->getEditable('imagemagick.settings');
$image_formats = $config
->get('image_formats');
$image_formats['TIFF']['enabled'] = TRUE;
$config
->set('image_formats', $image_formats)
->save();
$this
->drupalGet($admin_path);
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseNotContains('Image format errors');
$this
->assertSession()
->responseContains('GIF, JPEG, PNG, TIFF');
$this
->assertSession()
->responseContains('gif, jpe, jpeg, jpg, png, tif, tiff');
$image_formats['BMP']['enabled'] = TRUE;
$config
->set('image_formats', $image_formats)
->save();
$this
->drupalGet($admin_path);
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseNotContains('Image format errors');
$this
->assertSession()
->responseContains('BMP, GIF, JPEG, PNG, TIFF');
$this
->assertSession()
->responseContains('bmp, dib, gif, jpe, jpeg, jpg, png, tif, tiff');
$image_formats['PNG']['enabled'] = FALSE;
$config
->set('image_formats', $image_formats)
->save();
$this
->drupalGet($admin_path);
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseNotContains('Image format errors');
$this
->assertSession()
->responseContains('BMP, GIF, JPEG, TIFF');
$this
->assertSession()
->responseContains('bmp, dib, gif, jpe, jpeg, jpg, tif, tiff');
$image_formats['TIFF']['exclude_extensions'] = 'tif, gif';
$config
->set('image_formats', $image_formats)
->save();
$this
->drupalGet($admin_path);
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseNotContains('Image format errors');
$this
->assertSession()
->responseContains('BMP, GIF, JPEG, TIFF');
$this
->assertSession()
->responseContains('bmp, dib, gif, jpe, jpeg, jpg, tiff');
$image_formats['JPEG']['exclude_extensions'] = 'jpe, jpg';
$config
->set('image_formats', $image_formats)
->save();
$this
->drupalGet($admin_path);
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseNotContains('Image format errors');
$this
->assertSession()
->responseContains('BMP, GIF, JPEG, TIFF');
$this
->assertSession()
->responseContains('bmp, dib, gif, jpeg, tiff');
$image_formats['BAX']['mime_type'] = 'foo/bar';
$config
->set('image_formats', $image_formats)
->save();
$this
->drupalGet($admin_path);
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseContains('Image format errors');
}
}