function LocalesLocationAddIndexUpdateTest::testExistingIndex

Same name in other branches
  1. 10 core/modules/locale/tests/src/Functional/LocalesLocationAddIndexUpdateTest.php \Drupal\Tests\locale\Functional\LocalesLocationAddIndexUpdateTest::testExistingIndex()

Tests locale_update_10300().

See also

locale_update_10300

File

core/modules/locale/tests/src/Functional/LocalesLocationAddIndexUpdateTest.php, line 51

Class

LocalesLocationAddIndexUpdateTest
Tests Locale update functions.

Namespace

Drupal\Tests\locale\Functional

Code

public function testExistingIndex() : void {
    $spec = [];
    $spec['locales_location'] = [
        'description' => 'Location information for source strings.',
        'fields' => [
            'lid' => [
                'type' => 'serial',
                'not null' => TRUE,
                'description' => 'Unique identifier of this location.',
            ],
            'sid' => [
                'type' => 'int',
                'not null' => TRUE,
                'description' => 'Unique identifier of this string.',
            ],
            'type' => [
                'type' => 'varchar_ascii',
                'length' => 50,
                'not null' => TRUE,
                'default' => '',
                'description' => 'The location type (file, config, path, etc).',
            ],
            'name' => [
                'type' => 'varchar',
                'length' => 255,
                'not null' => TRUE,
                'default' => '',
                'description' => 'Type dependent location information (file name, path, etc).',
            ],
            'version' => [
                'type' => 'varchar_ascii',
                'length' => 20,
                'not null' => TRUE,
                'default' => 'none',
                'description' => 'Version of Drupal where the location was found.',
            ],
        ],
        'primary key' => [
            'lid',
        ],
        'foreign keys' => [
            'locales_source' => [
                'table' => 'locales_source',
                'columns' => [
                    'sid' => 'lid',
                ],
            ],
        ],
        'indexes' => [
            'string_type' => [
                'sid',
                'type',
            ],
            'type_name' => [
                'type',
                'name',
            ],
        ],
    ];
    \Drupal::database()->schema()
        ->addIndex('locales_location', 'type_name', [
        'type',
        'name',
        'sid',
    ], $spec['locales_location']);
    // Run updates and test them.
    $this->runUpdates();
    // Ensure the update runs successfully even if an index existed prior to
    // the update.
    $schema = \Drupal::database()->schema();
    $this->assertTrue($schema->indexExists('locales_location', 'type_name'));
}

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