comparison core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditFileTest.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents
children
comparison
equal deleted inserted replaced
16:c2387f117808 17:129ea1e6d783
1 <?php
2
3 namespace Drupal\Tests\quickedit\FunctionalJavascript;
4
5 use Drupal\file\Entity\File;
6 use Drupal\node\Entity\Node;
7 use Drupal\Tests\file\Functional\FileFieldCreationTrait;
8 use Drupal\Tests\TestFileCreationTrait;
9
10 /**
11 * @group quickedit
12 */
13 class QuickEditFileTest extends QuickEditJavascriptTestBase {
14
15 use FileFieldCreationTrait;
16 use TestFileCreationTrait;
17
18 /**
19 * {@inheritdoc}
20 */
21 public static $modules = [
22 'node',
23 'file',
24 ];
25
26 /**
27 * {@inheritdoc}
28 */
29 protected function setUp() {
30 parent::setUp();
31
32 // Create the Article node type.
33 $this->drupalCreateContentType(['type' => 'article', 'name' => 'Article']);
34
35 // Add file field to Article node type.
36 $this->createFileField('field_file', 'node', 'article', ['file_extensions' => 'txt']);
37
38 // Log in as a content author who can use Quick Edit and edit Articles.
39 $user = $this->drupalCreateUser([
40 'access contextual links',
41 'access toolbar',
42 'access in-place editing',
43 'access content',
44 'create article content',
45 'edit any article content',
46 ]);
47 $this->drupalLogin($user);
48 }
49
50 /**
51 * Tests if a file can be in-place removed with Quick Edit.
52 */
53 public function testRemove() {
54 $assert_session = $this->assertSession();
55
56 // Create test file.
57 $this->generateFile('test', 64, 10, 'text');
58 $file = File::create([
59 'uri' => 'public://test.txt',
60 'filename' => 'test.txt',
61 ]);
62 $file->setPermanent();
63 $file->save();
64
65 // Create test node.
66 $node = $this->drupalCreateNode([
67 'type' => 'article',
68 'title' => t('My Test Node'),
69 'field_file' => [
70 'target_id' => $file->id(),
71 ],
72 ]);
73
74 $this->drupalGet($node->toUrl()->toString());
75
76 // Start Quick Edit.
77 $this->awaitQuickEditForEntity('node', 1);
78 $this->startQuickEditViaToolbar('node', 1, 0);
79
80 // Click the file field.
81 $assert_session->waitForElementVisible('css', '[data-quickedit-field-id="node/1/field_file/en/full"]');
82 $this->click('[data-quickedit-field-id="node/1/field_file/en/full"]');
83 $assert_session->waitForElement('css', '.quickedit-toolbar-field div[id*="file"]');
84
85 // Remove the file.
86 $remove = $assert_session->waitForButton('Remove');
87 $remove->click();
88 // Wait for remove.
89 $assert_session->waitForElement('css', 'input[name="files[field_file_0]"]');
90 $this->saveQuickEdit();
91 // Wait for save.
92 $this->assertJsCondition("Drupal.quickedit.collections.entities.get('node/1[0]').get('state') === 'closed'");
93
94 // Assert file is removed from node.
95 $assert_session->pageTextNotContains('test.txt');
96 $node = Node::load($node->id());
97 $this->assertEmpty($node->get('field_file')->getValue());
98 }
99
100 }