function DevelClientSideFilterTableTest::providerPreRenderTable

Same name and namespace in other branches
  1. 4.x tests/src/Unit/DevelClientSideFilterTableTest.php \Drupal\Tests\devel\Unit\DevelClientSideFilterTableTest::providerPreRenderTable()

Data provider for preRenderHtmlTag test.

File

tests/src/Unit/DevelClientSideFilterTableTest.php, line 55

Class

DevelClientSideFilterTableTest
Tests ClientSideFilterTable element.

Namespace

Drupal\Tests\devel\Unit

Code

public static function providerPreRenderTable() : array {
  $data = [];
  $filter_label = new TranslatableMarkup('Label 1');
  $filter_label_2 = new TranslatableMarkup('Label 2');
  $filter_placeholder = new TranslatableMarkup('Placeholder 1');
  $filter_placeholder_2 = new TranslatableMarkup('Placeholder 2');
  $filter_description = new TranslatableMarkup('Description 1');
  $filter_description_2 = new TranslatableMarkup('Description 2');
  $empty = new TranslatableMarkup('Empty');
  $empty_2 = new TranslatableMarkup('Empty 2');
  $actual = [
    '#type' => 'devel_table_filter',
    '#filter_label' => $filter_label,
    '#filter_placeholder' => $filter_placeholder,
    '#filter_description' => $filter_description,
    '#header' => [],
    '#rows' => [],
    '#empty' => $empty,
    '#responsive' => TRUE,
    '#sticky' => TRUE,
    '#attributes' => [
      'class' => [
        'devel-a-list',
      ],
    ],
  ];
  $expected = [];
  $expected['#attached']['library'][] = 'devel/devel-table-filter';
  $expected['filters'] = [
    '#type' => 'container',
    '#weight' => -1,
    '#attributes' => [
      'class' => [
        'table-filter',
        'js-show',
      ],
    ],
    'name' => [
      '#type' => 'search',
      '#size' => 30,
      '#title' => $filter_label,
      '#placeholder' => $filter_placeholder,
      '#attributes' => [
        'class' => [
          'table-filter-text',
        ],
        'data-table' => ".js-devel-table-filter",
        'autocomplete' => 'off',
        'title' => $filter_description,
      ],
    ],
  ];
  $expected['table'] = [
    '#type' => 'table',
    '#header' => [],
    '#rows' => [],
    '#empty' => $empty,
    '#responsive' => TRUE,
    '#sticky' => TRUE,
    '#attributes' => [
      'class' => [
        'devel-a-list',
        'js-devel-table-filter',
        'devel-table-filter',
      ],
    ],
  ];
  $data[] = [
    $actual,
    $expected,
  ];
  $headers = [
    'Test1',
    'Test2',
    'Test3',
    'Test4',
    'Test5',
  ];
  $actual = [
    '#type' => 'devel_table_filter',
    '#filter_label' => $filter_label_2,
    '#filter_placeholder' => $filter_placeholder_2,
    '#filter_description' => $filter_description_2,
    '#header' => $headers,
    '#rows' => [
      [
        [
          'data' => 'test1',
          'filter' => TRUE,
        ],
        [
          'data' => 'test2',
          'filter' => TRUE,
          'class' => [
            'test2',
          ],
        ],
        [
          'data' => 'test3',
          'class' => [
            'test3',
          ],
        ],
        [
          'test4',
        ],
        [
          'data' => 'test5',
          'filter' => TRUE,
          'class' => [
            'devel-event-name-header',
          ],
          'colspan' => '3',
          'header' => TRUE,
        ],
      ],
    ],
    '#empty' => $empty_2,
    '#responsive' => FALSE,
    '#sticky' => FALSE,
    '#attributes' => [
      'class' => [
        'devel-some-list',
      ],
    ],
  ];
  $expected = [];
  $expected['#attached']['library'][] = 'devel/devel-table-filter';
  $expected['filters'] = [
    '#type' => 'container',
    '#weight' => -1,
    '#attributes' => [
      'class' => [
        'table-filter',
        'js-show',
      ],
    ],
    'name' => [
      '#type' => 'search',
      '#size' => 30,
      '#title' => $filter_label_2,
      '#placeholder' => $filter_placeholder_2,
      '#attributes' => [
        'class' => [
          'table-filter-text',
        ],
        'data-table' => ".js-devel-table-filter--2",
        'autocomplete' => 'off',
        'title' => $filter_description_2,
      ],
    ],
  ];
  $expected['table'] = [
    '#type' => 'table',
    '#header' => $headers,
    '#rows' => [
      [
        [
          'data' => 'test1',
          'filter' => TRUE,
          'class' => [
            'table-filter-text-source',
          ],
        ],
        [
          'data' => 'test2',
          'filter' => TRUE,
          'class' => [
            'test2',
            'table-filter-text-source',
          ],
        ],
        [
          'data' => 'test3',
          'class' => [
            'test3',
          ],
        ],
        [
          'test4',
        ],
        [
          'data' => 'test5',
          'filter' => TRUE,
          'class' => [
            'devel-event-name-header',
            'table-filter-text-source',
          ],
          'colspan' => '3',
          'header' => TRUE,
        ],
      ],
    ],
    '#empty' => $empty_2,
    '#responsive' => FALSE,
    '#sticky' => FALSE,
    '#attributes' => [
      'class' => [
        'devel-some-list',
        'js-devel-table-filter--2',
        'devel-table-filter',
      ],
    ],
  ];
  $data[] = [
    $actual,
    $expected,
  ];
  return $data;
}