diff --git a/module/testcase/view/browse.html.php b/module/testcase/view/browse.html.php index 38a3ac662a..b88e94b15e 100644 --- a/module/testcase/view/browse.html.php +++ b/module/testcase/view/browse.html.php @@ -87,7 +87,7 @@ var moduleID = ''; common::printLink('testcase', 'create', "productID=$case->product&moduleID=$case->module&testcaseID=$case->id", $lang->copy); common::printLink('testcase', 'edit', "caseID=$case->id", $lang->testcase->buttonEdit); common::printLink('testcase', 'delete', "caseID=$case->id", $lang->delete, 'hiddenwin'); - common::printLink('testtask', 'runCase', "runID=0&extras=caseID=$case->id", $this->app->loadLang('testtask')->testtask->runCase, '', 'class="runcase"'); + common::printLink('testtask', 'runCase', "runID=0&caseID=$case->id&version=$case->version", $this->app->loadLang('testtask')->testtask->runCase, '', 'class="runcase"'); common::printLink('testtask', 'results', "runID=0&extras=caseID=$case->id,version=$case->version", $lang->testtask->results, '', 'class="results"'); if(!($case->lastResult == 'fail' and common::printLink('bug', 'create', "product=$case->product&extra=caseID=$case->id,version=$case->version,runID=", $lang->testtask->createBug))) echo $lang->testtask->createBug; ?> diff --git a/module/testcase/view/view.html.php b/module/testcase/view/view.html.php index ed766dda86..68ffa6ed65 100644 --- a/module/testcase/view/view.html.php +++ b/module/testcase/view/view.html.php @@ -19,7 +19,7 @@ $browseLink = $app->session->caseList != false ? $app->session->caseList : $this->createLink('testcase', 'browse', "productID=$case->product"); if(!$case->deleted) { - common::printLink('testtask', 'runCase', "runID=0&extras=version=$currentVersion,caseID=$case->id", $this->app->loadLang('testtask')->testtask->runCase, '', 'class="runcase"'); + common::printLink('testtask', 'runCase', "runID=0&caseID=$case->id&version=$case->currentVersion", $this->app->loadLang('testtask')->testtask->runCase, '', 'class="runcase"'); common::printLink('testtask', 'results', "runID=0&extras=caseID=$case->id,version=$case->version", $lang->testtask->results, '', 'class="results"'); if($case->lastResult == 'fail') common::printLink('bug', 'create', "product=$case->product&extra=caseID=$case->id,version=$case->version,runID=", $lang->testtask->createBug); common::printLink('testcase', 'edit', "caseID=$case->id", $lang->testcase->buttonEdit); diff --git a/module/testtask/control.php b/module/testtask/control.php index 4a2ef48c88..ed3b924972 100644 --- a/module/testtask/control.php +++ b/module/testtask/control.php @@ -319,35 +319,20 @@ class testtask extends control * @access public * @return void */ - public function runCase($runID, $extras = '') + public function runCase($runID, $caseID = 0, $version = 0) { if(!empty($_POST)) { - $this->testtask->createResult($runID, $extras); + $this->testtask->createResult($runID); if(dao::isError()) die(js::error(dao::getError())); echo js::reload('parent'); die(js::closeWindow()); } + if(!$caseID) $run = $this->testtask->getRunById($runID); + if($caseID) $run->case = $this->loadModel('testcase')->getById($caseID, $version); - /* Pares the extras */ - $extras = str_replace(array(',', ' '), array('&', ''), $extras); - parse_str($extras); - - if(!isset($caseID)) - { - $this->view->run = $this->testtask->getRunById($runID); - } - else - { - if(isset($version)) - { - $this->view->run->case = $this->loadModel('testcase')->getById($caseID, $version); - $this->view->run->case->version = $version; - } - else - $this->view->run->case = $this->loadModel('testcase')->getById($caseID); - } + $this->view->run = $run; die($this->display()); } diff --git a/module/testtask/model.php b/module/testtask/model.php index 6c8bddec91..84f0de2d86 100644 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -198,15 +198,20 @@ class testtaskModel extends model * Create test result * * @param int $runID - * @param string $extras others params, forexample, caseID=10 * @access public * @return void */ - public function createResult($runID, $extras) + public function createResult($runID = 0) { - /* Compute the test result. */ - $caseResult = 'pass'; - if(!$this->post->passall) + /* Compute the test result. + * + * 1. if there result in the post, use it. + * 2. if no result, set default is pass. + * 3. then check the steps to compute result. + * + * */ + $caseResult = $this->post->result ? $this->post->result : 'pass'; + if(isset($_POST['passall']) and $this->post->passall == false) { if($this->post->steps) { @@ -219,10 +224,6 @@ class testtaskModel extends model } } } - else - { - $caseResult = 'fail'; - } } /* Create result of every step. */ @@ -240,12 +241,6 @@ class testtaskModel extends model $stepResults = array(); } - /* Pares the extras */ - $extras = str_replace(array(',', ' '), array('&', ''), $extras); - parse_str($extras); - - if(isset($caseID)) $runID = 0; - /* Insert into testResult table. */ $now = helper::now(); $result = fixer::input('post') @@ -253,12 +248,12 @@ class testtaskModel extends model ->add('caseResult', $caseResult) ->setForce('stepResults', serialize($stepResults)) ->add('date', $now) - ->remove('steps,reals,passall') + ->remove('steps,reals,passall,result') ->get(); $this->dao->insert(TABLE_TESTRESULT)->data($result)->autoCheck()->exec(); $this->dao->update(TABLE_CASE)->set('lastRun')->eq($now)->set('lastResult')->eq($caseResult)->where('id')->eq($this->post->case)->exec(); - if(!isset($caseID)) + if($runID) { /* Update testRun's status. */ if(!dao::isError()) diff --git a/module/testtask/view/runcase.html.php b/module/testtask/view/runcase.html.php index d025f86a16..fd8e2bacef 100644 --- a/module/testtask/view/runcase.html.php +++ b/module/testtask/view/runcase.html.php @@ -39,17 +39,18 @@ case->steps)) { - echo html::submitButton($lang->testtask->pass, "onclick=$('#passall').val(1)"); - echo html::submitButton($lang->testtask->fail, "onclick=$('#passall').val(0)"); + echo html::submitButton($lang->testtask->pass, "onclick=$('#result').val('pass')"); + echo html::submitButton($lang->testtask->fail, "onclick=$('#result').val('fail')"); } else { echo html::submitButton(); echo html::submitButton($lang->testtask->passAll, "onclick=$('#passall').val(1)"); } - echo html::hidden('case', $run->case->id); + echo html::hidden('case', $run->case->id); echo html::hidden('version', $run->case->version); - echo html::hidden('passall', 0); + if($run->case->steps) echo html::hidden('passall', 0); + if(!$run->case->steps) echo html::hidden('result', ''); ?>