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. 10 core/modules/editor/tests/src/Functional/EditorDialogAccessTest.php \Drupal\Tests\editor\Functional\EditorDialogAccessTest::testEditorImageDialogAccess()

Test access to the editor image dialog.

File

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

Class

EditorDialogAccessTest
Test access to the editor dialog forms.

Namespace

Drupal\Tests\editor\Functional

Code

public function testEditorImageDialogAccess() {
    $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' => 'ckeditor',
        'format' => 'plain_text',
        'settings' => [
            'toolbar' => [
                'rows' => [
                    [
                        [
                            'name' => 'Media',
                            'items' => [
                                'DrupalImage',
                            ],
                        ],
                    ],
                ],
            ],
            'plugins' => [],
        ],
        'image_upload' => [
            'status' => FALSE,
            'scheme' => 'public',
            'directory' => 'inline-images',
            'max_size' => '',
            'max_dimensions' => [
                'width' => 0,
                'height' => 0,
            ],
        ],
    ]);
    $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,
    ] + $editor->getImageUploadSettings())
        ->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.