function QuickEditFileTest::testRemove

Same name and namespace in other branches
  1. 9 core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditFileTest.php \Drupal\Tests\quickedit\FunctionalJavascript\QuickEditFileTest::testRemove()

Tests if a file can be in-place removed with Quick Edit.

File

core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditFileTest.php, line 58

Class

QuickEditFileTest
@group quickedit

Namespace

Drupal\Tests\quickedit\FunctionalJavascript

Code

public function testRemove() {
  $assert_session = $this->assertSession();
  // Create test file.
  $this->generateFile('test', 64, 10, 'text');
  $file = File::create([
    'uri' => 'public://test.txt',
    'filename' => 'test.txt',
  ]);
  $file->setPermanent();
  $file->save();
  // Create test node.
  $node = $this->drupalCreateNode([
    'type' => 'article',
    'title' => t('My Test Node'),
    'field_file' => [
      'target_id' => $file->id(),
    ],
  ]);
  $this->drupalGet($node->toUrl()
    ->toString());
  // Start Quick Edit.
  $this->awaitQuickEditForEntity('node', 1);
  $this->startQuickEditViaToolbar('node', 1, 0);
  // Click the file field.
  $assert_session->waitForElementVisible('css', '[data-quickedit-field-id="node/1/field_file/en/full"]');
  $this->click('[data-quickedit-field-id="node/1/field_file/en/full"]');
  $assert_session->waitForElement('css', '.quickedit-toolbar-field div[id*="file"]');
  // Remove the file.
  $remove = $assert_session->waitForButton('Remove');
  $remove->click();
  // Wait for remove.
  $assert_session->waitForElement('css', 'input[name="files[field_file_0]"]');
  $this->saveQuickEdit();
  // Wait for save.
  $this->assertJsCondition("Drupal.quickedit.collections.entities.get('node/1[0]').get('state') === 'closed'");
  // Assert file is removed from node.
  $assert_session->pageTextNotContains('test.txt');
  $node = Node::load($node->id());
  $this->assertEmpty($node->get('field_file')
    ->getValue());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.