Esempio n. 1
0
function check_exec_values(&$db, &$tcase_mgr, &$user_mgr, $tcaseCfg, &$execValues, &$columnDef)
{
    $tables = tlObjectWithDB::getDBTables(array('users', 'execution_bugs'));
    $checks = array('status_ok' => false, 'tcase_id' => 0, 'tester_id' => 0, 'msg' => array());
    $tcase_id = $execValues['tcase_id'];
    $tcase_external_id = trim($execValues['tcase_external_id']);
    $using_external_id = $tcase_external_id != "";
    // external_id has precedence over internal id
    if ($using_external_id) {
        // need to get internal id
        $checks['tcase_id'] = $tcase_mgr->getInternalID($tcase_external_id);
        $checks['status_ok'] = intval($checks['tcase_id']) > 0 ? true : false;
        if (!$checks['status_ok']) {
            $checks['msg'][] = sprintf(lang_get('tcase_external_id_do_not_exists'), $tcase_external_id);
        }
    } else {
        // before using internal id, I want to check it's a number
        $checks['tcase_id'] = $tcase_id;
        $checks['status_ok'] = intval($checks['tcase_id']) > 0 ? true : false;
        if (!$checks['status_ok']) {
            $checks['msg'][] = sprintf(lang_get('tcase_id_is_not_number'), $tcase_id);
        }
    }
    if ($checks['status_ok']) {
        // useful for user feedback
        $identity = $using_external_id ? $tcase_external_id : $checks['tcase_id'];
    }
    if ($checks['status_ok'] && $execValues['timestamp'] != '') {
        $checks['status_ok'] = isValidISODateTime($execValues['timestamp']);
        if (!$checks['status_ok']) {
            $checks['msg'][] = sprintf(lang_get('invalid_execution_timestamp'), $identity, $execValues['timestamp']);
        }
    }
    if ($checks['status_ok'] && $execValues['tester'] != '') {
        $sql = "SELECT id,login FROM {$tables['users']} WHERE login ='******'tester']) . "'";
        $userInfo = $db->get_recordset($sql);
        if (!is_null($userInfo) && isset($userInfo[0]['id'])) {
            $checks['tester_id'] = $userInfo[0]['id'];
        } else {
            $checks['status_ok'] = false;
            $checks['msg'][] = sprintf(lang_get('invalid_tester'), $identity, $execValues['tester']);
        }
    }
    $execValues['bug_id'] = isset($execValues['bug_id']) ? $execValues['bug_id'] : null;
    if ($checks['status_ok'] && !is_null($execValues['bug_id']) && is_array($execValues['bug_id'])) {
        foreach ($execValues['bug_id'] as $bug_id) {
            if (($field_len = strlen(trim($bug_id))) > $columnDef['bug_id']->max_length) {
                $checks['msg'][] = sprintf(lang_get('bug_id_invalid_len'), $field_len, $columnDef['bug_id']->max_length);
                $checks['status_ok'] = false;
                break;
            }
        }
    }
    if ($checks['status_ok'] && isset($execValues['execution_type'])) {
        $execValues['execution_type'] = intval($execValues['execution_type']);
        $execDomain = $tcase_mgr->get_execution_types();
        if ($execValues['execution_type'] == 0) {
            $execValues['execution_type'] = TESTCASE_EXECUTION_TYPE_MANUAL;
            // right now this is useless, but may be in future can be used, then I choose to leave it.
            $checks['msg'][] = sprintf(lang_get('missing_exec_type'), $execValues['execution_type'], $execDomain[$execValues['execution_type']]);
        } else {
            $checks['status_ok'] = isset($execDomain[$execValues['execution_type']]);
            if (!$checks['status_ok']) {
                $checks['msg'][] = sprintf(lang_get('invalid_exec_type'), $execValues['execution_type']);
            }
        }
    }
    return $checks;
}
Esempio n. 2
0
function check_exec_values(&$db, &$tcase_mgr, &$user_mgr, $tcaseCfg, $execValues, &$columnDef)
{
    $tables = tlObjectWithDB::getDBTables(array('users', 'execution_bugs'));
    $checks = array('status_ok' => false, 'tcase_id' => 0, 'tester_id' => 0, 'msg' => array());
    $tcase_id = $execValues['tcase_id'];
    $tcase_external_id = trim($execValues['tcase_external_id']);
    // external_id has precedence over internal id
    $using_external_id = $tcase_external_id != "";
    if ($using_external_id) {
        // need to get internal id
        $checks['tcase_id'] = $tcase_mgr->getInternalID($tcase_external_id, $tcaseCfg->glue_character);
        $checks['status_ok'] = intval($checks['tcase_id']) > 0 ? true : false;
        if (!$checks['status_ok']) {
            $checks['msg'][] = sprintf(lang_get('tcase_external_id_do_not_exists'), $tcase_external_id);
        }
    } else {
        // before using internal id, I want to check it's a number
        $checks['tcase_id'] = $tcase_id;
        $checks['status_ok'] = intval($checks['tcase_id']) > 0 ? true : false;
        if (!$checks['status_ok']) {
            $checks['msg'][] = sprintf(lang_get('tcase_id_is_not_number'), $tcase_id);
        }
    }
    if ($checks['status_ok']) {
        // useful for user feedback
        $identity = $using_external_id ? $tcase_external_id : $checks['tcase_id'];
    }
    if ($checks['status_ok'] && $execValues['timestamp'] != '') {
        $checks['status_ok'] = isValidISODateTime($execValues['timestamp']);
        if (!$checks['status_ok']) {
            $checks['msg'][] = sprintf(lang_get('invalid_execution_timestamp'), $identity, $execValues['timestamp']);
        }
    }
    if ($checks['status_ok'] && $execValues['tester'] != '') {
        $sql = "SELECT id,login FROM {$tables['users']} WHERE login ='******'tester']) . "'";
        $userInfo = $db->get_recordset($sql);
        if (!is_null($userInfo) && isset($userInfo[0]['id'])) {
            $checks['tester_id'] = $userInfo[0]['id'];
        } else {
            $checks['status_ok'] = false;
            $checks['msg'][] = sprintf(lang_get('invalid_tester'), $identity, $execValues['tester']);
        }
    }
    // BUGID 3331
    $execValues['bug_id'] = isset($execValues['bug_id']) ? trim((string) $execValues['bug_id']) : '';
    if ($checks['status_ok'] && $execValues['bug_id'] != '') {
        if (($field_len = strlen($execValues['bug_id'])) > $columnDef['bug_id']->max_length) {
            $checks['status_ok'] = false;
            $checks['msg'][] = sprintf(lang_get('bug_id_invalid_len'), $field_len, $columnDef['bug_id']->max_length);
        }
    }
    // BUGID 3543
    if ($checks['status_ok'] && isset($execValues['execution_type'])) {
        $execDomain = $tcase_mgr->get_execution_types();
        $checks['status_ok'] = isset($execDomain[$execValues['execution_type']]);
        if (!$checks['status_ok']) {
            $checks['msg'][] = sprintf(lang_get('invalid_exec_type'), $execValues['execution_type']);
        }
    }
    return $checks;
}