function LayoutBuilderSortTrait::sortableUpdate

Same name and namespace in other branches
  1. 9 core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderSortTrait.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderSortTrait::sortableUpdate()
  2. 8.9.x core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderSortTrait.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderSortTrait::sortableUpdate()
  3. 11.x core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderSortTrait.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderSortTrait::sortableUpdate()

Define to provide any necessary callback following layout change.

Parameters

string $item: The HTML selector for the element to be moved.

string $from: The HTML selector for the previous container element.

null|string $to: The HTML selector for the target container.

Overrides SortableTestTrait::sortableUpdate

File

core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderSortTrait.php, line 19

Class

LayoutBuilderSortTrait
LayoutBuilderSortTrait, provides callback for simulated layout change.

Namespace

Drupal\Tests\layout_builder\FunctionalJavascript

Code

protected function sortableUpdate($item, $from, $to = NULL) {
  // If container does not change, $from and $to are equal.
  $to = $to ?: $from;
  $script = <<<JS
(function (src, from, to) {
  var sourceElement = document.querySelector(src);
  var fromElement = document.querySelector(from);
  var toElement = document.querySelector(to);

  Drupal.layoutBuilderBlockUpdate(sourceElement, fromElement, toElement)

})('{<span class="php-variable">$item</span>}', '{<span class="php-variable">$from</span>}', '{<span class="php-variable">$to</span>}')

JS;
  $options = [
    'script' => $script,
    'args' => [],
  ];
  $this->getSession()
    ->getDriver()
    ->getWebDriverSession()
    ->execute($options);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.