diff --git a/module/testcase/control.php b/module/testcase/control.php
index 5418b71057..2b97ef86ac 100644
--- a/module/testcase/control.php
+++ b/module/testcase/control.php
@@ -272,11 +272,12 @@ class testcase extends control
$this->view->position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->testcase->view;
- $this->view->case = $case;
- $this->view->productName = $this->products[$productID];
- $this->view->modulePath = $this->tree->getParents($case->module);
- $this->view->users = $this->user->getPairs('noletter');
- $this->view->actions = $this->loadModel('action')->getList('case', $caseID);
+ $this->view->case = $case;
+ $this->view->productName = $this->products[$productID];
+ $this->view->modulePath = $this->tree->getParents($case->module);
+ $this->view->users = $this->user->getPairs('noletter');
+ $this->view->actions = $this->loadModel('action')->getList('case', $caseID);
+ $this->view->currentVersion = $version;
$this->display();
}
diff --git a/module/testcase/js/browse.js b/module/testcase/js/browse.js
index 6635c63e18..c24929c408 100644
--- a/module/testcase/js/browse.js
+++ b/module/testcase/js/browse.js
@@ -22,6 +22,7 @@ function browseBySearch(active)
$(document).ready(function()
{
+ $("a.runcase").colorbox({width:900, height:600, iframe:true, transition:'none'});
$('#' + browseType + 'Tab').addClass('active');
$('#module' + moduleID).addClass('active');
});
diff --git a/module/testcase/js/view.js b/module/testcase/js/view.js
new file mode 100755
index 0000000000..fc84f392f3
--- /dev/null
+++ b/module/testcase/js/view.js
@@ -0,0 +1,4 @@
+$(document).ready(function()
+{
+ $(".runcase").colorbox({width:900, height:600, iframe:true, transition:'none'});
+})
diff --git a/module/testcase/view/browse.html.php b/module/testcase/view/browse.html.php
index d1655fd3cd..4091f0b296 100644
--- a/module/testcase/view/browse.html.php
+++ b/module/testcase/view/browse.html.php
@@ -61,7 +61,7 @@ var moduleID = '';
typeAB);?> |
openedByAB);?> |
statusAB);?> |
- actions;?> |
+ actions;?> |
@@ -81,6 +81,7 @@ var moduleID = '';
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"');
?>
diff --git a/module/testcase/view/view.html.php b/module/testcase/view/view.html.php
index 2d8e205287..2e9f41745c 100644
--- a/module/testcase/view/view.html.php
+++ b/module/testcase/view/view.html.php
@@ -19,6 +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('testcase', 'edit', "caseID=$case->id", $lang->testcase->buttonEdit);
common::printLink('testcase', 'create', "productID=$case->product&moduleID=$case->module&testcaseID=$case->id", $lang->copy);
common::printLink('testcase', 'delete', "caseID=$case->id", $lang->delete, 'hiddenwin');
@@ -32,10 +33,14 @@
+
- | testcase->stepID;?>
- | testcase->stepDesc;?>
- | testcase->stepExpect;?>
+ | testcase->stepID;?> |
+ testcase->stepDesc;?> |
+ testcase->stepExpect;?> |
steps as $stepID => $step)
diff --git a/module/testtask/control.php b/module/testtask/control.php
index 5648d203fe..8ecbe993df 100644
--- a/module/testtask/control.php
+++ b/module/testtask/control.php
@@ -315,20 +315,40 @@ class testtask extends control
* Run case.
*
* @param int $runID
+ * @param String $extras others params, forexample, caseID=10, version=3
* @access public
* @return void
*/
- public function runCase($runID)
+ public function runCase($runID, $extras = '')
{
if(!empty($_POST))
{
- $this->testtask->createResult($runID);
+ $this->testtask->createResult($runID, $extras);
if(dao::isError()) die(js::error(dao::getError()));
echo js::reload('parent');
die(js::closeWindow());
}
- $this->view->run = $this->testtask->getRunById($runID);
+
+ /* 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);
+ }
+
die($this->display());
}
diff --git a/module/testtask/model.php b/module/testtask/model.php
index eb94a25ed7..7a6eba2343 100644
--- a/module/testtask/model.php
+++ b/module/testtask/model.php
@@ -197,10 +197,11 @@ 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)
+ public function createResult($runID, $extras)
{
/* Compute the test result. */
$caseResult = 'pass';
@@ -224,6 +225,12 @@ class testtaskModel extends model
$stepResults[$stepID] = $step;
}
+ /* 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')
@@ -235,16 +242,19 @@ class testtaskModel extends model
->get();
$this->dao->insert(TABLE_TESTRESULT)->data($result)->autoCheck()->exec();
- /* Update testRun's status. */
- if(!dao::isError())
+ if(!isset($caseID))
{
- $runStatus = $caseResult == 'blocked' ? 'blocked' : 'done';
- $this->dao->update(TABLE_TESTRUN)
- ->set('lastResult')->eq($caseResult)
- ->set('status')->eq($runStatus)
- ->set('lastRun')->eq($now)
- ->where('id')->eq($runID)
- ->exec();
+ /* Update testRun's status. */
+ if(!dao::isError())
+ {
+ $runStatus = $caseResult == 'blocked' ? 'blocked' : 'done';
+ $this->dao->update(TABLE_TESTRUN)
+ ->set('lastResult')->eq($caseResult)
+ ->set('status')->eq($runStatus)
+ ->set('lastRun')->eq($now)
+ ->where('id')->eq($runID)
+ ->exec();
+ }
}
}
|