function UrlHelperTest::providerTestIsExternal

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php \Drupal\Tests\Component\Utility\UrlHelperTest::providerTestIsExternal()
  2. 10 core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php \Drupal\Tests\Component\Utility\UrlHelperTest::providerTestIsExternal()
  3. 11.x core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php \Drupal\Tests\Component\Utility\UrlHelperTest::providerTestIsExternal()

Provides data for self::testIsExternal().

Return value

array

File

core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php, line 402

Class

UrlHelperTest
@group Utility

Namespace

Drupal\Tests\Component\Utility

Code

public static function providerTestIsExternal() {
    return [
        [
            '/internal/path',
            FALSE,
        ],
        [
            'https://example.com/external/path',
            TRUE,
        ],
        [
            'javascript://fake-external-path',
            FALSE,
        ],
        // External URL without an explicit protocol.
[
            '//www.drupal.org/foo/bar?foo=bar&bar=baz&baz#foo',
            TRUE,
        ],
        // Internal URL starting with a slash.
[
            '/www.drupal.org',
            FALSE,
        ],
        // Simple external URLs.
[
            'http://example.com',
            TRUE,
        ],
        [
            'https://example.com',
            TRUE,
        ],
        [
            'http://drupal.org/foo/bar?foo=bar&bar=baz&baz#foo',
            TRUE,
        ],
        [
            '//drupal.org',
            TRUE,
        ],
        // Some browsers ignore or strip leading control characters.
[
            "\x00//www.example.com",
            TRUE,
        ],
        [
            "\x08//www.example.com",
            TRUE,
        ],
        [
            "\x1f//www.example.com",
            TRUE,
        ],
        [
            "\n//www.example.com",
            TRUE,
        ],
        // JSON supports decoding directly from UTF-8 code points.
[
            json_decode('"\\u00AD"') . "//www.example.com",
            TRUE,
        ],
        [
            json_decode('"\\u200E"') . "//www.example.com",
            TRUE,
        ],
        [
            json_decode('"\\uE0020"') . "//www.example.com",
            TRUE,
        ],
        [
            json_decode('"\\uE000"') . "//www.example.com",
            TRUE,
        ],
        // Backslashes should be normalized to forward.
[
            '\\\\example.com',
            TRUE,
        ],
        // Local URLs.
[
            'node',
            FALSE,
        ],
        [
            '/system/ajax',
            FALSE,
        ],
        [
            '?q=foo:bar',
            FALSE,
        ],
        [
            'node/edit:me',
            FALSE,
        ],
        [
            '/drupal.org',
            FALSE,
        ],
        [
            '<front>',
            FALSE,
        ],
    ];
}

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