// Definitions: define('RUN_SELECTED_LABEL', 'Run selected'); define('SELECT_ALL_LABEL', 'Select All'); define('CLEAR_ALL_LABEL', 'Clear All'); define('RESET_TESTER_LABEL', 'Reload Tests'); // start the session session_start(); // reset tester if (isset($_REQUEST['reset']) && 'true' === $_REQUEST['reset']) { session_destroy(); session_start(); // we will not run any suites in this case unset($_REQUEST['runSuites']); } // create the folderParser object $folderParser = new FolderParser(ROOT_DIR, $exclude); // Process the request: $runSuites = array(); $testCase = null; if (isset($_REQUEST['runSuites']) && is_array($_REQUEST['runSuites'])) { $runSuites = $_REQUEST['runSuites']; } if (isset($_REQUEST['keepOpen'])) { $keepOpen = trim($_REQUEST['keepOpen']); } else { $keepOpen = ''; } $keepOpen = explode(' ', $keepOpen); // if is set code coverage if (isset($_REQUEST['coverage']) && 'true' === $_REQUEST['coverage']) { // get the group name and the file name
/** * Displays the menu form fields. * * @param FolderParser $folderParser folderParser object * @param string $folderId folder id */ function displayMenu($folderParser, $folderId) { global $runSuites; $folder = $folderParser->getFolder($folderId); if (isset($folder['subfolders'])) { foreach ($folder['subfolders'] as $subId) { $subfolder = $folderParser->getFolder($subId); $dir = str_replace(ROOT_DIR, '', $folder); // set the display state: $display = 'none'; $arrow = 'collapsed.png'; foreach ($runSuites as $suiteId => $tests) { if (strstr($suiteId, $dir)) { $display = 'block'; $arrow = 'expanded.png'; break; } } printf('<div class="groupName" onclick="toggleGroup(\'%s\')"><img id="arrow_%s" class="arrow" src="images/%s"/></span> %s</div>', $subId, $subId, $arrow, basename($subfolder['path'])); printf('<div class="group" id="%s" style="display: %s">', $subId, $display); displayMenu($folderParser, $subId); printf('</div>'); } } if (isset($folder['suites'])) { foreach ($folder['suites'] as $suiteId) { $suite = $folderParser->getSuite($suiteId); // suite name is the short file name (with suffix detached) $suiteName = str_replace(TEST_SUFFIX . '.php', '', basename($suite['path'])); // checked state $checked = in_array($suiteId, $runSuites); // Main box: printf('<div class="suiteSelect" onclick="setCheckBox(\'%s\'); setCheckBoxes(\'%s\', document.getElementById(\'%s\').checked);" onmouseover="toggleTests(\'%s\', event, true);" onmouseout="toggleTests(\'%s\', event, false);" id="suiteSelect_%s" >', $suiteId, 'tests_' . $suiteId, $suiteId, $suiteId, $suiteId, $suiteId); // checkbox for suite printf('<input class="checkbox" onclick="this.checked = !this.checked;" type="checkbox" name="suite" id="%s" value="%s"%s/>', $suiteId, $suiteId, $checked ? ' checked="checked"' : ''); printf('<span class="checkboxFront%s"></span>', $checked ? 'Set' : 'Unset'); // arrow for toggling the suite tests box printf('<img id="%s" class="arrow_suite" src="" fleoscmouseover="toggleTests(\'%s\', event, true);" fleoscmouseout="toggleTests(\'%s\', event, false);"/>', 'arrow_' . $suiteId, $suiteId, $suiteId); printf('<span>'); if (in_array($suiteId, $runSuites)) { printf('<a href="#a_%s">%s</a>', $suiteId, $suiteName); } else { echo $suiteName; } echo '</span>'; echo '</div>'; // Display the suite tests box: // Set height and width of the tests box $height = count($suite['tests']) * 17 + 43; $width = max(maxLength($suite['tests']) * 8, 175); // tests box printf('<div id="%s" class="testSelectClosed" style="width: ' . $width . 'px; height: ' . $height . 'px;" onmouseout="toggleTests(\'%s\', event, false);">', 'tests_' . $suiteId, $suiteId); foreach ($suite['tests'] as $test) { $testId = $suiteId . '@' . $test; // used the '@' string as delimiter // test box printf('<div class="testSelect" onclick="setCheckBox(\'%s\'); setCheckBoxSuite(\'%s\');">', $testId, $suiteId); // checkbox for test printf('<input class="checkbox" onclick="this.checked = !this.checked;" type="checkbox" name="runSuites[%s][]" id="%s" value="%s"%s/>', $suiteId, $testId, $test, $checked ? ' checked="checked"' : ''); printf('<span class="checkboxFront%s"></span>', $checked ? 'Set' : 'Unset'); echo $test; echo '</div>'; } // buttons for select and clear all printf('<p style="text-align: center;"><input class="button" style="width: 80px;" type="button" onclick="toggleAllTests(%s,%s);" value="%s"/>', "'{$suiteId}'", "false", CLEAR_ALL_LABEL); echo ' '; printf('<input class="button" style="width: 80px;" type="button" onclick="toggleAllTests(%s,%s);" value="%s"/></p>', "'{$suiteId}'", "true", SELECT_ALL_LABEL); echo ' '; echo '</div>'; } } // buttons for select and clear all printf('<p><input class="button" style="width: 80px;" type="button" onclick="setCheckBoxes(%s,%s)" value="%s"/>', "'{$folderId}'", "false", CLEAR_ALL_LABEL); echo ' '; printf('<input class="button" style="width: 80px;" type="button" onclick="setCheckBoxes(%s,%s)" value="%s"/></p>', "'{$folderId}'", "true", SELECT_ALL_LABEL); echo ' '; }