public function ToolkitImagemagickFormTest::testFormAndSettings in ImageMagick 8.3
Same name and namespace in other branches
- 8.2 tests/src/Functional/ToolkitImagemagickFormTest.php \Drupal\Tests\imagemagick\Functional\ToolkitImagemagickFormTest::testFormAndSettings()
Test ImageMagick subform and settings.
File
- tests/
src/ Functional/ ToolkitImagemagickFormTest.php, line 42
Class
- ToolkitImagemagickFormTest
- Tests ImageMagick subform and settings.
Namespace
Drupal\Tests\imagemagick\FunctionalCode
public function testFormAndSettings() : void {
$admin_path = 'admin/config/media/image-toolkit';
// Change the toolkit.
\Drupal::configFactory()
->getEditable('system.image')
->set('toolkit', 'imagemagick')
->save();
// Test form is accepting wrong binaries path while setting toolkit to GD.
$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');
// Change the toolkit via form.
$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');
// Test default supported image extensions.
$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');
// Enable TIFF.
$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');
// Enable BMP.
$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');
// Disable PNG.
$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');
// Disable some extensions.
$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');
// Add a format with missing mimetype.
$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');
}