function DevelClientSideFilterTableTest::providerPreRenderTable

Same name 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;
}