Chris@14: entityTypeId = 'user'; Chris@14: $this->testLanguageSelector = FALSE; Chris@14: $this->name = $this->randomMachineName(); Chris@14: parent::setUp(); Chris@14: Chris@14: \Drupal::entityManager()->getStorage('user')->resetCache(); Chris@14: } Chris@14: Chris@14: /** Chris@14: * {@inheritdoc} Chris@14: */ Chris@14: protected function getTranslatorPermissions() { Chris@14: return array_merge(parent::getTranslatorPermissions(), ['administer users']); Chris@14: } Chris@14: Chris@14: /** Chris@14: * {@inheritdoc} Chris@14: */ Chris@14: protected function getNewEntityValues($langcode) { Chris@14: // User name is not translatable hence we use a fixed value. Chris@14: return ['name' => $this->name] + parent::getNewEntityValues($langcode); Chris@14: } Chris@14: Chris@14: /** Chris@14: * {@inheritdoc} Chris@14: */ Chris@14: protected function doTestTranslationEdit() { Chris@14: $storage = $this->container->get('entity_type.manager') Chris@14: ->getStorage($this->entityTypeId); Chris@14: $storage->resetCache([$this->entityId]); Chris@14: $entity = $storage->load($this->entityId); Chris@14: $languages = $this->container->get('language_manager')->getLanguages(); Chris@14: Chris@14: foreach ($this->langcodes as $langcode) { Chris@14: // We only want to test the title for non-english translations. Chris@14: if ($langcode != 'en') { Chris@14: $options = ['language' => $languages[$langcode]]; Chris@18: $url = $entity->toUrl('edit-form', $options); Chris@14: $this->drupalGet($url); Chris@14: Chris@14: $title = t('@title [%language translation]', [ Chris@14: '@title' => $entity->getTranslation($langcode)->label(), Chris@14: '%language' => $languages[$langcode]->getName(), Chris@14: ]); Chris@14: $this->assertRaw($title); Chris@14: } Chris@14: } Chris@14: } Chris@14: Chris@16: /** Chris@16: * Test translated user deletion. Chris@16: */ Chris@16: public function testTranslatedUserDeletion() { Chris@16: $this->drupalLogin($this->administrator); Chris@16: $entity_id = $this->createEntity($this->getNewEntityValues('en'), 'en'); Chris@16: Chris@16: $entity = $this->container->get('entity_type.manager') Chris@16: ->getStorage($this->entityTypeId) Chris@16: ->load($entity_id); Chris@16: $translated_entity = $entity->addTranslation('fr'); Chris@16: $translated_entity->save(); Chris@16: Chris@16: $url = $entity->toUrl( Chris@16: 'edit-form', Chris@16: ['language' => $this->container->get('language_manager')->getLanguage('en')] Chris@16: ); Chris@16: $this->drupalPostForm($url, [], t('Cancel account')); Chris@16: $this->assertSession()->statusCodeEquals(200); Chris@16: } Chris@16: Chris@14: }