} // create linked icons $exec_link = ""; $build_id = null; if (isset($testcase['build_id'])) { $build_id = $testcase['build_id']; } else { if (isset($testcase['assigned_build_id'])) { $build_id = $testcase['assigned_build_id']; } } if (!is_null($build_id)) { $exec_link = "<a href=\"javascript:openExecutionWindow(" . "{$testcase['tc_id']}, {$testcase['tcversion_id']}, {$build_id}, " . "{$args->tplan_id}, {$testcase['platform_id']});\">" . "<img title=\"{$labels['execution']}\" src=\"{$exec_img}\" /></a> "; } $edit_link = "<a href=\"javascript:openTCEditWindow({$testcase['tc_id']});\">" . "<img title=\"{$labels['design']}\" src=\"{$edit_img}\" /></a> "; $tcaseName = buildExternalIdString($tproject_info['prefix'], $testcase['external_id']) . ':' . $testcase['name']; // 20101007 - asimon - BUGID 3857 $image_link = $exec_link . $edit_link . $tcaseName; $mail_link = "<a href=\"javascript:openTCEditWindow({$testcase['tc_id']});\">{$tcaseName}</a> "; $tcLink = $args->format == FORMAT_MAIL_HTML ? $mail_link : $image_link; //$tcLink = '<a href="lib/testcases/archiveData.php?edit=testcase&id=' . // $testcase['tc_id'] . '">' . htmlspecialchars($tcaseName) . '</a>'; if (!isset($pathCache[$testcase['tc_id']])) { $dummy = $tcase_mgr->getPathLayered(array($testcase['tc_id'])); $pathCache[$testcase['tc_id']] = $dummy[$testcase['testsuite_id']]['value']; $levelCache[$testcase['tc_id']] = $dummy[$testcase['testsuite_id']]['level']; $ky = current(array_keys($dummy)); $topCache[$testcase['tc_id']] = $ky; } $verbosePath = $pathCache[$testcase['tc_id']]; $level = $levelCache[$testcase['tc_id']];
$gui->pageTitle .= " - " . lang_get('match_count') . ":" . $gui->row_qty; $tproject_mgr = new testproject($db); $prefix = $tproject_mgr->getTestCasePrefix($args->tproject_id); unset($tproject_mgr); // Collect all tc_id:s and get all test suite paths $tcase_set = array(); foreach ($testCaseSet as $item) { $tcase_set[] = $item['tc_id']; } $tree_mgr = new tree($db); $path_info = $tree_mgr->get_full_path_verbose($tcase_set); unset($tree_mgr); $data = array(); foreach ($testCaseSet as $item) { $verbosePath = join(" / ", $path_info[$item['tc_id']]); $name = buildExternalIdString($prefix, $item['external_id'] . ': ' . $item['name']); // create linked icons $exec_history_link = "<a href=\"javascript:openExecHistoryWindow({$item['tc_id']});\">" . "<img title=\"{$labels['execution_history']}\" src=\"{$history_img}\" /></a> "; $edit_link = "<a href=\"javascript:openTCEditWindow({$gui->tproject_id},{$item['tc_id']});\">" . "<img title=\"{$labels['design']}\" src=\"{$edit_img}\" /></a> "; $link = "<!-- " . sprintf("%010d", $item['external_id']) . " -->" . $exec_history_link . $edit_link . $name; $row = array($verbosePath, $link); if ($args->show_platforms) { $row[] = $item['platform_name']; } if ($_SESSION['testprojectOptions']->testPriorityEnabled) { $row[] = $tplan_mgr->urgencyImportanceToPriorityLevel($item['priority']); } $row[] = strip_tags($item['summary']); $data[] = $row; } $gui->tableSet[] = buildTable($data, $args->tproject_id, $args->show_platforms, $_SESSION['testprojectOptions']->testPriorityEnabled);
$tplan_info = $tplan_mgr->get_by_id($args->tplan_id); $tproject_info = $tproject_mgr->get_by_id($args->tproject_id); $filters = array(); $options = array('output' => 'array', 'only_executed' => true, 'details' => 'full'); $results = $tplan_mgr->get_linked_tcversions($args->tplan_id, $filters, $options); $testcase_bugs = array(); foreach ($results as $execution) { $tc_id = $execution['tc_id']; $mine[] = $execution['exec_id']; $exec_id = $execution['exec_id']; $bug_urls = buildBugString($db, $exec_id, $openBugs, $resolvedBugs); if ($bug_urls) { // First bug found for this tc if (!isset($testcase_bugs[$tc_id])) { $suiteName = $execution['tsuite_name']; $tc_name = buildExternalIdString($tproject_info['prefix'], $execution['external_id']) . ":" . $execution['name']; $testcase_bugs[$tc_id] = array($suiteName, $tc_name, array()); } foreach ($bug_urls as $url) { if (!in_array($url, $testcase_bugs[$tc_id][2])) { $testcase_bugs[$tc_id][2][] = $url; } } } } foreach ($testcase_bugs as &$row) { $row[2] = implode("<br/>", $row[2]); } $arrData = array_values($testcase_bugs); $totalOpenBugs = count($openBugs); $totalResolvedBugs = count($resolvedBugs);
/** * * */ function buildExtTable($gui, $tcase_mgr, $tplan_mgr, $tplan_id, $gluechar, $charset, $labels, $edit_icon) { $table = null; if (count($gui->resultSet) > 0) { $columns = array(); $columns[] = array('title_key' => 'test_suite'); $columns[] = array('title_key' => 'test_case', 'width' => 80, 'type' => 'text'); foreach ($gui->cfields as $cfield) { $dummy = array('title' => $cfield['label'], 'col_id' => 'id_cf_' . $cfield['name'], 'type' => 'text'); $columns[] = $dummy; } // Extract the relevant data and build a matrix $matrixData = array(); foreach ($gui->resultSet as $item) { $rowData = array(); // Get test suite path $dummy = $tcase_mgr->getPathLayered(array($item['tcase_id'])); $dummy = end($dummy); $rowData[] = $dummy['value']; $name = buildExternalIdString($gui->tcasePrefix, $item['tc_external_id']) . $gluechar . $item['tcase_name']; // create linked icons $edit_link = "<a href=\"javascript:openTCEditWindow({$gui->tproject_id},{$item['tcase_id']});\">" . "<img title=\"{$labels['design']}\" src=\"{$edit_icon}\" /></a> "; $link = "<!-- " . sprintf("%010d", $item['tc_external_id']) . " -->" . $edit_link . $name; $rowData[] = $link; // $rowData[] = '<a href="lib/testcases/archiveData.php?edit=testcase&id=' . $item['tcase_id'] . '">' . // buildExternalIdString($gui->tcasePrefix, $item['tc_external_id']) . // $gluechar . $item['tcase_name'] . '</a>'; $hasValue = false; foreach ($item['cfields'] as $cf_value) { $rowData[] = preg_replace('!\\s+!', ' ', htmlentities($cf_value, ENT_QUOTES, $charset)); if ($cf_value) { $hasValue = true; } } if ($hasValue) { $matrixData[] = $rowData; } } $table = new tlExtTable($columns, $matrixData, 'tl_table_tplan_with_cf'); $table->addCustomBehaviour('text', array('render' => 'columnWrap')); $table->setGroupByColumnName(lang_get('test_suite')); $table->setSortByColumnName(lang_get('test_case')); $table->sortDirection = 'ASC'; } return $table; }
// Get executions with custom field values buildResultSet($db, $gui, $args->tproject_id, $args->tplan_id); // Create column headers $columns = getColumnsDefinition($args->showPlatforms, $gui->cfields); // Extract the relevant data and build a matrix $matrixData = array(); foreach ($gui->resultSet as $item) { $rowData = array(); // Get test suite path $dummy = $tcase_mgr->getPathLayered(array($item['tcase_id'])); $dummy = end($dummy); $rowData[] = $dummy['value']; // create linked icons $exec_link = "<a href=\"javascript:openExecutionWindow(" . "{$item['tcase_id']}, {$item['tcversion_id']}, {$item['builds_id']}, " . "{$args->tplan_id}, {$item['platform_id']});\">" . "<img title=\"{$labels['execution']}\" src=\"{$exec_img}\" /></a> "; $edit_link = "<a href=\"javascript:openTCEditWindow({$item['tcase_id']});\">" . "<img title=\"{$labels['design']}\" src=\"{$edit_img}\" /></a> "; $tcaseName = buildExternalIdString($gui->tcasePrefix, $item['tc_external_id']) . ' : ' . $item['tcase_name']; $tcLink = $exec_link . $edit_link . $tcaseName; $rowData[] = $tcLink; //$rowData[] = '<a href="lib/testcases/archiveData.php?edit=testcase&id=' . $item['tcase_id'] . '">' . // buildExternalIdString($gui->tcasePrefix, $item['tc_external_id']) . // ' : ' . $item['tcase_name'] . '</a>'; $rowData[] = $item['tcversion_number']; if ($args->showPlatforms) { $rowData[] = $item['platform_name']; } $rowData[] = $item['build_name']; $rowData[] = $item['tester']; // use html comment to be able to sort table by timestamp and not by link // only link is visible in table but comment is used for sorting $dummy = null; // $rowData[] = "<!--{$item['execution_ts']}--><a href=\"lib/execute/execSetResults.php?" .
$args = init_args($db); $gui = initializeGui($db, $args); if ($args->doIt) { // Get executions with custom field values buildResultSet($db, $gui, $args->tproject_id, $args->tplan_id); // Create column headers $columns = getColumnsDefinition($args->showPlatforms, $gui->cfields); // Extract the relevant data and build a matrix $matrixData = array(); foreach ($gui->resultSet as $item) { $rowData = array(); // Get test suite path $dummy = $tcase_mgr->getPathLayered(array($item['tcase_id'])); $dummy = end($dummy); $rowData[] = $dummy['value']; $rowData[] = '<a href="lib/testcases/archiveData.php?edit=testcase&id=' . $item['tcase_id'] . '">' . buildExternalIdString($gui->tcasePrefix, $item['tc_external_id']) . ' : ' . $item['tcase_name'] . '</a>'; $rowData[] = $item['tcversion_number']; if ($args->showPlatforms) { $rowData[] = $item['platform_name']; } $rowData[] = $item['build_name']; $rowData[] = $item['tester']; // use html comment to be able to sort table by timestamp and not by link // only link is visible in table but comment is used for sorting $dummy = null; $rowData[] = "<!--{$item['execution_ts']}--><a href=\"lib/execute/execSetResults.php?" . "level=testcase&build_id={$item['builds_id']}&id={$item['tcase_id']}" . "&version_id={$item['tcversion_id']}&tplan_id={$gui->tplan_id}\">" . localize_dateOrTimeStamp(null, $dummy, 'timestamp_format', $item['execution_ts']) . '</a>'; // Use array for status to get correct rendering and sorting $rowData[] = array('value' => $item['exec_status'], 'text' => $gui->status_code_labels[$item['exec_status']], 'cssClass' => $gui->code_status[$item['exec_status']] . '_text'); $hasValue = false; foreach ($item['cfields'] as $cf_value) { $rowData[] = $cf_value;
// create linked icons $exec_link = ""; $build_id = null; if (isset($testcase['build_id'])) { $build_id = $testcase['build_id']; } else { if (isset($testcase['assigned_build_id'])) { $build_id = $testcase['assigned_build_id']; } } $exec_history_link = "<a href=\"javascript:openExecHistoryWindow({$testcase['tc_id']});\">" . "<img title=\"{$labels['execution_history']}\" src=\"{$history_img}\" /></a> "; if (!is_null($build_id)) { $exec_link = "<a href=\"javascript:openExecutionWindow(" . "{$testcase['tc_id']}, {$testcase['tcversion_id']}, {$build_id}, " . "{$args->tplan_id}, {$testcase['platform_id']});\">" . "<img title=\"{$labels['execution']}\" src=\"{$exec_img}\" /></a> "; } $edit_link = "<a href=\"javascript:openTCEditWindow({$gui->tproject_id},{$testcase['tc_id']});\">" . "<img title=\"{$labels['design']}\" src=\"{$edit_img}\" /></a> "; $ext_id = buildExternalIdString($tproject_info['prefix'], $testcase['external_id']); $tcaseName = $ext_id . ':' . $testcase['name']; // 20101007 - asimon - BUGID 3857 $image_link = "<!-- " . sprintf("%010d", $testcase['external_id']) . " -->" . $exec_history_link . $exec_link . $edit_link . $tcaseName; // 20101013 - asimon - use linkto.php for emailed links $dl = str_replace(" ", "%20", $args->basehref) . 'linkto.php?tprojectPrefix=' . urlencode($tproject_info['prefix']) . '&item=testcase&id=' . urlencode($ext_id); $mail_link = "<a href='{$dl}'>{$tcaseName}</a>"; $tcLink = $args->format != FORMAT_HTML ? $mail_link : $image_link; //$tcLink = '<a href="lib/testcases/archiveData.php?edit=testcase&id=' . // $testcase['tc_id'] . '">' . htmlspecialchars($tcaseName) . '</a>'; if (!isset($pathCache[$testcase['tc_id']])) { $dummy = $tcase_mgr->getPathLayered(array($testcase['tc_id'])); $pathCache[$testcase['tc_id']] = $dummy[$testcase['testsuite_id']]['value']; $levelCache[$testcase['tc_id']] = $dummy[$testcase['testsuite_id']]['level']; $ky = current(array_keys($dummy)); $topCache[$testcase['tc_id']] = $ky;