array('select-all')), array('data' => t('Test'), 'class' => array('simpletest_test')), array('data' => t('Description'), 'class' => array('simpletest_description')), ); // Define the images used to expand/collapse the test groups. $image_collapsed = array( '#theme' => 'image', '#uri' => 'core/misc/menu-collapsed.png', '#width' => '7', '#height' => '7', '#alt' => t('Expand'), '#title' => t('Expand'), '#suffix' => '(' . t('Expand') . ')', ); $image_extended = array( '#theme' => 'image', '#uri' => 'core/misc/menu-expanded.png', '#width' => '7', '#height' => '7', '#alt' => t('Collapse'), '#title' => t('Collapse'), '#suffix' => ' (' . t('Collapse') . ')', ); $js = array( 'images' => array( drupal_render($image_collapsed), drupal_render($image_extended), ), ); // Cycle through each test group and create a row. $rows = array(); foreach (element_children($table) as $key) { $element = &$table[$key]; $row = array(); // Make the class name safe for output on the page by replacing all // non-word/decimal characters with a dash (-). $test_class = strtolower(trim(preg_replace("/[^\w\d]/", "-", $key))); // Select the right "expand"/"collapse" image, depending on whether the // category is expanded (at least one test selected) or not. $collapsed = !empty($element['#collapsed']); $image_index = $collapsed ? 0 : 1; // Place-holder for checkboxes to select group of tests. $row[] = array('id' => $test_class, 'class' => array('simpletest-select-all')); // Expand/collapse image and group title. $row[] = array( 'data' => '
' . '', 'class' => array('simpletest-group-label'), ); $row[] = array( 'data' => ' ', 'class' => array('simpletest-group-description'), ); $rows[] = array('data' => $row, 'class' => array('simpletest-group')); // Add individual tests to group. $current_js = array( 'testClass' => $test_class . '-test', 'testNames' => array(), 'imageDirection' => $image_index, 'clickActive' => FALSE, ); // Sorting $element by children's #title attribute instead of by class name. uasort($element, 'element_sort_by_title'); // Cycle through each test within the current group. foreach (element_children($element) as $test_name) { $test = $element[$test_name]; $row = array(); $current_js['testNames'][] = $test['#id']; // Store test title and description so that checkbox won't render them. $title = $test['#title']; $description = $test['#description']; $test['#title_display'] = 'invisible'; unset($test['#description']); // Test name is used to determine what tests to run. $test['#name'] = $test_name; $row[] = array( 'data' => drupal_render($test), 'class' => array('simpletest-test-select'), ); $row[] = array( 'data' => '', 'class' => array('simpletest-test-label', 'table-filter-text-source'), ); $row[] = array( 'data' => '