function LocalesLocationAddIndexUpdateTest::testExistingIndex

Same name and namespace in other branches
  1. 11.x 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.