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->precondition;?> + precondition;?> +
- + + 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(); + } } }
testcase->stepID;?> - testcase->stepDesc;?> - testcase->stepExpect;?> + testcase->stepID;?>testcase->stepDesc;?>testcase->stepExpect;?>