You are here

public function UpdatePathTestBaseTest::testPathAliasProcessing in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBaseTest.php \Drupal\FunctionalTests\Update\UpdatePathTestBaseTest::testPathAliasProcessing()

Tests that path aliases are not processed during database updates.

File

core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBaseTest.php, line 118

Class

UpdatePathTestBaseTest
Tests the update path base class.

Namespace

Drupal\FunctionalTests\Update

Code

public function testPathAliasProcessing() {

  // Add a path alias for the '/admin' system path.
  $values = [
    'path' => '/admin/structure',
    'alias' => '/admin-structure-alias',
    'langcode' => 'und',
    'status' => 1,
  ];
  $database = \Drupal::database();
  $id = $database
    ->insert('path_alias')
    ->fields($values + [
    'uuid' => \Drupal::service('uuid')
      ->generate(),
  ])
    ->execute();
  $revision_id = $database
    ->insert('path_alias_revision')
    ->fields($values + [
    'id' => $id,
    'revision_default' => 1,
  ])
    ->execute();
  $database
    ->update('path_alias')
    ->fields([
    'revision_id' => $revision_id,
  ])
    ->condition('id', $id)
    ->execute();

  // Increment the schema version.
  \Drupal::state()
    ->set('update_test_schema_version', 8002);
  $this
    ->runUpdates();

  // Check that the alias defined earlier is not used during the update
  // process.
  $this
    ->assertSession()
    ->linkByHrefExists('/admin/structure');
  $this
    ->assertSession()
    ->linkByHrefNotExists('/admin-structure-alias');
  $account = $this
    ->createUser([
    'administer site configuration',
    'access administration pages',
    'access site reports',
  ]);
  $this
    ->drupalLogin($account);

  // Go to the status report page and check that the alias is used.
  $this
    ->drupalGet('admin/reports/status');
  $this
    ->assertSession()
    ->linkByHrefNotExists('/admin/structure');
  $this
    ->assertSession()
    ->linkByHrefExists('/admin-structure-alias');
}