View source
<?php
namespace Drupal\Tests\quickedit\FunctionalJavascript;
use Drupal\file\Entity\File;
use Drupal\node\Entity\Node;
use Drupal\Tests\file\Functional\FileFieldCreationTrait;
use Drupal\Tests\TestFileCreationTrait;
class QuickEditFileTest extends QuickEditJavascriptTestBase {
use FileFieldCreationTrait;
use TestFileCreationTrait;
protected static $modules = [
'node',
'file',
];
protected $defaultTheme = 'stark';
protected function setUp() : void {
parent::setUp();
$this
->drupalCreateContentType([
'type' => 'article',
'name' => 'Article',
]);
$this
->createFileField('field_file', 'node', 'article', [
'file_extensions' => 'txt',
]);
$user = $this
->drupalCreateUser([
'access contextual links',
'access toolbar',
'access in-place editing',
'access content',
'create article content',
'edit any article content',
]);
$this
->drupalLogin($user);
}
public function testRemove() {
$assert_session = $this
->assertSession();
$this
->generateFile('test', 64, 10, 'text');
$file = File::create([
'uri' => 'public://test.txt',
'filename' => 'test.txt',
]);
$file
->setPermanent();
$file
->save();
$node = $this
->drupalCreateNode([
'type' => 'article',
'title' => t('My Test Node'),
'field_file' => [
'target_id' => $file
->id(),
],
]);
$this
->drupalGet($node
->toUrl()
->toString());
$this
->awaitQuickEditForEntity('node', 1);
$this
->startQuickEditViaToolbar('node', 1, 0);
$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 = $assert_session
->waitForButton('Remove');
$remove
->click();
$assert_session
->waitForElement('css', 'input[name="files[field_file_0]"]');
$this
->saveQuickEdit();
$this
->assertJsCondition("Drupal.quickedit.collections.entities.get('node/1[0]').get('state') === 'closed'");
$assert_session
->pageTextNotContains('test.txt');
$node = Node::load($node
->id());
$this
->assertEmpty($node
->get('field_file')
->getValue());
}
}