コード例 #1
0
 /**
  * Get an array of all test class names.
  *
  * @return array
  *   All test class names, minus the blacklisted ones.
  */
 public function allTests()
 {
     if (empty($this->all)) {
         $tests = simpletest_test_get_all();
         foreach ($tests as $classes) {
             $this->all = array_merge($this->all, array_keys($classes));
         }
         $this->all = $this->applyBlacklist($this->all);
     }
     return $this->all;
 }
コード例 #2
0
ファイル: SimpletestTestForm.php プロジェクト: aWEBoLabs/taxi
 /**
  * {@inheritdoc}
  */
 public function buildForm(array $form, FormStateInterface $form_state)
 {
     $form['actions'] = array('#type' => 'actions');
     $form['actions']['submit'] = array('#type' => 'submit', '#value' => $this->t('Run tests'), '#tableselect' => TRUE, '#button_type' => 'primary');
     $form['clean'] = array('#type' => 'fieldset', '#title' => $this->t('Clean test environment'), '#description' => $this->t('Remove tables with the prefix "simpletest" and temporary directories that are left over from tests that crashed. This is intended for developers when creating tests.'), '#weight' => 200);
     $form['clean']['op'] = array('#type' => 'submit', '#value' => $this->t('Clean environment'), '#submit' => array('simpletest_clean_environment'));
     // Do not needlessly re-execute a full test discovery if the user input
     // already contains an explicit list of test classes to run.
     $user_input = $form_state->getUserInput();
     if (!empty($user_input['tests'])) {
         return $form;
     }
     // JavaScript-only table filters.
     $form['filters'] = array('#type' => 'container', '#attributes' => array('class' => array('table-filter', 'js-show')));
     $form['filters']['text'] = array('#type' => 'search', '#title' => $this->t('Search'), '#size' => 30, '#placeholder' => $this->t('Enter test name…'), '#attributes' => array('class' => array('table-filter-text'), 'data-table' => '#simpletest-test-form', 'autocomplete' => 'off', 'title' => $this->t('Enter at least 3 characters of the test name or description to filter by.')));
     $form['tests'] = array('#type' => 'table', '#id' => 'simpletest-form-table', '#tableselect' => TRUE, '#header' => array(array('data' => $this->t('Test'), 'class' => array('simpletest-test-label')), array('data' => $this->t('Description'), 'class' => array('simpletest-test-description'))), '#empty' => $this->t('No tests to display.'), '#attached' => array('library' => array('simpletest/drupal.simpletest')));
     // 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' => $this->t('Expand'), '#title' => $this->t('Expand'), '#suffix' => '<a href="#" class="simpletest-collapse">(' . $this->t('Expand') . ')</a>');
     $image_extended = array('#theme' => 'image', '#uri' => 'core/misc/menu-expanded.png', '#width' => '7', '#height' => '7', '#alt' => $this->t('Collapse'), '#title' => $this->t('Collapse'), '#suffix' => '<a href="#" class="simpletest-collapse">(' . $this->t('Collapse') . ')</a>');
     $form['tests']['#attached']['drupalSettings']['simpleTest']['images'] = [(string) $this->renderer->renderPlain($image_collapsed), (string) $this->renderer->renderPlain($image_extended)];
     // Generate the list of tests arranged by group.
     $groups = simpletest_test_get_all();
     foreach ($groups as $group => $tests) {
         $form['tests'][$group] = array('#attributes' => array('class' => array('simpletest-group')));
         // Make the class name safe for output on the page by replacing all
         // non-word/decimal characters with a dash (-).
         $group_class = 'module-' . strtolower(trim(preg_replace("/[^\\w\\d]/", "-", $group)));
         // Override tableselect column with custom selector for this group.
         // This group-select-all checkbox is injected via JavaScript.
         $form['tests'][$group]['select'] = array('#wrapper_attributes' => array('id' => $group_class, 'class' => array('simpletest-group-select-all')));
         $form['tests'][$group]['title'] = array('#prefix' => '<div class="simpletest-image" id="simpletest-test-group-' . $group_class . '"></div>', '#markup' => '<label for="' . $group_class . '-group-select-all">' . $group . '</label>', '#wrapper_attributes' => array('class' => array('simpletest-group-label')));
         $form['tests'][$group]['description'] = array('#markup' => '&nbsp;', '#wrapper_attributes' => array('class' => array('simpletest-group-description')));
         // Cycle through each test within the current group.
         foreach ($tests as $class => $info) {
             $form['tests'][$class] = array('#attributes' => array('class' => array($group_class . '-test', 'js-hide')));
             $form['tests'][$class]['title'] = array('#type' => 'label', '#title' => '\\' . $info['name'], '#wrapper_attributes' => array('class' => array('simpletest-test-label', 'table-filter-text-source')));
             $form['tests'][$class]['description'] = array('#prefix' => '<div class="description">', '#plain_text' => $info['description'], '#suffix' => '</div>', '#wrapper_attributes' => array('class' => array('simpletest-test-description', 'table-filter-text-source')));
         }
     }
     return $form;
 }