Skip to content
Snippets Groups Projects
Commit c0b80f11 authored by catch's avatar catch
Browse files

Issue #2539222 by sasanikolic: Exception when deleting a translation when...

Issue #2539222 by sasanikolic: Exception when deleting a translation when there is no canonical link template
parent 2d760331
No related branches found
No related tags found
No related merge requests found
......@@ -83,7 +83,9 @@ function path_entity_base_field_info(EntityTypeInterface $entity_type) {
* Implements hook_entity_translation_delete().
*/
function path_entity_translation_delete(EntityInterface $translation) {
$path = $translation->urlInfo()->getInternalPath();
$conditions = array('source' => '/' . $path, 'langcode' => $translation->language()->getId());
\Drupal::service('path.alias_storage')->delete($conditions);
if ($translation->hasLinkTemplate('canonical')) {
$path = $translation->urlInfo()->getInternalPath();
$conditions = array('source' => '/' . $path, 'langcode' => $translation->language()->getId());
\Drupal::service('path.alias_storage')->delete($conditions);
}
}
<?php
/**
* @file
* Contains \Drupal\path\tests\Kernel\PathNoCanonicalLinkTest.
*/
namespace Drupal\Tests\path\Kernel;
use Drupal\content_translation_test\Entity\EntityTestTranslatableUISkip;
use Drupal\KernelTests\KernelTestBase;
use Drupal\language\Entity\ConfigurableLanguage;
/**
* Tests path alias deletion when there is no canonical link template.
*
* @group path
*/
class PathNoCanonicalLinkTest extends KernelTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array('path', 'content_translation_test', 'language', 'entity_test', 'user', 'system');
protected function setUp() {
parent::setUp();
$this->installEntitySchema('entity_test');
$this->installEntitySchema('entity_test_mul');
$this->installSchema('system', 'router');
\Drupal::service('router.builder')->rebuild();
// Adding german language.
ConfigurableLanguage::create(['id' => 'de'])->save();
$this->config('language.types')->setData([
'configurable' => ['language_interface'],
'negotiation' => ['language_interface' => ['enabled' => ['language-url' => 0]]],
])->save();
}
/**
* Tests for no canonical link templates.
*/
public function testNoCanonicalLinkTemplate() {
$entity_type = EntityTestTranslatableUISkip::create([
'name' => 'name english',
'language' => 'en'
]);
$entity_type->save();
$entity_type->addTranslation('de', ['name' => 'name german']);
$entity_type->save();
$this->assertEqual(count($entity_type->getTranslationLanguages()), 2);
$entity_type->removeTranslation('de');
$entity_type->save();
$this->assertEqual(count($entity_type->getTranslationLanguages()), 1);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment