annotate core/tests/Drupal/FunctionalJavascriptTests/Tests/DrupalSelenium2DriverTest.php @ 5:12f9dff5fda9 tip

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