You are here

public function DrupalSelenium2DriverTest::testGetRemoteFilePath in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/FunctionalJavascriptTests/Tests/DrupalSelenium2DriverTest.php \Drupal\FunctionalJavascriptTests\Tests\DrupalSelenium2DriverTest::testGetRemoteFilePath()

Tests uploading remote files.

File

core/tests/Drupal/FunctionalJavascriptTests/Tests/DrupalSelenium2DriverTest.php, line 47

Class

DrupalSelenium2DriverTest
Tests the DrupalSelenium2Driver methods.

Namespace

Drupal\FunctionalJavascriptTests\Tests

Code

public function testGetRemoteFilePath() {
  $web_driver = $this
    ->getSession()
    ->getDriver();
  $file_system = \Drupal::service('file_system');
  $entity = EntityTest::create();
  $entity
    ->save();
  $files = array_slice($this
    ->getTestFiles('text'), 0, 3);
  $real_paths = [];
  foreach ($files as $file) {
    $real_paths[] = $file_system
      ->realpath($file->uri);
  }
  $remote_paths = [];
  foreach ($real_paths as $path) {
    $remote_paths[] = $web_driver
      ->uploadFileAndGetRemoteFilePath($path);
  }

  // Tests that uploading multiple remote files works with remote path.
  $this
    ->drupalGet($entity
    ->toUrl('edit-form'));
  $multiple_field = $this
    ->assertSession()
    ->elementExists('xpath', '//input[@multiple]');
  $multiple_field
    ->setValue(implode("\n", $remote_paths));
  $this
    ->assertSession()
    ->assertWaitOnAjaxRequest();
  $this
    ->getSession()
    ->getPage()
    ->findButton('Save')
    ->click();
  $entity = EntityTest::load($entity
    ->id());
  $this
    ->assertCount(3, $entity->field_file);
}