function FilterAdminTest::testFormatAdmin

Same name and namespace in other branches
  1. 8.9.x core/modules/filter/tests/src/Functional/FilterAdminTest.php \Drupal\Tests\filter\Functional\FilterAdminTest::testFormatAdmin()
  2. 10 core/modules/filter/tests/src/Functional/FilterAdminTest.php \Drupal\Tests\filter\Functional\FilterAdminTest::testFormatAdmin()
  3. 11.x core/modules/filter/tests/src/Functional/FilterAdminTest.php \Drupal\Tests\filter\Functional\FilterAdminTest::testFormatAdmin()

Tests the format administration functionality.

File

core/modules/filter/tests/src/Functional/FilterAdminTest.php, line 128

Class

FilterAdminTest
Thoroughly test the administrative interface of the filter module.

Namespace

Drupal\Tests\filter\Functional

Code

public function testFormatAdmin() {
    // Add text format.
    $this->drupalGet('admin/config/content/formats');
    $this->clickLink('Add text format');
    $format_id = mb_strtolower($this->randomMachineName());
    $name = $this->randomMachineName();
    $edit = [
        'format' => $format_id,
        'name' => $name,
    ];
    $this->submitForm($edit, 'Save configuration');
    // Verify default weight of the text format.
    $this->drupalGet('admin/config/content/formats');
    $this->assertSession()
        ->fieldValueEquals("formats[{$format_id}][weight]", 0);
    // Change the weight of the text format.
    $edit = [
        "formats[{$format_id}][weight]" => 5,
    ];
    $this->drupalGet('admin/config/content/formats');
    $this->submitForm($edit, 'Save');
    $this->assertSession()
        ->fieldValueEquals("formats[{$format_id}][weight]", 5);
    // Edit text format.
    $this->drupalGet('admin/config/content/formats');
    $destination = Url::fromRoute('filter.admin_overview')->toString();
    $edit_href = Url::fromRoute('entity.filter_format.edit_form', [
        'filter_format' => $format_id,
    ], [
        'query' => [
            'destination' => $destination,
        ],
    ])->toString();
    $this->assertSession()
        ->linkByHrefExists($edit_href);
    $this->drupalGet('admin/config/content/formats/manage/' . $format_id);
    $this->submitForm([], 'Save configuration');
    // Verify that the custom weight of the text format has been retained.
    $this->drupalGet('admin/config/content/formats');
    $this->assertSession()
        ->fieldValueEquals("formats[{$format_id}][weight]", 5);
    // Disable text format.
    $this->assertSession()
        ->linkByHrefExists('admin/config/content/formats/manage/' . $format_id . '/disable');
    $this->drupalGet('admin/config/content/formats/manage/' . $format_id . '/disable');
    $this->submitForm([], 'Disable');
    // Verify that disabled text format no longer exists.
    $this->drupalGet('admin/config/content/formats/manage/' . $format_id);
    $this->assertSession()
        ->statusCodeEquals(404);
    // Attempt to create a format of the same machine name as the disabled
    // format but with a different human readable name.
    $edit = [
        'format' => $format_id,
        'name' => 'New format',
    ];
    $this->drupalGet('admin/config/content/formats/add');
    $this->submitForm($edit, 'Save configuration');
    $this->assertSession()
        ->statusMessageContains('The machine-readable name is already in use. It must be unique.', 'error');
    // Attempt to create a format of the same human readable name as the
    // disabled format but with a different machine name.
    $edit = [
        'format' => 'new_format',
        'name' => $name,
    ];
    $this->drupalGet('admin/config/content/formats/add');
    $this->submitForm($edit, 'Save configuration');
    $this->assertSession()
        ->statusMessageContains("Text format names must be unique. A format named {$name} already exists.", 'error');
}

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