function RearrangeFieldsTest::testRearrangeFields

Same name and namespace in other branches
  1. 9 core/modules/views_ui/tests/src/Functional/RearrangeFieldsTest.php \Drupal\Tests\views_ui\Functional\RearrangeFieldsTest::testRearrangeFields()
  2. 10 core/modules/views_ui/tests/src/Functional/RearrangeFieldsTest.php \Drupal\Tests\views_ui\Functional\RearrangeFieldsTest::testRearrangeFields()
  3. 11.x core/modules/views_ui/tests/src/Functional/RearrangeFieldsTest.php \Drupal\Tests\views_ui\Functional\RearrangeFieldsTest::testRearrangeFields()

Tests field sorting.

File

core/modules/views_ui/tests/src/Functional/RearrangeFieldsTest.php, line 59

Class

RearrangeFieldsTest
Tests the reordering of fields via AJAX.

Namespace

Drupal\Tests\views_ui\Functional

Code

public function testRearrangeFields() {
    $view_name = 'test_view';
    // Checks that the order on the rearrange form matches the creation order.
    $this->assertFieldOrder($view_name, $this->getViewFields($view_name));
    // Checks that a field is not deleted if a value is not passed back.
    $fields = [];
    $this->drupalPostForm('admin/structure/views/nojs/rearrange/' . $view_name . '/default/field', $fields, t('Apply'));
    $this->assertFieldOrder($view_name, $this->getViewFields($view_name));
    // Checks that revers the new field order is respected.
    $reversedFields = array_reverse($this->getViewFields($view_name));
    $fields = [];
    foreach ($reversedFields as $delta => $field) {
        $fields['fields[' . $field . '][weight]'] = $delta;
    }
    $this->drupalPostForm('admin/structure/views/nojs/rearrange/' . $view_name . '/default/field', $fields, t('Apply'));
    $this->assertFieldOrder($view_name, $reversedFields);
    // Checks that there is a remove link for each field.
    $this->assertEqual(count($this->cssSelect('a.views-remove-link')), count($fields));
}

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