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', '');
?>