class QuickEditFileTest
@group quickedit @group legacy
Hierarchy
- class \Drupal\Tests\BrowserTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\Tests\UiHelperTrait, \Drupal\Core\Test\TestSetupTrait, \Drupal\Tests\block\Traits\BlockCreationTrait, \Drupal\FunctionalTests\AssertLegacyTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\node\Traits\NodeCreationTrait, \Drupal\Tests\node\Traits\ContentTypeCreationTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\user\Traits\UserCreationTrait, \Drupal\Tests\XdebugRequestTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\ExtensionListTestTrait implements \PHPUnit\Framework\TestCase
- class \Drupal\FunctionalJavascriptTests\WebDriverTestBase implements \Drupal\Tests\BrowserTestBase
- class \Drupal\Tests\quickedit\FunctionalJavascript\QuickEditJavascriptTestBase implements \Drupal\FunctionalJavascriptTests\WebDriverTestBase
- class \Drupal\Tests\quickedit\FunctionalJavascript\QuickEditFileTest uses \Drupal\Tests\file\Functional\FileFieldCreationTrait, \Drupal\Tests\TestFileCreationTrait implements \Drupal\Tests\quickedit\FunctionalJavascript\QuickEditJavascriptTestBase
- class \Drupal\Tests\quickedit\FunctionalJavascript\QuickEditJavascriptTestBase implements \Drupal\FunctionalJavascriptTests\WebDriverTestBase
- class \Drupal\FunctionalJavascriptTests\WebDriverTestBase implements \Drupal\Tests\BrowserTestBase
Expanded class hierarchy of QuickEditFileTest
File
-
core/
modules/ quickedit/ tests/ src/ FunctionalJavascript/ QuickEditFileTest.php, line 15
Namespace
Drupal\Tests\quickedit\FunctionalJavascriptView source
class QuickEditFileTest extends QuickEditJavascriptTestBase {
use FileFieldCreationTrait;
use TestFileCreationTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'node',
'file',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
// Create the Article node type.
$this->drupalCreateContentType([
'type' => 'article',
'name' => 'Article',
]);
// Add file field to Article node type.
$this->createFileField('field_file', 'node', 'article', [
'file_extensions' => 'txt',
]);
// Move file field to the top of all fields, so its QuickEdit Toolbar won't
// overlap any QuickEdit-able fields, which causes (semi-)random test
// failures.
$entity_display = EntityViewDisplay::load('node.article.default');
$entity_display->setComponent('field_file', [
'weight' => 0,
]);
$entity_display->save();
// Log in as a content author who can use Quick Edit and edit Articles.
$user = $this->drupalCreateUser([
'access contextual links',
'access toolbar',
'access in-place editing',
'access content',
'create article content',
'edit any article content',
]);
$this->drupalLogin($user);
}
/**
* Tests if a file can be in-place removed with Quick Edit.
*/
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.