installEntitySchema('user'); $this->installEntitySchema('entity_test_enhanced'); $this->installSchema('system', ['key_value_expire', 'sequences']); $bundle = EnhancedEntityBundle::create([ 'id' => 'default', 'label' => 'Default', ]); $bundle->save(); $this->user = User::create([ 'name' => 'username', 'status' => 1, ]); $this->user->save(); \Drupal::service('current_user')->setAccount($this->user); } public function testAction() { /** @var \Drupal\system\ActionConfigEntityInterface $action */ $action = Action::create([ 'id' => 'enhanced_entity_delete_action', 'label' => 'Delete enhanced entity', 'plugin' => 'entity_delete_action:entity_test_enhanced', ]); $status = $action->save(); $this->assertEquals(SAVED_NEW, $status); $this->assertInstanceOf(DeleteAction::class, $action->getPlugin()); $entities = []; for ($i = 0; $i < 2; $i++) { $entity = EnhancedEntity::create([ 'type' => 'default', ]); $entity->save(); $entities[$entity->id()] = $entity; } $action->execute($entities); // Confirm that the entity ids and langcodes are now in the tempstore. $tempstore = \Drupal::service('tempstore.private')->get('entity_delete_multiple_confirm'); $selection = $tempstore->get($this->user->id() . ':entity_test_enhanced'); $this->assertEquals(array_keys($entities), array_keys($selection)); $this->assertEquals([['en' => 'en'], ['en' => 'en']], array_values($selection)); } }