function ManageFieldsFunctionalTest::testInvalidUrlsAndDestinations

Same name in other branches
  1. 10 core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php \Drupal\Tests\field_ui\Functional\ManageFieldsFunctionalTest::testInvalidUrlsAndDestinations()

Tests invalid field UI URLs and destinations.

File

core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php, line 263

Class

ManageFieldsFunctionalTest
Tests the Field UI "Manage fields" screen.

Namespace

Drupal\Tests\field_ui\Functional

Code

public function testInvalidUrlsAndDestinations() : void {
    $field_id = 'node.foo.bar';
    $this->drupalGet('admin/structure/types/manage/' . $this->contentType . '/fields/' . $field_id);
    $this->assertSession()
        ->statusCodeEquals(404);
    $options = [
        'query' => [
            'destinations' => [
                'http://example.com',
            ],
        ],
    ];
    $this->drupalGet('admin/structure/types/manage/article/fields/node.article.body', $options);
    $this->submitForm([], 'Save settings');
    // The external redirect should not fire.
    $this->assertSession()
        ->addressEquals('admin/structure/types/manage/article/fields/node.article.body?destinations%5B0%5D=http%3A//example.com');
    $this->assertSession()
        ->statusCodeEquals(200);
    $this->assertSession()
        ->responseContains('Attempt to update field <em class="placeholder">Body</em> failed: <em class="placeholder">The internal path component &#039;http://example.com&#039; is external. You are not allowed to specify an external URL together with internal:/.</em>.');
}

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