function MultipleValueWidgetTest::testFieldMultipleValueWidgetRemoveKeepsOrderWithTabledrag
Same name and namespace in other branches
- 11.x core/modules/field/tests/src/FunctionalJavascript/MultipleValueWidgetTest.php \Drupal\Tests\field\FunctionalJavascript\MultipleValueWidgetTest::testFieldMultipleValueWidgetRemoveKeepsOrderWithTabledrag()
Tests that removing an item keeps the order set through drag and drop.
File
-
core/
modules/ field/ tests/ src/ FunctionalJavascript/ MultipleValueWidgetTest.php, line 237
Class
- MultipleValueWidgetTest
- Tests widget form for a multiple value field.
Namespace
Drupal\Tests\field\FunctionalJavascriptCode
public function testFieldMultipleValueWidgetRemoveKeepsOrderWithTabledrag() : void {
$this->drupalGet('entity_test/add');
$assert_session = $this->assertSession();
$page = $this->getSession()
->getPage();
$add_more_button = $page->findButton('field_unlimited_add_more');
$field_0 = $page->findField('field_unlimited[0][value]');
$field_0->setValue('1');
$add_more_button->click();
$field_1 = $assert_session->waitForField('field_unlimited[1][value]');
$field_1->setValue('2');
$add_more_button->click();
$field_2 = $assert_session->waitForField('field_unlimited[2][value]');
$field_2->setValue('3');
// Drag the first row after the third row, so the items read 2, 3, 1.
$dragged = $field_0->find('xpath', 'ancestor::tr[contains(@class, "draggable")]//a[starts-with(@class, "tabledrag-handle")]');
$target = $field_2->find('xpath', 'ancestor::tr[contains(@class, "draggable")]');
$dragged->dragTo($target);
$this->assertSame([
'2',
'3',
'1',
], $this->getItemValuesInDomOrder());
// Remove the item "3" (delta 2), which is displayed in the middle.
$page->findButton('field_unlimited_2_remove_button')
->click();
$assert_session->assertWaitOnAjaxRequest();
$this->assertSame([
'2',
'1',
], $this->getItemValuesInDomOrder());
$assert_session->fieldValueEquals('field_unlimited[0][value]', '2');
$assert_session->fieldValueEquals('field_unlimited[0][_weight]', '-1');
$assert_session->fieldValueEquals('field_unlimited[1][value]', '1');
$assert_session->fieldValueEquals('field_unlimited[1][_weight]', '0');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.