Added Entity and Entity Reference Revisions which got dropped somewhere along the...
[yaffs-website] / web / modules / contrib / entity / tests / src / Functional / DeleteMultipleFormTest.php
diff --git a/web/modules/contrib/entity/tests/src/Functional/DeleteMultipleFormTest.php b/web/modules/contrib/entity/tests/src/Functional/DeleteMultipleFormTest.php
new file mode 100644 (file)
index 0000000..aaf70c6
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+
+namespace Drupal\Tests\entity\Functional;
+
+use Drupal\entity_module_test\Entity\EnhancedEntity;
+use Drupal\Tests\BrowserTestBase;
+
+/**
+ * Tests the delete multiple confirmation form.
+ *
+ * @group entity
+ * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
+ */
+class DeleteMultipleFormTest extends BrowserTestBase {
+
+  /**
+   * The current user.
+   *
+   * @var \Drupal\Core\Session\AccountInterface
+   */
+  protected $account;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['entity_module_test', 'user', 'entity'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->account = $this->drupalCreateUser(['administer entity_test_enhanced']);
+    $this->drupalLogin($this->account);
+  }
+
+  /**
+   * Tests the add page.
+   */
+  public function testForm() {
+    $entities = [];
+    $selection = [];
+    for ($i = 0; $i < 2; $i++) {
+      $entity = EnhancedEntity::create([
+        'type' => 'default',
+      ]);
+      $entity->save();
+      $entities[$entity->id()] = $entity;
+
+      $langcode = $entity->language()->getId();
+      $selection[$entity->id()][$langcode] = $langcode;
+    }
+    // Add the selection to the tempstore just like DeleteAction would.
+    $tempstore = \Drupal::service('tempstore.private')->get('entity_delete_multiple_confirm');
+    $tempstore->set($this->account->id() . ':entity_test_enhanced', $selection);
+
+    $this->drupalGet('/entity_test_enhanced/delete');
+    $assert = $this->assertSession();
+    $assert->statusCodeEquals(200);
+    $assert->elementTextContains('css', '.page-title', 'Are you sure you want to delete these enhanced entities?');
+    $delete_button = $this->getSession()->getPage()->findButton('Delete');
+    $delete_button->click();
+    $assert = $this->assertSession();
+    $assert->addressEquals('/entity_test_enhanced');
+    $assert->responseContains('Deleted 2 items.');
+
+    \Drupal::entityTypeManager()->getStorage('entity_test_enhanced')->resetCache();
+    $remaining_entities = EnhancedEntity::loadMultiple(array_keys($selection));
+    $this->assertEmpty($remaining_entities);
+  }
+
+}