You are here

public function ImageFieldWidgetTest::testWidgetElement in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/image/tests/src/Functional/ImageFieldWidgetTest.php \Drupal\Tests\image\Functional\ImageFieldWidgetTest::testWidgetElement()
  2. 10 core/modules/image/tests/src/Functional/ImageFieldWidgetTest.php \Drupal\Tests\image\Functional\ImageFieldWidgetTest::testWidgetElement()

Tests file widget element.

File

core/modules/image/tests/src/Functional/ImageFieldWidgetTest.php, line 22

Class

ImageFieldWidgetTest
Tests the image field widget.

Namespace

Drupal\Tests\image\Functional

Code

public function testWidgetElement() {

  // Check for image widget in add/node/article page
  $field_name = strtolower($this
    ->randomMachineName());
  $min_resolution = 50;
  $max_resolution = 100;
  $field_settings = [
    'max_resolution' => $max_resolution . 'x' . $max_resolution,
    'min_resolution' => $min_resolution . 'x' . $min_resolution,
    'alt_field' => 0,
  ];
  $this
    ->createImageField($field_name, 'article', [], $field_settings, [], [], 'Image test on [site:name]');
  $this
    ->drupalGet('node/add/article');

  // Verify that the image field widget is found on add/node page.
  $this
    ->assertSession()
    ->elementExists('xpath', '//div[contains(@class, "field--widget-image-image")]');

  // Verify that the image field widget limits accepted files.
  $this
    ->assertSession()
    ->elementExists('xpath', '//input[contains(@accept, "image/*")]');
  $this
    ->assertSession()
    ->pageTextNotContains('Image test on [site:name]');

  // Check for allowed image file extensions - default.
  $this
    ->assertSession()
    ->pageTextContains('Allowed types: png gif jpg jpeg.');

  // Try adding to the field config an unsupported extension, should not
  // appear in the allowed types.
  $field_config = FieldConfig::loadByName('node', 'article', $field_name);
  $field_config
    ->setSetting('file_extensions', 'png gif jpg jpeg tiff')
    ->save();
  $this
    ->drupalGet('node/add/article');
  $this
    ->assertSession()
    ->pageTextContains('Allowed types: png gif jpg jpeg.');

  // Add a supported extension and remove some supported ones, we should see
  // the intersect of those entered in field config with those supported.
  $field_config
    ->setSetting('file_extensions', 'png jpe tiff')
    ->save();
  $this
    ->drupalGet('node/add/article');
  $this
    ->assertSession()
    ->pageTextContains('Allowed types: png jpe.');
}