function QuickEditFileTest::testRemove

Same name in other branches
  1. 8.9.x 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 67

Class

QuickEditFileTest
@group quickedit @group legacy

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' => '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.