Chris@18
|
1 <?php
|
Chris@18
|
2
|
Chris@18
|
3 namespace Drupal\FunctionalJavascriptTests\Tests;
|
Chris@18
|
4
|
Chris@18
|
5 use Drupal\entity_test\Entity\EntityTest;
|
Chris@18
|
6 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
|
Chris@18
|
7 use Drupal\Tests\file\Functional\FileFieldCreationTrait;
|
Chris@18
|
8 use Drupal\Tests\TestFileCreationTrait;
|
Chris@18
|
9
|
Chris@18
|
10 /**
|
Chris@18
|
11 * Tests the DrupalSelenium2Driver methods.
|
Chris@18
|
12 *
|
Chris@18
|
13 * @coversDefaultClass \Drupal\FunctionalJavascriptTests\DrupalSelenium2Driver
|
Chris@18
|
14 * @group javascript
|
Chris@18
|
15 */
|
Chris@18
|
16 class DrupalSelenium2DriverTest extends WebDriverTestBase {
|
Chris@18
|
17
|
Chris@18
|
18 use TestFileCreationTrait;
|
Chris@18
|
19 use FileFieldCreationTrait;
|
Chris@18
|
20
|
Chris@18
|
21 /**
|
Chris@18
|
22 * {@inheritdoc}
|
Chris@18
|
23 */
|
Chris@18
|
24 protected static $modules = ['file', 'field_ui', 'entity_test'];
|
Chris@18
|
25
|
Chris@18
|
26 /**
|
Chris@18
|
27 * {@inheritdoc}
|
Chris@18
|
28 */
|
Chris@18
|
29 protected function setUp() {
|
Chris@18
|
30 parent::setUp();
|
Chris@18
|
31 $storage_settings = ['cardinality' => 3];
|
Chris@18
|
32 $this->createFileField('field_file', 'entity_test', 'entity_test', $storage_settings);
|
Chris@18
|
33 $this->drupalLogin($this->drupalCreateUser([
|
Chris@18
|
34 'administer entity_test content',
|
Chris@18
|
35 'access content',
|
Chris@18
|
36 ]));
|
Chris@18
|
37 }
|
Chris@18
|
38
|
Chris@18
|
39 /**
|
Chris@18
|
40 * Tests uploading remote files.
|
Chris@18
|
41 */
|
Chris@18
|
42 public function testGetRemoteFilePath() {
|
Chris@18
|
43 $web_driver = $this->getSession()->getDriver();
|
Chris@18
|
44 $file_system = \Drupal::service('file_system');
|
Chris@18
|
45 $entity = EntityTest::create();
|
Chris@18
|
46 $entity->save();
|
Chris@18
|
47
|
Chris@18
|
48 $files = array_slice($this->getTestFiles('text'), 0, 3);
|
Chris@18
|
49 $real_paths = [];
|
Chris@18
|
50 foreach ($files as $file) {
|
Chris@18
|
51 $real_paths[] = $file_system->realpath($file->uri);
|
Chris@18
|
52 }
|
Chris@18
|
53 $remote_paths = [];
|
Chris@18
|
54 foreach ($real_paths as $path) {
|
Chris@18
|
55 $remote_paths[] = $web_driver->uploadFileAndGetRemoteFilePath($path);
|
Chris@18
|
56 }
|
Chris@18
|
57
|
Chris@18
|
58 // Tests that uploading multiple remote files works with remote path.
|
Chris@18
|
59 $this->drupalGet($entity->toUrl('edit-form'));
|
Chris@18
|
60 $multiple_field = $this->xpath('//input[@multiple]')[0];
|
Chris@18
|
61 $multiple_field->setValue(implode("\n", $remote_paths));
|
Chris@18
|
62 $this->assertSession()->assertWaitOnAjaxRequest();
|
Chris@18
|
63 $this->getSession()->getPage()->findButton('Save')->click();
|
Chris@18
|
64 $entity = EntityTest::load($entity->id());
|
Chris@18
|
65 $this->assertCount(3, $entity->field_file);
|
Chris@18
|
66 }
|
Chris@18
|
67
|
Chris@18
|
68 }
|