diff --git a/module/ci/control.php b/module/ci/control.php index b22366f61e..9e79c040cd 100644 --- a/module/ci/control.php +++ b/module/ci/control.php @@ -24,7 +24,7 @@ class ci extends control /** * Init compile queue. - * + * * @access public * @return void */ @@ -43,7 +43,7 @@ class ci extends control /** * Exec compile. - * + * * @access public * @return void */ @@ -79,7 +79,7 @@ class ci extends control /** * Commit result from ztf. - * + * * @access public * @return void */ @@ -134,24 +134,26 @@ class ci extends control } else { - $lastProject = $this->dao->select('t1.*')->from(TABLE_PROJECTPRODUCT)->alias('t1') + $lastProject = $this->dao->select('t2.id,t2.project')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id') ->where('t1.product')->eq($productID) ->andWhere('t2.deleted')->eq(0) - ->orderBy('project desc') + ->andWhere('t2.project')->ne('0') + ->orderBy('t2.id desc') ->limit(1) - ->fetch('project'); + ->fetch(); $testtask = new stdclass(); - $testtask->product = $productID; - $testtask->name = sprintf($this->lang->testtask->titleOfAuto, date('Y-m-d H:i:s')); - $testtask->owner = $this->app->user->account; - $testtask->project = $lastProject; - $testtask->build = 'trunk'; - $testtask->auto = strtolower($testType); - $testtask->begin = date('Y-m-d'); - $testtask->end = date('Y-m-d', time() + 24 * 3600); - $testtask->status = 'done'; + $testtask->product = $productID; + $testtask->name = sprintf($this->lang->testtask->titleOfAuto, date('Y-m-d H:i:s')); + $testtask->owner = $this->app->user->account; + $testtask->project = $lastProject->project; + $testtask->execution = $lastProject->id; + $testtask->build = 'trunk'; + $testtask->auto = strtolower($testType); + $testtask->begin = date('Y-m-d'); + $testtask->end = date('Y-m-d', time() + 24 * 3600); + $testtask->status = 'done'; $this->dao->insert(TABLE_TESTTASK)->data($testtask)->exec(); $taskID = $this->dao->lastInsertId(); diff --git a/module/testtask/model.php b/module/testtask/model.php index f9ef55c25e..36a7228bc2 100644 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -1744,13 +1744,29 @@ class testtaskModel extends model { if(isset($case->id)) { - $caseID = $case->id; + unset($case->steps); + + $caseID = $case->id; + $oldCase = $this->dao->select('*')->from(TABLE_CASE)->where('id')->eq($caseID)->fetch(); $this->dao->update(TABLE_CASE)->data($case)->where('id')->eq($caseID)->exec(); + + $changes = common::createChanges($oldCase, $case); + if($changes) + { + $actionID = $this->action->create('case', $caseID, 'Edited'); + $this->action->logHistory($actionID, $changes); + } } elseif(!isset($existCases[$case->title])) { - $this->dao->insert(TABLE_CASE)->data($case)->exec(); + $this->dao->insert(TABLE_CASE)->data($case, 'steps')->exec(); $caseID = $this->dao->lastInsertID(); + foreach($case->steps as $caseStep) + { + $caseStep->case = $caseID; + $caseStep->version = 1; + $this->dao->insert(TABLE_CASESTEP)->data($caseStep)->exec(); + } $this->action->create('case', $caseID, 'Opened'); } else @@ -2133,7 +2149,8 @@ class testtaskModel extends model if(!isset($suites[$suiteIndex])) $suites[$suiteIndex] = $suite; $case = new stdclass(); - $case->product = $productID; + if(isset($caseResult->id)) $case->id = $caseResult->id; + if(!isset($caseResult->id)) $case->product = $productID; $case->title = $caseResult->title; $case->pri = 3; $case->type = 'feature'; @@ -2144,6 +2161,7 @@ class testtaskModel extends model $case->version = 1; $case->auto = 'func'; $case->frame = $frame; + $case->steps = array(); $result = new stdclass(); $result->case = 0; @@ -2162,8 +2180,14 @@ class testtaskModel extends model foreach($caseResult->steps as $i => $step) { $result->stepResults[$i]['result'] = $step->status ? 'pass' : 'fail'; - $result->stepResults[$i]['real'] = $step->status ? '' : $step->checkPoints[0]->actual; + $result->stepResults[$i]['real'] = $step->checkPoints[0]->actual; if(!$step->status) $stepStatus = 'fail'; + + $caseStep = new stdclass(); + $caseStep->type = 'step'; + $caseStep->desc = ''; + $caseStep->expect = $step->checkPoints[0]->expect; + $case->steps[] = $caseStep; } $result->caseResult = $stepStatus; }