function LegacyAliasStorageTest::testCRUD
@covers ::load @covers ::save @covers ::delete @expectedDeprecation \Drupal\Core\Path\AliasStorage is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use the "path_alias.repository" service instead, or the entity storage handler for the "path_alias" entity type for CRUD methods. See https://www.drupal.org/node/3013865.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Path/ LegacyAliasStorageTest.php, line 61
Class
- LegacyAliasStorageTest
- @coversDefaultClass \Drupal\Core\Path\AliasStorage @group path @group legacy
Namespace
Drupal\KernelTests\Core\PathCode
public function testCRUD() {
$entity_storage = \Drupal::entityTypeManager()->getStorage('path_alias');
$aliases = $this->sampleUrlAliases();
// Create a few aliases
foreach ($aliases as $idx => $alias) {
$this->storage
->save($alias['source'], $alias['alias'], $alias['langcode']);
$result = $entity_storage->getQuery()
->condition('path', $alias['source'])
->condition('alias', $alias['alias'])
->condition('langcode', $alias['langcode'])
->execute();
$this->assertCount(1, $result, "Created an entry for {$alias['alias']}.");
// Cache the pid for further tests.
$aliases[$idx]['pid'] = reset($result);
}
// Load a few aliases
foreach ($aliases as $alias) {
$pid = $alias['pid'];
$loadedAlias = $this->storage
->load([
'pid' => $pid,
]);
$this->assertEquals($alias, $loadedAlias, "Loaded the expected path with pid {$pid}.");
}
// Load alias by source path.
$loadedAlias = $this->storage
->load([
'source' => '/node/1',
]);
$this->assertEquals('/alias_for_node_1_und', $loadedAlias['alias'], 'The last created alias loaded by default.');
// Update a few aliases
foreach ($aliases as $alias) {
$fields = $this->storage
->save($alias['source'], $alias['alias'] . '_updated', $alias['langcode'], $alias['pid']);
$this->assertEquals($alias['alias'], $fields['original']['alias']);
$result = $entity_storage->getQuery()
->condition('path', $alias['source'])
->condition('alias', $alias['alias'] . '_updated')
->condition('langcode', $alias['langcode'])
->execute();
$pid = reset($result);
$this->assertEquals($alias['pid'], $pid, "Updated entry for pid {$pid}.");
}
// Delete a few aliases
foreach ($aliases as $alias) {
$pid = $alias['pid'];
$this->storage
->delete([
'pid' => $pid,
]);
$result = $entity_storage->getQuery()
->condition('id', $pid)
->execute();
$this->assertCount(0, $result, "Deleted entry with pid {$pid}.");
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.