function EditorDialogAccessTest::testEditorImageDialogAccess

Same name and namespace in other branches
  1. 9 core/modules/editor/tests/src/Functional/EditorDialogAccessTest.php \Drupal\Tests\editor\Functional\EditorDialogAccessTest::testEditorImageDialogAccess()
  2. 8.9.x core/modules/editor/tests/src/Functional/EditorDialogAccessTest.php \Drupal\Tests\editor\Functional\EditorDialogAccessTest::testEditorImageDialogAccess()

Tests access to the editor image dialog.

File

core/modules/editor/tests/src/Functional/EditorDialogAccessTest.php, line 33

Class

EditorDialogAccessTest
Test access to the editor dialog forms.

Namespace

Drupal\Tests\editor\Functional

Code

public function testEditorImageDialogAccess() : void {
  $url = Url::fromRoute('editor.image_dialog', [
    'editor' => 'plain_text',
  ]);
  $session = $this->assertSession();
  // With no text editor, expect a 404.
  $this->drupalGet($url);
  $session->statusCodeEquals(404);
  // With a text editor but without image upload settings, expect a 200, but
  // there should not be an input[type=file].
  $editor = Editor::create([
    'editor' => 'unicorn',
    'format' => 'plain_text',
    'image_upload' => [
      'status' => FALSE,
    ],
  ]);
  $editor->save();
  $this->resetAll();
  $this->drupalGet($url);
  $this->assertNotEmpty($this->cssSelect('input[type=text][name="attributes[src]"]'), 'Image uploads disabled: input[type=text][name="attributes[src]"] is present.');
  $this->assertEmpty($this->cssSelect('input[type=file]'), 'Image uploads disabled: input[type=file] is absent.');
  $session->statusCodeEquals(200);
  // With image upload settings, expect a 200, and now there should be an
  // input[type=file].
  $editor->setImageUploadSettings([
    'status' => TRUE,
    'scheme' => 'public',
    'directory' => 'inline-images',
    'max_size' => NULL,
    'max_dimensions' => [
      'width' => NULL,
      'height' => NULL,
    ],
  ])
    ->save();
  $this->resetAll();
  $this->drupalGet($url);
  $this->assertEmpty($this->cssSelect('input[type=text][name="attributes[src]"]'), 'Image uploads enabled: input[type=text][name="attributes[src]"] is absent.');
  $this->assertNotEmpty($this->cssSelect('input[type=file]'), 'Image uploads enabled: input[type=file] is present.');
  $session->statusCodeEquals(200);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.