Merge branch 'testcase_zhouxin_1'
This commit is contained in:
@@ -1196,7 +1196,7 @@ class docModel extends model
|
||||
{
|
||||
$libs = array();
|
||||
$docLibs = array();
|
||||
if($type == 'product' or $type == 'extension')
|
||||
if($type == 'product' or $type == 'execution')
|
||||
{
|
||||
$nonzeroLibs = array();
|
||||
if(strpos($this->config->doc->custom->showLibs, 'zero') === false)
|
||||
|
||||
+4
-101
@@ -194,7 +194,6 @@ class gitModel extends model
|
||||
$commits += count($logs);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->repo->updateCommitCount($repo->id, $commits);
|
||||
@@ -296,6 +295,8 @@ class gitModel extends model
|
||||
*/
|
||||
public function getRepoTags($repo)
|
||||
{
|
||||
if(empty($repo->client) or empty($repo->path) or !isset($repo->account) or !isset($repo->password) or !isset($repo->encoding)) return false;
|
||||
|
||||
$scm = $this->app->loadClass('scm');
|
||||
$scm->setEngine($repo);
|
||||
return $scm->tags('');
|
||||
@@ -311,6 +312,8 @@ class gitModel extends model
|
||||
*/
|
||||
public function getRepoLogs($repo, $fromRevision)
|
||||
{
|
||||
if(empty($repo->client) or empty($repo->path) or !isset($repo->account) or !isset($repo->password) or !isset($repo->encoding)) return false;
|
||||
|
||||
$scm = $this->app->loadClass('scm');
|
||||
$scm->setEngine($repo);
|
||||
$logs = $scm->log('', $fromRevision);
|
||||
@@ -371,106 +374,6 @@ class gitModel extends model
|
||||
return $parsedLog;
|
||||
}
|
||||
|
||||
/**
|
||||
* Diff a url.
|
||||
*
|
||||
* @param string $path
|
||||
* @param int $revision
|
||||
* @access public
|
||||
* @return string|bool
|
||||
*/
|
||||
public function diff($path, $revision)
|
||||
{
|
||||
$repo = $this->getRepoByURL($path);
|
||||
if(!$repo) return false;
|
||||
|
||||
$this->setClient($repo);
|
||||
if(empty($this->client)) return false;
|
||||
putenv('LC_CTYPE=en_US.UTF-8');
|
||||
|
||||
chdir($repo->path);
|
||||
exec("{$this->client} config core.quotepath false");
|
||||
$subPath = substr($path, strlen($repo->path));
|
||||
if($subPath[0] == '/' or $subPath[0] == '\\') $subPath = substr($subPath, 1);
|
||||
|
||||
$encodings = explode(',', $this->config->git->encodings);
|
||||
foreach($encodings as $encoding)
|
||||
{
|
||||
$encoding = trim($encoding);
|
||||
if($encoding == 'utf-8') continue;
|
||||
$subPath = helper::convertEncoding($subPath, 'utf-8', $encoding);
|
||||
if($subPath) break;
|
||||
}
|
||||
|
||||
exec("$this->client rev-list -n 2 $revision -- $subPath", $lists);
|
||||
if(count($lists) == 2) list($nowRevision, $preRevision) = $lists;
|
||||
$cmd = "$this->client diff $preRevision $nowRevision -- $subPath 2>&1";
|
||||
$diff = `$cmd`;
|
||||
|
||||
$encoding = isset($repo->encoding) ? $repo->encoding : 'utf-8';
|
||||
if($encoding and $encoding != 'utf-8') $diff = helper::convertEncoding($diff, $encoding);
|
||||
|
||||
return $diff;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cat a url.
|
||||
*
|
||||
* @param string $path
|
||||
* @param int $revision
|
||||
* @access public
|
||||
* @return string|bool
|
||||
*/
|
||||
public function cat($path, $revision)
|
||||
{
|
||||
$repo = $this->getRepoByURL($path);
|
||||
if(!$repo) return false;
|
||||
|
||||
$this->setClient($repo);
|
||||
if(empty($this->client)) return false;
|
||||
|
||||
putenv('LC_CTYPE=en_US.UTF-8');
|
||||
|
||||
$subPath = substr($path, strlen($repo->path));
|
||||
if($subPath[0] == '/' or $subPath[0] == '\\') $subPath = substr($subPath, 1);
|
||||
|
||||
$encodings = explode(',', $this->config->git->encodings);
|
||||
foreach($encodings as $encoding)
|
||||
{
|
||||
$encoding = trim($encoding);
|
||||
if($encoding == 'utf-8') continue;
|
||||
$subPath = helper::convertEncoding($subPath, 'utf-8', $encoding);
|
||||
if($subPath) break;
|
||||
}
|
||||
|
||||
chdir($repo->path);
|
||||
exec("{$this->client} config core.quotepath false");
|
||||
$cmd = "$this->client show $revision:$subPath 2>&1";
|
||||
$code = `$cmd`;
|
||||
|
||||
$encoding = isset($repo->encoding) ? $repo->encoding : 'utf-8';
|
||||
if($encoding and $encoding != 'utf-8') $code = helper::convertEncoding($code, $encoding);
|
||||
|
||||
return $code;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get repo by url.
|
||||
*
|
||||
* @param string $url
|
||||
* @access public
|
||||
* @return object|bool
|
||||
*/
|
||||
public function getRepoByURL($url)
|
||||
{
|
||||
foreach($this->config->git->repos as $repo)
|
||||
{
|
||||
if(empty($repo['path'])) continue;
|
||||
if(strpos($url, $repo['path']) !== false) return (object)$repo;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pring log.
|
||||
*
|
||||
|
||||
@@ -74,6 +74,8 @@ class holidayModel extends model
|
||||
->batchCheck($this->config->holiday->require->create, 'notempty')
|
||||
->check('end', 'ge', $holiday->begin)
|
||||
->exec();
|
||||
$lastInsertID = $this->dao->lastInsertID();
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$beginDate = $this->post->begin;
|
||||
@@ -87,7 +89,7 @@ class holidayModel extends model
|
||||
$this->updateTaskPlanDuration($beginDate, $endDate);
|
||||
$this->updateTaskRealDuration($beginDate, $endDate);
|
||||
|
||||
return $this->dao->lastInsertID();
|
||||
return $lastInsertID;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -172,13 +174,16 @@ class holidayModel extends model
|
||||
->andWhere('end')->ge($begin)
|
||||
->fetchAll('id');
|
||||
|
||||
$naturalDays = $this->getDaysBetween($begin, $end);
|
||||
|
||||
$workingDays = array();
|
||||
foreach($records as $record)
|
||||
{
|
||||
$dates = $this->getDaysBetween($record->begin, $record->end);
|
||||
$dates = $this->getDaysBetween($record->begin, $record->end);
|
||||
$workingDays = array_merge($workingDays, $dates);
|
||||
}
|
||||
return $workingDays;
|
||||
|
||||
return array_intersect($naturalDays, $workingDays);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -486,7 +486,7 @@ class jobModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Exec jenkins pipeline.
|
||||
* Exec jenkins pipeline.
|
||||
*
|
||||
* @param object $job
|
||||
* @param object $repo
|
||||
|
||||
@@ -77,8 +77,7 @@ class settingModel extends model
|
||||
$item->section = $section;
|
||||
$item->key = $key;
|
||||
$item->value = $value;
|
||||
|
||||
if($vision) $item->vision = $vision;
|
||||
$item->vision = empty($vision) ? '' : $vision;
|
||||
|
||||
$this->dao->replace(TABLE_CONFIG)->data($item)->exec();
|
||||
}
|
||||
@@ -164,6 +163,12 @@ class settingModel extends model
|
||||
*/
|
||||
public function createDAO($params, $method = 'select')
|
||||
{
|
||||
$params['vision'] = isset($params['vision']) ? $params['vision'] : '';
|
||||
$params['owner'] = isset($params['owner']) ? $params['owner'] : '';
|
||||
$params['module'] = isset($params['module']) ? $params['module'] : '';
|
||||
$params['section'] = isset($params['section']) ? $params['section'] : '';
|
||||
$params['key'] = isset($params['key']) ? $params['key'] : '';
|
||||
|
||||
return $this->dao->$method('*')->from(TABLE_CONFIG)->where('1 = 1')
|
||||
->beginIF($params['vision'])->andWhere('vision')->in($params['vision'])->fi()
|
||||
->beginIF($params['owner'])->andWhere('owner')->in($params['owner'])->fi()
|
||||
|
||||
@@ -343,7 +343,7 @@ class weeklyModel extends model
|
||||
$monday = $this->getThisMonday($date);
|
||||
$nextMonday = date('Y-m-d', strtotime("$monday +7 days"));
|
||||
|
||||
$executions = $this->loadModel('execution')->getList($status = 'all', $limit = 0, $productID = 0, $branch = 0, $project);
|
||||
$executions = $this->loadModel('execution')->getList($project);
|
||||
$executionIdList = array_keys($executions);
|
||||
|
||||
return $this->dao->select('*')
|
||||
|
||||
@@ -129,4 +129,4 @@ r($admin->put($modifyBug2)) && c(200) && p($fields) && e('Bug3');
|
||||
|
||||
/* Test delete*/
|
||||
r($admin->delete($bug->id)) && c(201) && p() && e('');
|
||||
r($admin->get($bug->id)) && c(200) && p('bug:deleted') && e('true');
|
||||
r($admin->get($bug->id)) && c(200) && p('bug:deleted') && e('true');
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
class ciTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('ci');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set menu.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function setMenuTest()
|
||||
{
|
||||
$_SESSION['repoID'] = 1;
|
||||
$this->objectModel->setMenu();
|
||||
|
||||
global $lang;
|
||||
return $lang->devops->menu->code;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sync compile status.
|
||||
*
|
||||
* @param int $jobID
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function syncCompileStatusTest($jobID)
|
||||
{
|
||||
global $tester;
|
||||
$tester->loadModel('job')->exec($jobID);
|
||||
$compileID = $tester->dao->select('id')->from(TABLE_COMPILE)->orderBy('id_desc')->fetch('id');
|
||||
|
||||
$notCompileMR = $tester->dao->select('id,jobID')
|
||||
->from(TABLE_MR)
|
||||
->where('jobID')->gt(0)
|
||||
->andWhere('compileStatus')->eq('created')
|
||||
->fetchPairs();
|
||||
|
||||
$compile = $tester->dao->select('compile.*, job.engine,job.pipeline, pipeline.name as jenkinsName,job.server,pipeline.url,pipeline.account,pipeline.token,pipeline.password')
|
||||
->from(TABLE_COMPILE)->alias('compile')
|
||||
->leftJoin(TABLE_JOB)->alias('job')->on('compile.job=job.id')
|
||||
->leftJoin(TABLE_PIPELINE)->alias('pipeline')->on('job.server=pipeline.id')
|
||||
->where('compile.id')->eq($compileID)
|
||||
->fetch();
|
||||
|
||||
$this->objectModel->syncCompileStatus($compile, $notCompileMR);
|
||||
$compile = $tester->loadModel('compile')->getByID($compileID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
return $compile;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
class datatableTest
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('datatable');
|
||||
}
|
||||
|
||||
public function getFieldListTest($module, $method)
|
||||
{
|
||||
$module = zget($this->objectModel->config->datatable->moduleAlias, "$module-$method", $module);
|
||||
$result = $this->objectModel->getFieldList($module);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getSettingTest($module, $method)
|
||||
{
|
||||
$this->objectModel->app->methodName = $method;
|
||||
$result = $this->objectModel->getSetting($module);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function printHeadTest($data)
|
||||
{
|
||||
ob_start();
|
||||
$this->objectModel->printHead($data['cols'], $data['orderBy'], $data['vars'], $data['checkBox']);
|
||||
$head = ob_get_clean();
|
||||
|
||||
$isTh = strpos($head, '<th data-flex') !== false ? true : false;
|
||||
$order = $data['orderBy'] ? (strpos($head, "class='sort-") !== false ? true : false) : true;
|
||||
$vars = $data['vars'] ? (strpos($head, $data['vars']) !== false ? true : false) : true;
|
||||
$check = $data['checkBox'] ? (strpos($head, 'checkbox-primary') !== false ? true : false) : true;
|
||||
$result = ($isTh and $order and $vars and $check) ? true : false;
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function setFixedFieldWidthTest($setting)
|
||||
{
|
||||
$result = $this->objectModel->setFixedFieldWidth($setting);
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,621 @@
|
||||
<?php
|
||||
class docTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('doc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Function createLib test by doc
|
||||
*
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function createLibTest($param)
|
||||
{
|
||||
$createFields = array('type' => '', 'name' => '', 'acl' => '');
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$objectID = $this->objectModel->createLib();
|
||||
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$objects = $this->objectModel->getLibById($objectID);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function createApiLib test by doc
|
||||
*
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function createApiLibTest($param)
|
||||
{
|
||||
global $tester;
|
||||
$tester->app->loadConfig('api');
|
||||
$tester->app->loadLang('doclib');
|
||||
|
||||
$createFields = array('name' => '', 'baseUrl' => '', 'acl' => '', 'desc' => '测试详情');
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$objectID = $this->objectModel->createApiLib();
|
||||
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$objects = $this->objectModel->getLibById($objectID);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function updateApiLib test by doc
|
||||
*
|
||||
* @param int $id
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function updateApiLibTest($id, $param)
|
||||
{
|
||||
global $tester;
|
||||
$tester->app->loadConfig('api');
|
||||
$tester->app->loadLang('doclib');
|
||||
|
||||
$oldDoc = $this->objectModel->getLibById($id);
|
||||
$data = new stdClass;
|
||||
foreach($param as $key => $value) $data->$key = $value;
|
||||
|
||||
$objects = $this->objectModel->updateApiLib($id, $oldDoc, $data);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function updateLib test by doc
|
||||
*
|
||||
* @param int $libID
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function updateLibTest($libID, $param)
|
||||
{
|
||||
global $tester;
|
||||
$tester->app->loadConfig('doc');
|
||||
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$objects = $this->objectModel->updateLib($libID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function getDocsByBrowseType test by doc
|
||||
*
|
||||
* @param string $browseType
|
||||
* @param array $moduleID
|
||||
* @param string $sort
|
||||
* @param mixed $pager
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getDocsByBrowseTypeTest($browseType, $moduleID, $sort = 'id_desc', $pager = null)
|
||||
{
|
||||
global $tester;
|
||||
$tester->app->loadConfig('doc');
|
||||
|
||||
$objects = $this->objectModel->getDocsByBrowseType($browseType, $queryID = '', $moduleID, $sort, $pager);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function create test by doc
|
||||
*
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function createTest($param)
|
||||
{
|
||||
global $tester;
|
||||
$tester->app->loadConfig('api');
|
||||
$tester->app->loadLang('doclib');
|
||||
|
||||
$labels = array();
|
||||
$files = array();
|
||||
|
||||
$createFields = array('lib' => '', 'module' => '', 'title' => '', 'keywords' => '', 'type' => '', 'content' => '', 'contentMarkdown' => '', 'contentType' => '',
|
||||
'url' => '', 'labels' => $labels, 'files' => $files, 'contactListMenu' => '', 'acl' => '');
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$this->objectModel->create();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$objects = $tester->dao->select('*')->from(TABLE_DOC)->where('title')->eq($_POST['title'])->andwhere('lib')->eq($_POST['lib'])->fetchAll();
|
||||
unset($_POST);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function update test by doc
|
||||
*
|
||||
* @param int $docID
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function updateTest($docID, $param)
|
||||
{
|
||||
global $tester;
|
||||
$tester->app->loadConfig('api');
|
||||
$tester->app->loadLang('doclib');
|
||||
|
||||
$labels = array();
|
||||
$files = array();
|
||||
|
||||
$createFields = array('lib' => '', 'module' => '', 'title' => '', 'keywords' => '', 'type' => '', 'content' => '', 'contentType' => '',
|
||||
'url' => '', 'labels' => $labels, 'files' => $files, 'contactListMenu' => '', 'acl' => '');
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$objects = $this->objectModel->update($docID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects["changes"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function saveDraft test by doc
|
||||
*
|
||||
* @param mixed $docID
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function saveDraftTest($docID, $param = array())
|
||||
{
|
||||
global $tester;
|
||||
$tester->app->loadConfig('doc');
|
||||
$tester->app->loadConfig('allowedTags');
|
||||
$createFields = array('content' => '');
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$this->objectModel->saveDraft($docID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$objects = $tester->dao->select('id,draft')->from(TABLE_DOC)->where('id')->eq($docID)->fetchAll('id');
|
||||
unset($_POST);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function extractKETableCSSTest($content)
|
||||
{
|
||||
$objects = $this->objectModel->extractKETableCSS($content);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function checkPrivLibTest($object, $extra = '')
|
||||
{
|
||||
$objects = $this->objectModel->checkPrivLib($object, $extra = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function checkPrivDocTest($object)
|
||||
{
|
||||
$objects = $this->objectModel->checkPrivDoc($object);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getAllLibsByTypeTest($type, $pager = null, $product = '')
|
||||
{
|
||||
$objects = $this->objectModel->getAllLibsByType($type, $pager = null, $product = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getAllLibGroupsTest($appendLibs = '')
|
||||
{
|
||||
$objects = $this->objectModel->getAllLibGroups($appendLibs = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getLimitLibsTest($type, $limit = 0)
|
||||
{
|
||||
$objects = $this->objectModel->getLimitLibs($type, $limit = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getSubLibGroupsTest($type, $idList)
|
||||
{
|
||||
$objects = $this->objectModel->getSubLibGroups($type, $idList);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getLibsByObjectTest($type, $objectID, $mode = '', $appendLib = 0)
|
||||
{
|
||||
$objects = $this->objectModel->getLibsByObject($type, $objectID, $mode = '', $appendLib = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getOrderedObjectsTest($objectType = 'product')
|
||||
{
|
||||
$objects = $this->objectModel->getOrderedObjects($objectType = 'product');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test stat module and document counts of lib.
|
||||
*
|
||||
* @param array $idList
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function statLibCountsTest($idList)
|
||||
{
|
||||
$objects = $this->objectModel->statLibCounts($idList);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get lib files.
|
||||
*
|
||||
* @param string $type
|
||||
* @param int $objectID
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getLibFilesTest($type, $objectID, $orderBy, $pager = null)
|
||||
{
|
||||
$objects = $this->objectModel->getLibFiles($type, $objectID, $orderBy, $pager = null);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$titles = '';
|
||||
foreach($objects as $object)
|
||||
{
|
||||
$titles .= "$object->title,";
|
||||
}
|
||||
$titles = trim($titles, ',');
|
||||
return $titles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get file source pairs.
|
||||
*
|
||||
* @param array $files
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getFileSourcePairsTest($type, $objectID)
|
||||
{
|
||||
$files = $this->objectModel->getLibFiles($type, $objectID, 't1.id_desc', $pager = null);
|
||||
|
||||
$objects = $this->objectModel->getFileSourcePairs($files);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$counts = '';
|
||||
foreach($objects as $type => $items)
|
||||
{
|
||||
$counts .= "$type:" . count($items) .';';
|
||||
}
|
||||
return $counts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get file icon.
|
||||
*
|
||||
* @param string $type
|
||||
* @param int $objectID
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getFileIconTest($type, $objectID)
|
||||
{
|
||||
$files = $this->objectModel->getLibFiles($type, $objectID, 't1.id_desc', $pager = null);
|
||||
|
||||
$objects = $this->objectModel->getFileIcon($files);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$icons = '';
|
||||
foreach($objects as $object)
|
||||
{
|
||||
preg_match("/icon-[^']*/", $object, $matches);
|
||||
$icons .= "$matches[0] ";
|
||||
}
|
||||
$icons = trim($icons);
|
||||
return $icons;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get doc tree.
|
||||
*
|
||||
* @param int $libID
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getDocTreeTest($libID)
|
||||
{
|
||||
$objects = $this->objectModel->getDocTree($libID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$names = '';
|
||||
foreach($objects as $object)
|
||||
{
|
||||
$names .= "$object->name:";
|
||||
foreach($object->children as $children) $names .= (isset($children->name) ? $children->name : $children->title) . ",";
|
||||
$names = trim($names, ',');
|
||||
$names .= ";";
|
||||
}
|
||||
return $names;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test fill docs in tree.
|
||||
*
|
||||
* @param object $node
|
||||
* @param int $libID
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function fillDocsInTreeTest($node, $libID)
|
||||
{
|
||||
$object = $this->objectModel->fillDocsInTree($node, $libID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$docsCounts = "$object->name:$object->docsCount;";
|
||||
foreach($object->children as $children)
|
||||
{
|
||||
if(isset($children->type) and $children->type == 'doc') continue;
|
||||
$docsCounts .= "$children->name:$children->docsCount;";
|
||||
}
|
||||
return $docsCounts;
|
||||
}
|
||||
|
||||
public function getProductCrumbTest($productID, $executionID = 0)
|
||||
{
|
||||
$objects = $this->objectModel->getProductCrumb($productID, $executionID = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test set lib users.
|
||||
*
|
||||
* @param string $type
|
||||
* @param int $objectID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function setLibUsersTest($type, $objectID)
|
||||
{
|
||||
$objects = $this->objectModel->setLibUsers($type, $objectID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return implode($objects, ',');
|
||||
}
|
||||
|
||||
public function getLibIdListByProjectTest($projectID = 0)
|
||||
{
|
||||
$objects = $this->objectModel->getLibIdListByProject($projectID = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get statistic information.
|
||||
*
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getStatisticInfoTest()
|
||||
{
|
||||
$objects = $this->objectModel->getStatisticInfo();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the previous and next doc.
|
||||
*
|
||||
* @param int $docID
|
||||
* @param int $libID
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getPreAndNextDocTest($docID, $libID)
|
||||
{
|
||||
$objects = $this->objectModel->getPreAndNextDoc($docID, $libID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function printChildModuleTest($module, $libID, $methodName, $browseType, $moduleID)
|
||||
{
|
||||
$objects = $this->objectModel->printChildModule($module, $libID, $methodName, $browseType, $moduleID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function buildCrumbTitleTest($libID = 0, $param = 0, $title = '')
|
||||
{
|
||||
$objects = $this->objectModel->buildCrumbTitle($libID = 0, $param = 0, $title = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function buildCreateButton4DocTest($objectType, $objectID, $libID)
|
||||
{
|
||||
$objects = $this->objectModel->buildCreateButton4Doc($objectType, $objectID, $libID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function buildCollectButton4DocTest()
|
||||
{
|
||||
$objects = $this->objectModel->buildCollectButton4Doc();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function buildBrowseSwitchTest($type, $objectID, $viewType)
|
||||
{
|
||||
$objects = $this->objectModel->buildBrowseSwitch($type, $objectID, $viewType);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function setFastMenuTest($fastLib)
|
||||
{
|
||||
$objects = $this->objectModel->setFastMenu($fastLib);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getToAndCcListTest($doc)
|
||||
{
|
||||
$objects = $this->objectModel->getToAndCcList($doc);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function selectTest($type, $objects, $objectID, $libs, $libID = 0)
|
||||
{
|
||||
$objects = $this->objectModel->select($type, $objects, $objectID, $libs, $libID = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getApiModuleTreeTest($rootID, $docID = 0, $release = 0)
|
||||
{
|
||||
$objects = $this->objectModel->getApiModuleTree($rootID, $docID = 0, $release = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getTreeMenuTest($type, $objectID, $rootID, $startModule = 0, $docID = 0)
|
||||
{
|
||||
$objects = $this->objectModel->getTreeMenu($type, $objectID, $rootID, $startModule = 0, $docID = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function summaryTest($files)
|
||||
{
|
||||
$objects = $this->objectModel->summary($files);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function setMenuByTypeTest($type, $objectID, $libID, $appendLib = 0)
|
||||
{
|
||||
$objects = $this->objectModel->setMenuByType($type, $objectID, $libID, $appendLib = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function checkAutoloadPageTest($doc)
|
||||
{
|
||||
$objects = $this->objectModel->checkAutoloadPage($doc);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
<?php
|
||||
class entryTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('entry');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get entry by id.
|
||||
*
|
||||
* @param int $entryID
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getByIdTest($entryID)
|
||||
{
|
||||
$object = $this->objectModel->getById($entryID);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get entry by code.
|
||||
*
|
||||
* @param int $code
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getByCodeTest($code)
|
||||
{
|
||||
$object = $this->objectModel->getByCode($code);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get entry by key.
|
||||
*
|
||||
* @param int $key
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getByKeyTest($key)
|
||||
{
|
||||
$object = $this->objectModel->getByKey($key);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list test.
|
||||
*
|
||||
* @param string $orderBy
|
||||
* @param int $pager
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getListTest($orderBy = 'id_desc', $pager = null)
|
||||
{
|
||||
$objects = $this->objectModel->getList($orderBy, $pager);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get logs test.
|
||||
*
|
||||
* @param int $id
|
||||
* @param string $orderBy
|
||||
* @param int $pager
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getLogsTest($id, $orderBy = 'date_desc', $pager = null)
|
||||
{
|
||||
$object = $this->objectModel->getLogs($id, $orderBy, $paper);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test create a object.
|
||||
*
|
||||
* @param array $params
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function createObject($params = array())
|
||||
{
|
||||
$createFields = array();
|
||||
$createFields['name'] = '这是应用名称';
|
||||
$createFields['code'] = 'code';
|
||||
$createFields['account'] = 'admin';
|
||||
$createFields['key'] = md5(time());
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
|
||||
foreach($params as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$objectID = $this->objectModel->create();
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$object = $this->objectModel->getById($objectID);
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test update a entry.
|
||||
*
|
||||
* @param int $entryID
|
||||
* @param int $params
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function updateObject($entryID, $params)
|
||||
{
|
||||
global $tester;
|
||||
|
||||
$object = $tester->dbh->query("SELECT * FROM " . TABLE_ENTRY ." WHERE id = $entryID")->fetch();
|
||||
|
||||
foreach($object as $field => $value)
|
||||
{
|
||||
if(in_array($field, array_keys($params)))
|
||||
{
|
||||
$_POST[$field] = $params[$field];
|
||||
}
|
||||
else
|
||||
{
|
||||
$_POST[$field] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$change = $this->objectModel->update($entryID);
|
||||
if($change == array()) $change = '没有数据更新';
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
return $change;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test update calledTime.
|
||||
*
|
||||
* @param int $code
|
||||
* @param int $time
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function updateCalledTimeTest($code, $time)
|
||||
{
|
||||
$this->objectModel->updateCalledTime($code, $time);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$object = $this->objectModel->getByCode($code);
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test save a log.
|
||||
*
|
||||
* @param int $entryID
|
||||
* @param int $url
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function saveLogTest($entryID, $url)
|
||||
{
|
||||
$this->objectModel->saveLog($entryID, $url);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
global $tester;
|
||||
$object = $tester->dbh->query("SELECT * FROM " . TABLE_LOG ." WHERE objectID = $entryID AND objectType = 'entry'")->fetch();
|
||||
return $object;
|
||||
}
|
||||
|
||||
}
|
||||
+30
-129
@@ -7,15 +7,6 @@ class fileTest
|
||||
$this->objectModel = $tester->loadModel('file');
|
||||
}
|
||||
|
||||
public function __constructTest()
|
||||
{
|
||||
$objects = $this->objectModel->construct();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get files of an object.
|
||||
*
|
||||
@@ -55,15 +46,6 @@ class fileTest
|
||||
return $object;
|
||||
}
|
||||
|
||||
public function saveUploadTest($objectType = '', $objectID = '', $extra = '', $filesName = 'files', $labelsName = 'labels')
|
||||
{
|
||||
$objects = $this->objectModel->saveUpload($objectType = '', $objectID = '', $extra = '', $filesName = 'files', $labelsName = 'labels');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get counts of uploaded files.
|
||||
*
|
||||
@@ -134,15 +116,6 @@ class fileTest
|
||||
return $object;
|
||||
}
|
||||
|
||||
public function saveUploadFileTest($file, $uid)
|
||||
{
|
||||
$objects = $this->objectModel->saveUploadFile($file, $uid);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get extension of a file.
|
||||
*
|
||||
@@ -159,6 +132,13 @@ class fileTest
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get save name.
|
||||
*
|
||||
* @param string $pathName
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getSaveNameTest($pathName)
|
||||
{
|
||||
$objects = $this->objectModel->getSaveName($pathName);
|
||||
@@ -184,13 +164,20 @@ class fileTest
|
||||
return $realpath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get export tpl.
|
||||
*
|
||||
* @param string $module
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getExportTemplateTest($module)
|
||||
{
|
||||
$objects = $this->objectModel->getExportTemplate($module);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
return count($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -209,22 +196,26 @@ class fileTest
|
||||
return $path;
|
||||
}
|
||||
|
||||
public function saveExportTemplateTest($module)
|
||||
/**
|
||||
* Test save export template.
|
||||
*
|
||||
* @param string $module
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function saveExportTemplateTest($module, $file)
|
||||
{
|
||||
$objects = $this->objectModel->saveExportTemplate($module);
|
||||
foreach($file as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
$objectID = $this->objectModel->saveExportTemplate($module);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
unset($_POST);
|
||||
|
||||
public function setPathNameTest($fileID, $extension)
|
||||
{
|
||||
$objects = $this->objectModel->setPathName($fileID, $extension);
|
||||
if(dao::isError()) return dao::getError()['title'][0];
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
global $tester;
|
||||
$object = $tester->dao->select('*')->from(TABLE_USERTPL)->where('id')->eq($objectID)->fetch();
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -262,60 +253,6 @@ class fileTest
|
||||
return $path;
|
||||
}
|
||||
|
||||
public function setImgSizeTest($content, $maxSize = 0)
|
||||
{
|
||||
$objects = $this->objectModel->setImgSize($content, $maxSize = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function replaceFileTest($fileID, $postName = 'upFile')
|
||||
{
|
||||
$objects = $this->objectModel->replaceFile($fileID, $postName = 'upFile');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function cropImageTest($rawImage, $target, $x, $y, $width, $height, $resizeWidth = 0, $resizeHeight = 0)
|
||||
{
|
||||
$objects = $this->objectModel->cropImage($rawImage, $target, $x, $y, $width, $height, $resizeWidth = 0, $resizeHeight = 0);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function pasteImageTest($data, $uid = '', $safe = false)
|
||||
{
|
||||
$objects = $this->objectModel->pasteImage($data, $uid = '', $safe = false);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function parseCSVTest($fileName)
|
||||
{
|
||||
$objects = $this->objectModel->parseCSV($fileName);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function processImgURLTest($data, $editorList, $uid = '')
|
||||
{
|
||||
$objects = $this->objectModel->processImgURL($data, $editorList, $uid = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test compress image.
|
||||
*
|
||||
@@ -332,15 +269,6 @@ class fileTest
|
||||
return $object;
|
||||
}
|
||||
|
||||
public function imagecreatefrombmpTest($filename)
|
||||
{
|
||||
$objects = $this->objectModel->imagecreatefrombmp($filename);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test update objectID.
|
||||
*
|
||||
@@ -367,33 +295,6 @@ class fileTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function replaceImgURLTest($data, $fields)
|
||||
{
|
||||
$objects = $this->objectModel->replaceImgURL($data, $fields);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function sendDownHeaderTest($fileName, $fileType, $content, $type = 'content')
|
||||
{
|
||||
$objects = $this->objectModel->sendDownHeader($fileName, $fileType, $content, $type = 'content');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getImageSizeTest($file)
|
||||
{
|
||||
$objects = $this->objectModel->getImageSize($file);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get file pairs.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
class gitTest
|
||||
{
|
||||
public $tester;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->tester = $tester;
|
||||
$this->gitModel = $this->tester->loadModel('git');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update commit.
|
||||
*
|
||||
* @param object $repo
|
||||
* @param array $commentGroup
|
||||
* @param bool $printLog
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function updateCommit($repo)
|
||||
{
|
||||
$repoID = isset($repo->id) ? $repo->id : 0;
|
||||
$oldLastSync = $this->tester->dao->select('lastSync')->from(TABLE_REPO)->where('id')->eq($repoID)->fetch('lastSync');
|
||||
$result = $this->gitModel->updateCommit($repo, array(), false);
|
||||
if(empty($repoID)) return $result;
|
||||
$newLastSync = $this->tester->dao->select('lastSync')->from(TABLE_REPO)->where('id')->eq($repoID)->fetch('lastSync');
|
||||
return $oldLastSync != $newLastSync;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the repos.
|
||||
*
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function setRepos()
|
||||
{
|
||||
$this->gitModel->setRepos();
|
||||
$repo = array_shift($this->gitModel->repos);
|
||||
return $repo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get repos.
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getRepos()
|
||||
{
|
||||
$pairs = $this->gitModel->getRepos();
|
||||
return array_shift($pairs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set repo.
|
||||
*
|
||||
* @param object $repo
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function setRepo($repo)
|
||||
{
|
||||
$this->gitModel->client = '';
|
||||
$this->gitModel->repoRoot = '';
|
||||
|
||||
$result = $this->gitModel->setRepo($repo);
|
||||
|
||||
$data = new stdclass();
|
||||
$data->result = $result;
|
||||
$data->client = !empty($this->gitModel->client);
|
||||
$data->repoRoot = !empty($this->gitModel->repoRoot);
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* get tags histories for repo.
|
||||
*
|
||||
* @param object $repo
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getRepoTags($repo)
|
||||
{
|
||||
$tags = $this->gitModel->getRepoTags($repo);
|
||||
if(is_array($tags) and count($tags) >= 1) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get repo logs.
|
||||
*
|
||||
* @param object $repo
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getRepoLogs($repo)
|
||||
{
|
||||
$logs = $this->gitModel->getRepoLogs($repo, '');
|
||||
if(is_array($logs) and count($logs) >= 1) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert log from xml format to object.
|
||||
*
|
||||
* @param object $log
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function convertLog($log)
|
||||
{
|
||||
$parsedLogs = $this->gitModel->convertLog($log);
|
||||
if(empty($parsedLogs->revision)) $parsedLogs->revision = 0;
|
||||
return $parsedLogs;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,320 @@
|
||||
<?php
|
||||
class holidayTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('holiday');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getById method.
|
||||
*
|
||||
* @param int $id
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getByIdTest($id)
|
||||
{
|
||||
$objects = $this->objectModel->getById($id);
|
||||
|
||||
if($objects === false) return 'Object not found';
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getList method.
|
||||
*
|
||||
* @param string $year
|
||||
* @param string $type
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getListTest($year = '', $type = 'all')
|
||||
{
|
||||
$objects = $this->objectModel->getList($year, $type);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return count($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getYearPairs method.
|
||||
*
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getYearPairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getYearPairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return count($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test create method.
|
||||
*
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function createTest($param = array())
|
||||
{
|
||||
$defaultParam['type'] = 'holiday';
|
||||
$defaultParam['begin'] = '2022-01-01';
|
||||
$defaultParam['end'] = '2022-02-01';
|
||||
$defaultParam['name'] = '测试创建holiday';
|
||||
$defaultParam['desc'] = '默认的holiday';
|
||||
|
||||
foreach($defaultParam as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$lastInsertID = $this->objectModel->create();
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
return dao::getError();
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = $this->objectModel->getByID($lastInsertID);
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test update method.
|
||||
*
|
||||
* @param int $holidayID
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function updateTest($holidayID, $param = array())
|
||||
{
|
||||
global $tester;
|
||||
$object = $tester->dbh->query("SELECT * FROM " . TABLE_HOLIDAY ." WHERE id = $holidayID")->fetch();
|
||||
|
||||
foreach($object as $field => $value)
|
||||
{
|
||||
if(in_array($field, array_keys($param)))
|
||||
{
|
||||
$_POST[$field] = $param[$field];
|
||||
}
|
||||
else
|
||||
{
|
||||
$_POST[$field] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$noError = $this->objectModel->update($bugID);
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
return dao::getError();
|
||||
}
|
||||
else
|
||||
{
|
||||
return 'true';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getHolidays method.
|
||||
*
|
||||
* @param string $begin
|
||||
* @param string $end
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getHolidaysTest($begin, $end)
|
||||
{
|
||||
$objects = $this->objectModel->getHolidays($begin, $end);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return count($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getWorkingDays method.
|
||||
*
|
||||
* @param string $begin
|
||||
* @param string $end
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getWorkingDaysTest($begin = '', $end = '')
|
||||
{
|
||||
$objects = $this->objectModel->getWorkingDays($begin, $end);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return count($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getActualWorkingDays method.
|
||||
*
|
||||
* @param string $begin
|
||||
* @param string $end
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getActualWorkingDaysTest($begin, $end)
|
||||
{
|
||||
$objects = $this->objectModel->getActualWorkingDays($begin, $end);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return count($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getDaysBetweenTest method.
|
||||
*
|
||||
* @param string $begin
|
||||
* @param string $end
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getDaysBetweenTest($begin, $end)
|
||||
{
|
||||
$objects = $this->objectModel->getDaysBetween($begin, $end);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return count($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test isHoliday method.
|
||||
*
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function isHolidayTest($date)
|
||||
{
|
||||
$objects = $this->objectModel->isHoliday($date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects === true ? "It is a holiday" : "It is not a holiday";
|
||||
}
|
||||
|
||||
/**
|
||||
* Test isWorkingDay method.
|
||||
*
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function isWorkingDayTest($date)
|
||||
{
|
||||
$objects = $this->objectModel->isWorkingDay($date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test updateProgramPlanDuration method.
|
||||
*
|
||||
* @param int $testProjectID
|
||||
* @param object $holiday
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function updateProgramPlanDurationTest($testProjectID, $holidayID)
|
||||
{
|
||||
global $tester;
|
||||
|
||||
$holiday = $tester->dao->select('*')->from(TABLE_HOLIDAY)->where('id')->eq($holidayID)->fetch();
|
||||
|
||||
$this->objectModel->updateProgramPlanDuration($holiday->begin, $holiday->end);
|
||||
|
||||
$project = $tester->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($testProjectID)->fetch();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $project->planDuration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test updateProjectRealDuration method.
|
||||
*
|
||||
* @param int $testProjectID
|
||||
* @param object $holiday
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function updateProjectRealDurationTest($testProjectID, $holidayID)
|
||||
{
|
||||
global $tester;
|
||||
|
||||
$holiday = $tester->dao->select('*')->from(TABLE_HOLIDAY)->where('id')->eq($holidayID)->fetch();
|
||||
|
||||
$this->objectModel->updateProjectRealDuration($holiday->begin, $holiday->end);
|
||||
|
||||
$project = $tester->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($testProjectID)->fetch();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $project->realDuration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test updateTaskPlanDuration method.
|
||||
*
|
||||
* @param int $testTaskID
|
||||
* @param object $holiday
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function updateTaskPlanDurationTest($testTaskID, $holidayID)
|
||||
{
|
||||
global $tester;
|
||||
|
||||
$holiday = $tester->dao->select('*')->from(TABLE_HOLIDAY)->where('id')->eq($holidayID)->fetch();
|
||||
|
||||
$this->objectModel->updateTaskPlanDuration($holiday->begin, $holiday->end);
|
||||
|
||||
$task = $tester->dao->select('*')->from(TABLE_TASK)->where('id')->eq($testTaskID)->fetch();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $task->planDuration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test updateTaskRealDuration method.
|
||||
*
|
||||
* @param int $testTaskID
|
||||
* @param object $holiday
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function updateTaskRealDurationTest($testTaskID, $holidayID)
|
||||
{
|
||||
global $tester;
|
||||
|
||||
$holiday = $tester->dao->select('*')->from(TABLE_HOLIDAY)->where('id')->eq($holidayID)->fetch();
|
||||
|
||||
$this->objectModel->updateTaskRealDuration($holiday->begin, $holiday->end);
|
||||
|
||||
$task = $tester->dao->select('*')->from(TABLE_TASK)->where('id')->eq($testTaskID)->fetch();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $task->realDuration;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
class jenkinsTest
|
||||
{
|
||||
public $tester;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->tester = $tester;
|
||||
$this->jenkins = $this->tester->loadModel('jenkins');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get by id.
|
||||
*
|
||||
* @param int $id
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getByID($id)
|
||||
{
|
||||
$jenkins = $this->jenkins->getByID($id);
|
||||
if(empty($jenkins)) return 0;
|
||||
return $jenkins;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get jenkins list.
|
||||
*
|
||||
* @param string $orderBy
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getList($orderBy = 'id_desc')
|
||||
{
|
||||
$jenkins = $this->jenkins->getList($orderBy);
|
||||
if(empty($jenkins)) return 0;
|
||||
return array_shift($jenkins);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get jenkins pairs
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPairs()
|
||||
{
|
||||
$pairs = $this->jenkins->getPairs();
|
||||
return key($pairs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get jenkins tasks.
|
||||
*
|
||||
* @param int $id
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getTasks($id)
|
||||
{
|
||||
$tasks = $this->jenkins->getTasks($id);
|
||||
if(empty($tasks)) return 0;
|
||||
return $tasks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a jenkins.
|
||||
*
|
||||
* @access public
|
||||
* @return object|string
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$jenkinsID = $this->jenkins->create();
|
||||
if(dao::isError())
|
||||
{
|
||||
$errors = dao::getError();
|
||||
return key($errors);
|
||||
}
|
||||
|
||||
return $this->jenkins->getById($jenkinsID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a jenkins.
|
||||
*
|
||||
* @param int $id
|
||||
* @access public
|
||||
* @return object|string
|
||||
*/
|
||||
public function update($id)
|
||||
{
|
||||
$this->jenkins->update($id);
|
||||
if(dao::isError())
|
||||
{
|
||||
$errors = dao::getError();
|
||||
return key($errors);
|
||||
}
|
||||
|
||||
return $this->jenkins->getById($id);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
class pipelineTest
|
||||
{
|
||||
/**
|
||||
* __construct
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
|
||||
$this->objectModel = $tester->loadModel('pipeline');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a pipeline by id.
|
||||
*
|
||||
* @param int $id
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getByIDTest($id)
|
||||
{
|
||||
$objects = $this->objectModel->getByID($id);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get pipeline list.
|
||||
*
|
||||
* @param string $type jenkins|gitlab
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getListTest($type = 'jenkins', $orderBy = 'id_desc', $pager = null)
|
||||
{
|
||||
$objects = $this->objectModel->getList($type, $orderBy, $pager);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get pipeline pairs
|
||||
*
|
||||
* @param int $data
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPairs($data)
|
||||
{
|
||||
$objects = $this->objectModel->getPairs($data['type']);
|
||||
|
||||
if(empty($objects)) return '没有获取到数据';
|
||||
if(isset($data['id'])) return $objects[$data['id']];
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a pipeline.
|
||||
*
|
||||
* @param int $type
|
||||
* @param int $param
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function createTest($type, $param)
|
||||
{
|
||||
foreach($param as $k => $v) $_POST[$k] = $v;
|
||||
$objects = $this->objectModel->create($type);
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$objects = $this->objectModel->getById($objects);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a pipeline.
|
||||
*
|
||||
* @param int $id
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function updateTest($id)
|
||||
{
|
||||
$objects = $this->objectModel->update($id);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$objects = $this->objectModel->getByID($id);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete one record.
|
||||
*
|
||||
* @param string $id the id to be deleted
|
||||
* @param string $object the action object
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function deleteTest($id, $object = 'gitlab')
|
||||
{
|
||||
$objects = $this->objectModel->delete($id, $object = 'gitlab');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$objects = $this->objectModel->getById($id);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
<?php
|
||||
class settingTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('setting');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get value of an item.
|
||||
*
|
||||
* @param string $paramString see parseItemParam();
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function getItemTest($paramString)
|
||||
{
|
||||
$objects = $this->objectModel->getItem($paramString);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
if($objects or $objects === 0 or $objects === '0') return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get some items.
|
||||
*
|
||||
* @param string $paramString see parseItemParam();
|
||||
* @access public
|
||||
* @return array|string
|
||||
*/
|
||||
public function getItemsTest($paramString)
|
||||
{
|
||||
$objects = $this->objectModel->getItems($paramString);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set value of an item.
|
||||
*
|
||||
* @param string $path system.common.global.sn | system.common.sn | system.common.global.sn@rnd
|
||||
* @param string $value
|
||||
* @access public
|
||||
* @return misc
|
||||
*/
|
||||
public function setItemTest($path, $value = '')
|
||||
{
|
||||
$this->objectModel->setItem($path, $value);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
/* Determine vision of config item. */
|
||||
$pathVision = explode('@', $path);
|
||||
$vision = isset($pathVision[1]) ? $pathVision[1] : '';
|
||||
$path = $pathVision[0];
|
||||
$level = substr_count($path, '.');
|
||||
$section = '';
|
||||
|
||||
if($level <= 1) return false;
|
||||
if($level == 2) list($owner, $module, $key) = explode('.', $path);
|
||||
if($level == 3) list($owner, $module, $section, $key) = explode('.', $path);
|
||||
$paramString = "vision=$vision&owner=$owner&module=$module§ion=$section&key=$key";
|
||||
$objects = $this->objectModel->getItem($paramString);
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch set items, the example:
|
||||
*
|
||||
* $path = 'system.mail';
|
||||
* $items->turnon = true;
|
||||
* $items->smtp->host = 'localhost';
|
||||
*
|
||||
* @param string $path like system.mail
|
||||
* @param array|object $items the items array or object, can be mixed by one level or two levels.
|
||||
* @access public
|
||||
* @return bool|string
|
||||
*/
|
||||
public function setItemsTest($path, $items)
|
||||
{
|
||||
$result = $this->objectModel->setItems($path, $items);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete items.
|
||||
*
|
||||
* @param string $paramString see parseItemParam();
|
||||
* @access public
|
||||
* @return misc
|
||||
*/
|
||||
public function deleteItemsTest($paramString)
|
||||
{
|
||||
$this->objectModel->deleteItems($paramString);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$object = $this->getItemTest($paramString);
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the param string for select or delete items.
|
||||
*
|
||||
* @param string $paramString owner=xxx&key=sn and so on.
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function parseItemParamTest($paramString)
|
||||
{
|
||||
$objects = $this->objectModel->parseItemParam($paramString);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function createDAOTest($params, $method = 'select')
|
||||
{
|
||||
$objects = $this->objectModel->createDAO($params, $method = 'select');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getSysAndPersonalConfigTest($account = '')
|
||||
{
|
||||
$objects = $this->objectModel->getSysAndPersonalConfig($account = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getVersionTest()
|
||||
{
|
||||
$objects = $this->objectModel->getVersion();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getURSRTest()
|
||||
{
|
||||
$objects = $this->objectModel->getURSR();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function updateVersionTest($version)
|
||||
{
|
||||
$objects = $this->objectModel->updateVersion($version);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function setSNTest()
|
||||
{
|
||||
$objects = $this->objectModel->setSN();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function snNeededUpdateTest($sn)
|
||||
{
|
||||
$objects = $this->objectModel->snNeededUpdate($sn);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
class ssoTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('sso');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test create a user.
|
||||
*
|
||||
* @param array $param
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function createTest($param = array())
|
||||
{
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$result = $this->objectModel->createUser();
|
||||
|
||||
unset($_POST);
|
||||
if($result['status'] == 'fail') return 'fail';
|
||||
|
||||
$object = $this->objectModel->getBindUser($param['account']);
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,281 @@
|
||||
<?php
|
||||
class tutorialTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('tutorial');
|
||||
}
|
||||
|
||||
/**
|
||||
* Check novice.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function checkNoviceTest()
|
||||
{
|
||||
$this->app->user->modifyPassword = 1;
|
||||
$objects = $this->objectModel->checkNovice();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial product pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getProductPairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getProductPairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get module pairs for tutorial.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getModulePairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getModulePairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial product.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getProductTest()
|
||||
{
|
||||
$objects = $this->objectModel->getProduct();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get product stats for tutorial.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getProductStatsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getProductStats();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects[0][0]['products'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get project for tutorial.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getProjectTest()
|
||||
{
|
||||
$objects = $this->objectModel->getProject();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial project pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getProjectPairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getProjectPairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get project stats for tutorial.
|
||||
*
|
||||
* @param string $browseType
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getProjectStatsTest($browseType = '')
|
||||
{
|
||||
$objects = $this->objectModel->getProjectStats($browseType = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial stories.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getStoriesTest()
|
||||
{
|
||||
$objects = $this->objectModel->getStories();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial Execution pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getExecutionPairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getExecutionPairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial execution.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getExecutionTest()
|
||||
{
|
||||
$objects = $this->objectModel->getExecution();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial execution products.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getExecutionProductsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getExecutionProducts();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial execution stories.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getExecutionStoriesTest()
|
||||
{
|
||||
$objects = $this->objectModel->getExecutionStories();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial execution story pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getExecutionStoryPairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getExecutionStoryPairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial team members.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getTeamMembersTest()
|
||||
{
|
||||
$objects = $this->objectModel->getTeamMembers();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get team members pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getTeamMembersPairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getTeamMembersPairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorial user pairs.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getUserPairsTest()
|
||||
{
|
||||
$objects = $this->objectModel->getUserPairs();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tutorialed.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getTutorialedTest()
|
||||
{
|
||||
$objects = $this->objectModel->getTutorialed();
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
}
|
||||
+228
-24
@@ -4,26 +4,91 @@ class weeklyTest
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('weekly');
|
||||
$this->objectModel = $tester->loadModel('weekly');
|
||||
$this->projectModel = $tester->loadModel('project');
|
||||
}
|
||||
|
||||
public function getPageNavTest($project, $date)
|
||||
|
||||
/**
|
||||
* GetPageNav
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
|
||||
public function getPageNavTest($projectID, $date)
|
||||
{
|
||||
$objects = $this->objectModel->getPageNav($project, $date);
|
||||
$project = $this->projectModel->getById($projectID);
|
||||
$pageNav = $this->objectModel->getPageNav($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$start_str = mb_strpos($pageNav,"ass='btn'>") + mb_strlen("class='btn'>");
|
||||
$end_str = mb_strpos($pageNav,"</a>") - $start_str;
|
||||
$objects = mb_substr($pageNav,$start_str,$end_str);
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* GetWeekPairs
|
||||
*
|
||||
* @param int $begin
|
||||
* @param int $end
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
|
||||
public function getWeekPairsTest($begin, $end)
|
||||
{
|
||||
switch($begin)
|
||||
{
|
||||
case '1':
|
||||
$begin = date('Y-m-d');
|
||||
break;
|
||||
case '2':
|
||||
$begin = date('Y-m-d', strtotime(date('Y-m-d')."- 6 days"));
|
||||
break;
|
||||
case '3':
|
||||
$begin = date('Y-m-d', strtotime(date('Y-m-d') . "+ 6 days"));
|
||||
break;
|
||||
case '':
|
||||
$begin = '';
|
||||
break;
|
||||
}
|
||||
|
||||
switch($begin)
|
||||
{
|
||||
case '1':
|
||||
$end = date('Y-m-d');
|
||||
break;
|
||||
case '2':
|
||||
$end = date('Y-m-d', strtotime(date('Y-m-d')."- 6 days"));
|
||||
break;
|
||||
case '3':
|
||||
$end = date('Y-m-d', strtotime(date('Y-m-d') . "+ 6 days"));
|
||||
break;
|
||||
case '':
|
||||
$end = '';
|
||||
break;
|
||||
}
|
||||
|
||||
$objects = $this->objectModel->getWeekPairs($begin, $end);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getWeekPairsTest($begin, $end = '')
|
||||
{
|
||||
$objects = $this->objectModel->getWeekPairs($begin, $end = '');
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
/**
|
||||
* GetFromDB
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
|
||||
public function getFromDBTest($project, $date)
|
||||
{
|
||||
@@ -34,15 +99,34 @@ class weeklyTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save data.
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function saveTest($project, $date)
|
||||
{
|
||||
$objects = $this->objectModel->save($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
$weekly = $this->objectModel->getFromDB($project, $date);
|
||||
return $weekly;
|
||||
}
|
||||
|
||||
/**
|
||||
* GetWeekSN
|
||||
*
|
||||
* @param string $begin
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
|
||||
public function getWeekSNTest($begin, $date)
|
||||
{
|
||||
$objects = $this->objectModel->getWeekSN($begin, $date);
|
||||
@@ -52,6 +136,14 @@ class weeklyTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get monday for a date.
|
||||
*
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return date
|
||||
*/
|
||||
|
||||
public function getThisMondayTest($date)
|
||||
{
|
||||
$objects = $this->objectModel->getThisMonday($date);
|
||||
@@ -61,6 +153,14 @@ class weeklyTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* GetThisSunday
|
||||
*
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return date
|
||||
*/
|
||||
|
||||
public function getThisSundayTest($date)
|
||||
{
|
||||
$objects = $this->objectModel->getThisSunday($date);
|
||||
@@ -70,6 +170,14 @@ class weeklyTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* GetLastDay
|
||||
*
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
|
||||
public function getLastDayTest($date)
|
||||
{
|
||||
$objects = $this->objectModel->getLastDay($date);
|
||||
@@ -79,87 +187,167 @@ class weeklyTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getStaff
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getStaffTest($project, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getStaff($project, $date = '');
|
||||
$objects = $this->objectModel->getStaff($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
public function getFinishedTest($project, $date = '', $pager = null)
|
||||
/**
|
||||
* Test getFinished
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getFinishedTest($project, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getFinished($project, $date = '', $pager = null);
|
||||
$objects = $this->objectModel->getFinished($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getPostponed
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getPostponedTest($project, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getPostponed($project, $date = '');
|
||||
$objects = $this->objectModel->getPostponed($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getTasksOfNextWeek
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getTasksOfNextWeekTest($project, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getTasksOfNextWeek($project, $date = '');
|
||||
$objects = $this->objectModel->getTasksOfNextWeek($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getWorkloadByType
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getWorkloadByTypeTest($project, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getWorkloadByType($project, $date = '');
|
||||
$objects = $this->objectModel->getWorkloadByType($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getPlanedTaskByWeek
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPlanedTaskByWeekTest($project, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getPlanedTaskByWeek($project, $date = '');
|
||||
$objects = $this->objectModel->getPlanedTaskByWeek($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getPV
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getPVTest($projectID, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getPV($projectID, $date = '');
|
||||
$objects = $this->objectModel->getPV($projectID, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get EV data.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getEVTest($projectID, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getEV($projectID, $date = '');
|
||||
$objects = $this->objectModel->getEV($projectID, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get AC data.
|
||||
*
|
||||
* @param int $project
|
||||
* @param string $date
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getACTest($project, $date = '')
|
||||
{
|
||||
$objects = $this->objectModel->getAC($project, $date = '');
|
||||
$objects = $this->objectModel->getAC($project, $date);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get SV data.
|
||||
*
|
||||
* @param int $ev
|
||||
* @param int $pv
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getSVTest($ev, $pv)
|
||||
{
|
||||
$objects = $this->objectModel->getSV($ev, $pv);
|
||||
@@ -169,6 +357,14 @@ class weeklyTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getCV
|
||||
*
|
||||
* @param int $ev
|
||||
* @param int $ac
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getCVTest($ev, $ac)
|
||||
{
|
||||
$objects = $this->objectModel->getCV($ev, $ac);
|
||||
@@ -178,12 +374,20 @@ class weeklyTest
|
||||
return $objects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getTips
|
||||
*
|
||||
* @param string $type
|
||||
* @param int $data
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getTipsTest($type = 'progress', $data = 0)
|
||||
{
|
||||
$objects = $this->objectModel->getTips($type = 'progress', $data = 0);
|
||||
$objects = $this->objectModel->getTips($type, $data);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ fields:
|
||||
format: ""
|
||||
- field: type
|
||||
note: "文档类型"
|
||||
range: text,markdown
|
||||
range: text,markdown,url
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
|
||||
@@ -33,8 +33,11 @@ fields:
|
||||
format: ""
|
||||
- field: content
|
||||
note: "文档正文"
|
||||
range: 1-10000
|
||||
prefix: "文档正文"
|
||||
fields:
|
||||
- field: content1
|
||||
range: 文档正文,文档正文,www.baidu.com
|
||||
- field: content2
|
||||
range: 1-2,[]
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -47,7 +50,7 @@ fields:
|
||||
format: ""
|
||||
- field: type
|
||||
note: "文档类型"
|
||||
range: text,markdown
|
||||
range: text,markdown,html
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
|
||||
@@ -41,6 +41,12 @@ fields:
|
||||
- field: engine
|
||||
note: "引擎"
|
||||
range: jenkins,gitlab
|
||||
- field: server
|
||||
note: "服务器ID"
|
||||
range: 3,1
|
||||
- field: pipeline
|
||||
note: "流水线"
|
||||
range: dave,[{"project":"1569"}]
|
||||
- field: triggerType
|
||||
note: "触发方式"
|
||||
range: tag,commit,schedule
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
title: table zt_log
|
||||
desc: "接口日志"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: 1-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: objectType
|
||||
note: "对象类型"
|
||||
range: entry,webhook{9}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: objectID
|
||||
note: "对象ID"
|
||||
range: 1-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: action
|
||||
note: "操作日志ID"
|
||||
range: 1-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: date
|
||||
note: "日期"
|
||||
range: "(-1M)-(1w)"
|
||||
type: timestamp
|
||||
format: "YYYY-MM-DD hh:mm:ss"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
- field: url
|
||||
note: "请求地址"
|
||||
range: "qcmmi"
|
||||
prefix: "http://"
|
||||
postfix: ".com"
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: contentType
|
||||
note: "内容类型"
|
||||
range: "application/json"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: data
|
||||
note: "数据"
|
||||
range: a-z
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: result
|
||||
note: "结果"
|
||||
range: a-z
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,98 @@
|
||||
title: table zt_notify
|
||||
desc: "消息通知"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: 1-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: objectType
|
||||
note: "对象类型"
|
||||
range: mail
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: objectID
|
||||
note: "对象ID"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: action
|
||||
note: "操作记录ID"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: toList
|
||||
note: "指派用户"
|
||||
range: admin,user10,test10,dev10,top10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: ccList
|
||||
range: 0
|
||||
note: ""
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: subject
|
||||
note: "主题"
|
||||
range: 1-100
|
||||
prefix: "主题"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: data
|
||||
note: "记录数据"
|
||||
range: 1-100
|
||||
prefix: "用户创建了任务"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdBy
|
||||
note: "创建者"
|
||||
range: dev12,test12,admin
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdDate
|
||||
note: "创建日期"
|
||||
range: "(1M)-(1w)"
|
||||
type: timestamp
|
||||
format: "YYYY-MM-DD hh:mm:ss"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
- field: sendTime
|
||||
note: "发送日期"
|
||||
range: "(1M)-(1w)"
|
||||
type: timestamp
|
||||
format: "YYYY-MM-DD hh:mm:ss"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
- field: status
|
||||
note: "状态"
|
||||
range: wait,fail
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: failReason
|
||||
note: "失败原因"
|
||||
range: ""
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -3,24 +3,24 @@ author: Zeng gang
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
range: 1-2
|
||||
range: 1-3
|
||||
- field: type
|
||||
range: gitlab,sonarqube
|
||||
range: gitlab,sonarqube,jenkins
|
||||
- field: name
|
||||
range: gitlab服务器,sonarqube服务器
|
||||
range: gitlab服务器,sonarqube服务器,jenkins服务器
|
||||
- field: url
|
||||
range: [http://192.168.1.161:51080],[http://192.168.1.161:59001]
|
||||
range: [http://10.0.1.161:51080],[http://10.0.1.161:59001],[http://10.0.1.161:58080]
|
||||
- field: account
|
||||
range: [],[admin]
|
||||
range: [],[admin]{2}
|
||||
- field: password
|
||||
range: [],[UDJzc3cwcmQ=]
|
||||
range: [],[UDJzc3cwcmQ=],[]
|
||||
- field: token
|
||||
range: x88fZokrp5hShia2jyBN,YWRtaW46UDJzc3cwcmQ=
|
||||
range: x88fZokrp5hShia2jyBN,YWRtaW46UDJzc3cwcmQ=,1196c85ba525a268570df9da627e3a7b2d
|
||||
- field: private
|
||||
range: 08bcc98f75d7d40053dc80722bdc117b,228b25587479f2fc7570428e8bcbabdc
|
||||
range: 08bcc98f75d7d40053dc80722bdc117b,228b25587479f2fc7570428e8bcbabdc,ec8e41481723685d9106c88be5967c41
|
||||
- field: createdBy
|
||||
range: admin
|
||||
- field: createdDate
|
||||
range: [2021-12-09 11:23:35],[2022-01-12 08:47:37]
|
||||
range: [2021-12-09 11:23:35],[2022-01-12 08:47:37],[2022-01-12 08:47:37]
|
||||
- field: deleted
|
||||
range: 0
|
||||
|
||||
+7
-2
@@ -50,14 +50,14 @@ fields:
|
||||
- field: commiter
|
||||
note: "源代码帐号"
|
||||
fields:
|
||||
- field: commiter1
|
||||
- field: commiter1
|
||||
range: admin,user{99},test{100},dev{100},pm{100},po{100},td{100},pd{100},qd{100},top{100},outside{100},others{100},a,bb,ccc,qwuiadsd?!2as@#%$aasd~aj1!@#1
|
||||
- field: commiter2
|
||||
range: [],1-99,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,[]{4}
|
||||
- field: avatar
|
||||
note: ""
|
||||
fields:
|
||||
- field: avatar1
|
||||
- field: avatar1
|
||||
range: /home/z/tmp/,/home/z/user/
|
||||
- field: avatar2
|
||||
range: 1-10,10-20
|
||||
@@ -167,6 +167,11 @@ fields:
|
||||
range: 1
|
||||
- field: ranzhi
|
||||
note: "ZDOO账号"
|
||||
fields:
|
||||
- field: account1
|
||||
range: admin,user{99},test{100},dev{100},pm{100},po{100},td{100},pd{100},qd{100},top{100},outside{100},others{100},a,bb,ccc,qwuiadsd?!2as@#%$aasd~aj1!@#1
|
||||
- field: account2
|
||||
range: [],1-99,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,[]{4}
|
||||
- field: score
|
||||
note: "积分"
|
||||
range: 1-10000:R
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
title: table zt_usertpl
|
||||
desc: "用户模块"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: 1-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: account
|
||||
range: admin,dev10,top10,test10,po10
|
||||
note: "用户名"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: "类型"
|
||||
range: exporttask,story,exportbug,exportstory
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: title
|
||||
note: "模板名"
|
||||
range: 1-10000
|
||||
prefix: "模板名称"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: content
|
||||
note: "内容"
|
||||
range: 1-10000
|
||||
prefix: "模块内容"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: public
|
||||
note: "是否公开"
|
||||
range: 0,1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -21,10 +21,8 @@ fields:
|
||||
format: ""
|
||||
- field: weekStart
|
||||
note: ""
|
||||
range: "(M)-(w):60s"
|
||||
type: timestamp
|
||||
format: "YYYY-MM-DD"
|
||||
prefix: ""
|
||||
range: ""
|
||||
prefix: "2022-05-02"
|
||||
postfix: ""
|
||||
- field: pv
|
||||
range: 1-10
|
||||
|
||||
@@ -104,15 +104,18 @@ $builder->designspec = array('rows' => 120, 'extends' => array('designspec'));
|
||||
$builder->stage = array('rows' => 6, 'extends' => array('stage'));
|
||||
$builder->webhook = array('rows' => 7, 'extends' => array('webhook'));
|
||||
$builder->entry = array('rows' => 1, 'extends' => array('entry'));
|
||||
$builder->log = array('rows' => 10, 'extends' => array('log'));
|
||||
$builder->weeklyreport = array('rows' => 10, 'extends' => array('weeklyreport'));
|
||||
$builder->metting = array('rows' => 10, 'extends' => array('meeting'));
|
||||
$builder->usertpl = array('rows' => 10, 'extends' => array('usertpl'));
|
||||
|
||||
$builder->pipeline = array('rows' => 2, 'extends' => array('pipeline'));
|
||||
$builder->pipeline = array('rows' => 3, 'extends' => array('pipeline'));
|
||||
$builder->holiday = array('rows' => 100, 'extends' => array('holiday'));
|
||||
$builder->repo = array('rows' => 1, 'extends' => array('repo'));
|
||||
$builder->job = array('rows' => 2, 'extends' => array('job'));
|
||||
$builder->mr = array('rows' => 1, 'extends' => array('mr'));
|
||||
$builder->oauth = array('rows' => 90, 'extends' => array('oauth'));
|
||||
$builder->notify = array('rows' => 10, 'extends' => array('notify'));
|
||||
|
||||
$builder->vm = array('rows' => 1, 'extends' => array('vm'));
|
||||
$builder->vmtemplate = array('rows' => 1, 'extends' => array('vmtemplate'));
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/ci.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 ciModel->setMenu();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
替换devops模块的参数 >> 代码|repo|browse|repoID=1
|
||||
|
||||
*/
|
||||
|
||||
$ci = new ciTest();
|
||||
|
||||
r($ci->setMenuTest()) && p('link') && e('代码|repo|browse|repoID=1'); //替换devops模块导航的参数
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/ci.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 ciModel->syncCompileStatus();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
同步jenkins构建结果 >> created
|
||||
|
||||
*/
|
||||
|
||||
$ci = new ciTest();
|
||||
|
||||
r($ci->syncCompileStatusTest(1)) && p('status') && e('created'); //同步jenkins构建结果
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/datatable.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 datatableModel::getFieldList();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
获取产品模块browse方法自定义列 >> ID
|
||||
获取项目模块browse方法自定义列 >> 项目名称
|
||||
获取执行模块task方法自定义列 >> 70
|
||||
获取测试用例模块browse方法自定义列 >> auto
|
||||
|
||||
*/
|
||||
|
||||
$datatable = new datatableTest();
|
||||
r($datatable->getFieldListTest('product', 'browse')) && p('id:title') && e('ID'); //获取产品模块browse方法自定义列
|
||||
r($datatable->getFieldListTest('project', 'browse')) && p('name:title') && e('项目名称'); //获取项目模块browse方法自定义列
|
||||
r($datatable->getFieldListTest('execution', 'task')) && p('id:width') && e('70'); //获取执行模块task方法自定义列
|
||||
r($datatable->getFieldListTest('testcase', 'browse')) && p('title:width') && e('auto'); //获取测试用例模块browse方法自定义列
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/datatable.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 datatableModel::getSetting();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
获取产品模块browse方法设置 >> ID
|
||||
获取项目模块browse方法设置 >> 项目名称
|
||||
获取执行模块task方法设置 >> 70
|
||||
获取测试用例模块browse方法设置 >> auto
|
||||
|
||||
*/
|
||||
|
||||
$datatable = new datatableTest();
|
||||
r($datatable->getSettingTest('product', 'browse')) && p('0:title') && e('ID'); //获取产品模块browse方法设置
|
||||
r($datatable->getSettingTest('project', 'browse')) && p('1:title') && e('项目名称'); //获取项目模块browse方法设置
|
||||
r($datatable->getSettingTest('execution', 'task')) && p('0:width') && e('70'); //获取执行模块task方法设置
|
||||
r($datatable->getSettingTest('testcase', 'browse')) && p('2:width') && e('auto'); //获取测试用例模块browse方法设置
|
||||
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/datatable.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 datatableModel::printHead();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
获取产品模块browse方法头部html >> 1
|
||||
获取产品模块browse方法头部html带排序 >> 1
|
||||
获取产品模块browse方法头部html带参数 >> 1
|
||||
获取产品模块browse方法头部html带checkbox >> 1
|
||||
|
||||
*/
|
||||
|
||||
$datatable = new datatableTest();
|
||||
$productSetting = $datatable->getSettingTest('product', 'browse');
|
||||
|
||||
$data = array('cols' => $productSetting[0], 'orderBy' => '', 'vars' => '', 'checkBox' => false);
|
||||
$data_order = array('cols' => $productSetting[0], 'orderBy' => 'id_asc', 'vars' => '', 'checkBox' => false);
|
||||
$data_vars = array('cols' => $productSetting[0], 'orderBy' => 'id_asc', 'vars' => 'productID=1', 'checkBox' => false);
|
||||
$data_check = array('cols' => $productSetting[0], 'orderBy' => 'id_asc', 'vars' => 'productID=1', 'checkBox' => true);
|
||||
|
||||
r($datatable->printHeadTest($data)) && p() && e(1); //获取产品模块browse方法头部html
|
||||
r($datatable->printHeadTest($data_order)) && p() && e(1); //获取产品模块browse方法头部html带排序
|
||||
r($datatable->printHeadTest($data_vars)) && p() && e(1); //获取产品模块browse方法头部html带参数
|
||||
r($datatable->printHeadTest($data_check)) && p() && e(1); //获取产品模块browse方法头部html带checkbox
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/datatable.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 datatableModel::setFixedFieldWidth();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
获取产品模块browse方法设置宽度 >> 550
|
||||
获取项目模块browse方法设置宽度 >> 180
|
||||
获取执行模块task方法设置宽度 >> 550
|
||||
获取测试用例模块browse方法设置宽度 >> 150
|
||||
|
||||
*/
|
||||
|
||||
$datatable = new datatableTest();
|
||||
$productSetting = $datatable->getSettingTest('product', 'browse');
|
||||
$projectSetting = $datatable->getSettingTest('project', 'browse');
|
||||
$executionSetting = $datatable->getSettingTest('execution', 'task');
|
||||
$testcaseSetting = $datatable->getSettingTest('testcase', 'browse');
|
||||
|
||||
r($datatable->setFixedFieldWidthTest($productSetting)) && p('leftWidth') && e('550'); //获取产品模块browse方法设置宽度
|
||||
r($datatable->setFixedFieldWidthTest($projectSetting)) && p('rightWidth') && e('180'); //获取项目模块browse方法设置宽度
|
||||
r($datatable->setFixedFieldWidthTest($executionSetting)) && p('leftWidth') && e('550'); //获取执行模块browse方法设置宽度
|
||||
r($datatable->setFixedFieldWidthTest($testcaseSetting)) && p('rightWidth') && e('150'); //获取测试用例模块browse方法设置宽度
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->buildBrowseSwitch();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->buildBrowseSwitchTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->buildCollectButton4Doc();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->buildCollectButton4DocTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->buildCreateButton4Doc();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->buildCreateButton4DocTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->buildCrumbTitle();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->buildCrumbTitleTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->checkAutoloadPage();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->checkAutoloadPageTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->checkPrivDoc();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->checkPrivDocTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->checkPrivLib();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->checkPrivLibTest()) && p() && e();
|
||||
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->create();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
创建产品文档 >> 1,新建产品文档
|
||||
创建项目文档 >> 27,新建项目文档
|
||||
创建执行文档 >> 127,新建执行文档
|
||||
创建自定义文档 >> text,
|
||||
创建url文档 >> url,www.baidu.com
|
||||
创建Markdown文档 >> text,Markdown
|
||||
创建私有文档 >> private
|
||||
创建自定义文档 >> custom,1,2,3
|
||||
不输入文档库 >> 『所属文档库』不能为空。
|
||||
不输入标题 >> 『文档标题』不能为空。
|
||||
|
||||
*/
|
||||
$libIDs = array('1', '117', '217', '821');
|
||||
$type = array('text', 'url', 'execution', 'custom', '');
|
||||
$acl = array('', 'open', 'custom', 'private');
|
||||
$groups = array('1', '2', '3');
|
||||
$users = array('admin', 'dev1', 'dev10');
|
||||
|
||||
$createProductDoc = array('lib' => $libIDs[0], 'title' => '新建产品文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$createProjectDoc = array('lib' => $libIDs[1], 'title' => '新建项目文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$createExecutionDoc = array('lib' => $libIDs[2], 'title' => '新建执行文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$createCustomDoc = array('lib' => $libIDs[3], 'title' => '新建自定义文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$createUrlDoc = array('lib' => $libIDs[0], 'title' => '新建URL文档', 'type' => $type[1], 'url' => 'www.baidu.com', 'acl' => $acl[1]);
|
||||
$createMarkdownDoc = array('lib' => $libIDs[0], 'title' => '新建markdown文档', 'type' => $type[0], 'contentType' => 'markdown', 'contentMarkdown' => 'Markdown', 'acl' => $acl[1]);
|
||||
$privateDoc = array('lib' => $libIDs[0], 'title' => '新建私有文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[3]);
|
||||
$customDoc = array('lib' => $libIDs[0], 'title' => '新建自定义文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[2], 'groups' => $groups, 'users' => $users);
|
||||
$noLib = array('title' => '无文档库', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$noTitle = array('lib' => $libIDs[0], 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$noType = array('lib' => $libIDs[0], 'title' => '无TYPE', 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
|
||||
$doc = new docTest();
|
||||
r($doc->createTest($createProductDoc)) && p('0:product,title') && e('1,新建产品文档'); //创建产品文档
|
||||
r($doc->createTest($createProjectDoc)) && p('0:project,title') && e('27,新建项目文档'); //创建项目文档
|
||||
r($doc->createTest($createExecutionDoc)) && p('0:execution,title') && e('127,新建执行文档'); //创建执行文档
|
||||
r($doc->createTest($createCustomDoc)) && p('0:type,draft') && e('text,'); //创建自定义文档
|
||||
r($doc->createTest($createUrlDoc)) && p('0:type,draft') && e('url,www.baidu.com'); //创建url文档
|
||||
r($doc->createTest($createMarkdownDoc)) && p('0:type,draft') && e('text,Markdown'); //创建Markdown文档
|
||||
r($doc->createTest($privateDoc)) && p('0:acl') && e('private'); //创建私有文档
|
||||
r($doc->createTest($customDoc)) && p('0:acl,groups') && e('custom,1,2,3'); //创建自定义文档
|
||||
r($doc->createTest($noLib)) && p('lib') && e('『所属文档库』不能为空。');//不输入文档库
|
||||
r($doc->createTest($noTitle)) && p('title:0') && e('『文档标题』不能为空。'); //不输入标题
|
||||
|
||||
system("./ztest init");
|
||||
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->createApiLib();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
新建公有接口库 >> api;新建api文档库
|
||||
新建私有接口库 >> private;www.zentaopms.com
|
||||
新建自定义接口库 >> custom;1,2,3;admin,dev1,dev10
|
||||
接口库名称为空 >> 『接口库名称』不能为空。
|
||||
重复创建接口库 >> 『接口库名称』已经有『新建api文档库』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
|
||||
|
||||
*/
|
||||
$acl = array('', 'open', 'custom', 'private');
|
||||
$groups = array('1', '2', '3');
|
||||
$users = array('admin', 'dev1', 'dev10');
|
||||
|
||||
$openApilib = array('name' => '新建api文档库', 'acl' => $acl[1], 'baseUrl' => 'www.zentaopms.com');
|
||||
$privateApilib = array('name' => '新建私有api文档库', 'acl' => $acl[3], 'baseUrl' => 'www.zentaopms.com');
|
||||
$customApilib = array('name' => '新建自定义api文档库', 'acl' => $acl[2], 'baseUrl' => 'www.zentaopms.com', 'groups' => $groups, 'users' => $users);
|
||||
$noName = array('name' => '', 'acl' => $acl[1], 'baseUrl' => 'www.zentaopms.com');
|
||||
$noAcl = array('name' => '无权限', 'acl' => $acl[0], 'baseUrl' => 'www.zentaopms.com');
|
||||
$noBaseUrl = array('name' => 'noBaseUrl', 'acl' => $acl[0], 'baseUrl' => '');
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->createApiLibTest($openApilib)) && p('type;name') && e('api;新建api文档库'); //新建公有接口库
|
||||
r($doc->createApiLibTest($privateApilib)) && p('acl;baseUrl') && e('private;www.zentaopms.com'); //新建私有接口库
|
||||
r($doc->createApiLibTest($customApilib)) && p('acl;groups;users') && e('custom;1,2,3;admin,dev1,dev10');//新建自定义接口库
|
||||
r($doc->createApiLibTest($noName)) && p('name:0') && e('『接口库名称』不能为空。'); //接口库名称为空
|
||||
r($doc->createApiLibTest($noAcl)) && p('acl') && e(''); //接口库权限为空
|
||||
r($doc->createApiLibTest($noBaseUrl)) && p('baseUrl') && e(''); //接口库地址为空
|
||||
r($doc->createApiLibTest($openApilib)) && p('name:0') && e('『接口库名称』已经有『新建api文档库』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。');//重复创建接口库
|
||||
|
||||
system("./ztest init");
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->createLib();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
新建公有产品文档库 >> product;新建文档库
|
||||
新建公有项目文档库 >> project;default
|
||||
新建公有执行文档库 >> execution;rnd
|
||||
新建公有自定义文档库 >> custom;0
|
||||
新建私有自定义文档库 >> product;1,2,3;admin,dev1,dev10
|
||||
新建无产品产品文档库 >> 『产品库』应当是数字。
|
||||
新建无项目项目文档库 >> 『project』应当是数字。
|
||||
新建无执行执行文档库 >> 『迭代库』应当是数字。
|
||||
|
||||
*/
|
||||
$type = array('product', 'project', 'execution', 'custom', '');
|
||||
$product = array('', '1');
|
||||
$project = array('', '11');
|
||||
$execution = array('', '101');
|
||||
$name = array('', '新建文档库');
|
||||
$acl = array('', 'default', 'custom');
|
||||
$groups = array('1', '2', '3');
|
||||
$users = array('admin', 'dev1', 'dev10');
|
||||
|
||||
$createProduct = array('type' => $type[0], 'product' => $product[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$createProject = array('type' => $type[1], 'project' => $project[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$createExecution = array('type' => $type[2], 'execution' => $execution[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$createCustom = array('type' => $type[3], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$customLib = array('type' => $type[0], 'product' => $product[1], 'name' => $name[1], 'acl' => $acl[2], 'groups' => $groups, 'users' => $users);
|
||||
$noType = array('type' => $type[4], 'product' => $product[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noProduct = array('type' => $type[0], 'product' => $product[0], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noProject = array('type' => $type[1], 'project' => $project[0], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noExecution = array('type' => $type[2], 'execution' => $execution[0], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noAcl = array('type' => $type[0], 'product' => $product[1], 'name' => $name[1], 'acl' => $acl[0]);
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->createLibTest($createProduct)) && p('type;name') && e('product;新建文档库'); //新建公有产品文档库
|
||||
r($doc->createLibTest($createProject)) && p('type;acl') && e('project;default'); //新建公有项目文档库
|
||||
r($doc->createLibTest($createExecution)) && p('type;vision') && e('execution;rnd'); //新建公有执行文档库
|
||||
r($doc->createLibTest($createCustom)) && p('type;project') && e('custom;0'); //新建公有自定义文档库
|
||||
r($doc->createLibTest($customLib)) && p('type;groups;users') && e('product;1,2,3;admin,dev1,dev10');//新建私有自定义文档库
|
||||
r($doc->createLibTest($noType)) && p('type') && e(''); //新建无类型文档库
|
||||
r($doc->createLibTest($noProduct)) && p('product:0') && e('『产品库』应当是数字。'); //新建无产品产品文档库
|
||||
r($doc->createLibTest($noProject)) && p('project:0') && e('『project』应当是数字。'); //新建无项目项目文档库
|
||||
r($doc->createLibTest($noExecution)) && p('execution:0') && e('『迭代库』应当是数字。'); //新建无执行执行文档库
|
||||
r($doc->createLibTest($noAcl)) && p('acl') && e(''); //新建无权限控制文档库
|
||||
|
||||
system("./ztest init");
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->extractKETableCSS();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
$content = 'test';
|
||||
$css = '<table class="ke-table1" style="width:100%;" cellpadding="2" cellspacing="0" border="1" bordercolor="#000000">';
|
||||
|
||||
r($doc->extractKETableCSS($content)) && p() && e('0'); //未过滤数据查询
|
||||
r($doc->extractKETableCSS($css)) && p() && e('.ke-table1{border:1px #000000 solid}');//过滤后数据查询
|
||||
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->fillDocsInTree();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试填充libID 1 文档树第一个节点的文档 >> 目录1:3;子目录1:0;子目录2:0;
|
||||
测试填充libID 2 文档树第一个节点的文档 >> 目录2:2;子目录3:0;子目录4:0;
|
||||
测试填充libID 3 文档树第一个节点的文档 >> 目录3:2;子目录5:0;子目录6:0;
|
||||
测试填充libID 11 文档树第一个节点的文档 >> 目录11:2;子目录21:0;子目录22:0;
|
||||
测试填充libID 12 文档树第一个节点的文档 >> 目录12:2;子目录23:0;子目录24:0;
|
||||
|
||||
*/
|
||||
$libID = array(1, 2, 3, 11, 12);
|
||||
|
||||
global $tester;
|
||||
$fullTree1 = $tester->loadModel('tree')->getTreeStructure($libID[0], 'doc');
|
||||
$fullTree2 = $tester->loadModel('tree')->getTreeStructure($libID[1], 'doc');
|
||||
$fullTree3 = $tester->loadModel('tree')->getTreeStructure($libID[2], 'doc');
|
||||
$fullTree4 = $tester->loadModel('tree')->getTreeStructure($libID[3], 'doc');
|
||||
$fullTree5 = $tester->loadModel('tree')->getTreeStructure($libID[4], 'doc');
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->fillDocsInTreeTest($fullTree1[0], $libID[0])) && p() && e('目录1:3;子目录1:0;子目录2:0;'); // 测试填充libID 1 文档树第一个节点的文档
|
||||
r($doc->fillDocsInTreeTest($fullTree2[0], $libID[1])) && p() && e('目录2:2;子目录3:0;子目录4:0;'); // 测试填充libID 2 文档树第一个节点的文档
|
||||
r($doc->fillDocsInTreeTest($fullTree3[0], $libID[2])) && p() && e('目录3:2;子目录5:0;子目录6:0;'); // 测试填充libID 3 文档树第一个节点的文档
|
||||
r($doc->fillDocsInTreeTest($fullTree4[0], $libID[3])) && p() && e('目录11:2;子目录21:0;子目录22:0;'); // 测试填充libID 11 文档树第一个节点的文档
|
||||
r($doc->fillDocsInTreeTest($fullTree5[0], $libID[4])) && p() && e('目录12:2;子目录23:0;子目录24:0;'); // 测试填充libID 12 文档树第一个节点的文档
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getAllLibGroups();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getAllLibGroupsTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getAllLibsByType();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getAllLibsByTypeTest()) && p() && e();
|
||||
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getApiLibs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询全部接口库 >> api
|
||||
查询额外的产品库 >> product
|
||||
查询接口库 >> 接口库
|
||||
查询全部接口库统计 >> 10
|
||||
查询额外的产品库统计 >> 11
|
||||
查询接口库统计 >> 10
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$docLibIDList = array('0', '17', '901');
|
||||
|
||||
r($doc->getApiLibs($docLibIDList[0])) && p('901:type') && e('api'); //查询全部接口库
|
||||
r($doc->getApiLibs($docLibIDList[1])) && p('17:type') && e('product');//查询额外的产品库
|
||||
r($doc->getApiLibs($docLibIDList[2])) && p('902:name') && e('接口库'); //查询接口库
|
||||
r(count($doc->getApiLibs($docLibIDList[0]))) && p() && e('10'); //查询全部接口库统计
|
||||
r(count($doc->getApiLibs($docLibIDList[1]))) && p() && e('11'); //查询额外的产品库统计
|
||||
r(count($doc->getApiLibs($docLibIDList[2]))) && p() && e('10'); //查询接口库统计
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getApiModuleTree();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getApiModuleTreeTest()) && p() && e();
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getById();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$docIDList = array('0', '17', '1');
|
||||
$versionList = array('0', '1', '2');
|
||||
|
||||
r($doc->getById($docIDList[1], $versionList[0])) && p('product;title') && e('17;文档标题17'); //正常根据id查询doc
|
||||
r($doc->getById($docIDList[0], $versionList[0])) && p() && e('0'); //查询不存在的doc
|
||||
r($doc->getById($docIDList[2], $versionList[1])) && p('version;content') && e('2;文档正文1'); //查询版本为1的文档内容
|
||||
r($doc->getById($docIDList[2], $versionList[2])) && p('version;content') && e('2;文档正文901'); //查询版本为2的文档内容
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getByIdList();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$docIDList = array('0', '117', '1', '217');
|
||||
|
||||
r($doc->getByIdList($docIDList)) && p('901:lib,content') && e('1,文档正文901');//正常查询文档库下的文档
|
||||
r(count($doc->getByIdList($docIDList))) && p() && e('3'); //查询文档库下的文档统计
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getDocMenu();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$docIDList = array('0', '17');
|
||||
$parents = array('0', '3637');
|
||||
$orderBy = array('name_asc', 'id_desc');
|
||||
$browseTypes = array('collectedbyme', '');
|
||||
|
||||
r($doc->getDocMenu($docIDList[1], $parents[0], $orderBy[0], $browseTypes[1])) && p('3637:name,parent') && e('目录17,0'); //无子目录查询
|
||||
r($doc->getDocMenu($docIDList[1], $parents[1], $orderBy[0], $browseTypes[1])) && p('3754:name,parent') && e('子目录34,3637');//有子目录查询
|
||||
r(count($doc->getDocMenu($docIDList[1], $parents[1], $orderBy[0], $browseTypes[1]))) && p() && e('2'); //子目录查询统计
|
||||
r($doc->getDocMenu($docIDList[0], $parents[0], $orderBy[0], $browseTypes[0])) && p() && e('0'); //无效数据查询
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getDocs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
正常获取文档库下的文档 >> 1,文档标题1
|
||||
获取文档目录下的文档 >> 2,3622
|
||||
libID为空查询 >> 900
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$libIDlist = array('1', '2', '');
|
||||
$moduleIDList = array('0','3621', '3622');
|
||||
$orderBy = 'id_desc';
|
||||
|
||||
r($doc->getDocs($libIDlist[0], $moduleIDList[0], $orderBy)) && p('1:lib,title') && e('1,文档标题1');//正常获取文档库下的文档
|
||||
r($doc->getDocs($libIDlist[1], $moduleIDList, $orderBy)) && p('2:lib,module') && e('2,3622'); //获取文档目录下的文档
|
||||
r(count($doc->getDocs($libIDlist[2], $moduleIDList[0], $orderBy))) && p() && e('900'); //libID为空查询
|
||||
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getDocsByBrowseType();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
all类型查询 >> 1,文档标题1
|
||||
openedbyme类型查询 >> 2,正常产品2
|
||||
editedbyme类型查询 >> 0
|
||||
byediteddate类型查询 >> 900,admin
|
||||
collectedbyme类型查询 >> 0
|
||||
test类型查询 >> 0
|
||||
加上moduleId查询 >> 关键词1
|
||||
all类型查询 >> 900
|
||||
openedbyme类型查询 >> 900
|
||||
byediteddate类型查询 >> 900
|
||||
|
||||
*/
|
||||
$browseType = array('all', 'openedbyme', 'editedbyme', 'byediteddate', 'collectedbyme', 'test');
|
||||
$moduleIds = array('', '3621', '3622', '3623');
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getDocsByBrowseTypeTest($browseType[0], $moduleIds[0])) && p('1:lib,title') && e('1,文档标题1');//all类型查询
|
||||
r($doc->getDocsByBrowseTypeTest($browseType[1], $moduleIds[0])) && p('2:lib,objectName') && e('2,正常产品2');//openedbyme类型查询
|
||||
r($doc->getDocsByBrowseTypeTest($browseType[2], $moduleIds[0])) && p() && e('0'); //editedbyme类型查询
|
||||
r($doc->getDocsByBrowseTypeTest($browseType[3], $moduleIds[0])) && p('900:lib,users') && e('900,admin'); //byediteddate类型查询
|
||||
r($doc->getDocsByBrowseTypeTest($browseType[4], $moduleIds[0])) && p() && e('0'); //collectedbyme类型查询
|
||||
r($doc->getDocsByBrowseTypeTest($browseType[5], $moduleIds[0])) && p() && e('0'); //test类型查询
|
||||
r($doc->getDocsByBrowseTypeTest($browseType[3], $moduleIds)) && p('1:keywords') && e('关键词1'); //加上moduleId查询
|
||||
r(count($doc->getDocsByBrowseTypeTest($browseType[0], $moduleIds[0]))) && p('1:lib,title') && e('900'); //all类型查询
|
||||
r(count($doc->getDocsByBrowseTypeTest($browseType[1], $moduleIds[0]))) && p('2:lib,objectName') && e('900'); //openedbyme类型查询
|
||||
r(count($doc->getDocsByBrowseTypeTest($browseType[3], $moduleIds[0]))) && p('900:lib,users') && e('900'); //byediteddate类型查询
|
||||
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getDocTree();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
获取libID 1 的文档树 >> 目录1:文档标题1,子目录1,子目录2;
|
||||
获取libID 3 的文档树 >> 目录3:子目录5,子目录6;
|
||||
获取libID 8 的文档树 >> 目录8:子目录15,子目录16;
|
||||
获取libID 20 的文档树 >> 目录20:子目录39,子目录40;
|
||||
获取libID 101 的文档树 >> 0
|
||||
获取libID 191 的文档树 >> 0
|
||||
获取libID 821 的文档树 >> 0
|
||||
获取libID 901 的文档树 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$libID = array(1, 3, 8, 20, 101, 191, 821, 901);
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getDocTreeTest($libID[0])) && p() && e('目录1:文档标题1,子目录1,子目录2;'); // 获取libID 1 的文档树
|
||||
r($doc->getDocTreeTest($libID[1])) && p() && e('目录3:子目录5,子目录6;'); // 获取libID 3 的文档树
|
||||
r($doc->getDocTreeTest($libID[2])) && p() && e('目录8:子目录15,子目录16;'); // 获取libID 8 的文档树
|
||||
r($doc->getDocTreeTest($libID[3])) && p() && e('目录20:子目录39,子目录40;'); // 获取libID 20 的文档树
|
||||
r($doc->getDocTreeTest($libID[4])) && p() && e('0'); // 获取libID 101 的文档树
|
||||
r($doc->getDocTreeTest($libID[5])) && p() && e('0'); // 获取libID 191 的文档树
|
||||
r($doc->getDocTreeTest($libID[6])) && p() && e('0'); // 获取libID 821 的文档树
|
||||
r($doc->getDocTreeTest($libID[7])) && p() && e('0'); // 获取libID 901 的文档树
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getExecutionModulePairs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
正常查询 >> 子目录200
|
||||
正常查询统计 >> 4520
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
r($doc->getExecutionModulePairs()) && p('3920') && e('子目录200');//正常查询
|
||||
r(count($doc->getExecutionModulePairs())) && p() && e('4520'); //正常查询统计
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getFileIcon();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试获取 产品 1 的文件icon >> icon-file icon-file-word icon-file-word
|
||||
测试获取 产品 2 的文件icon >> 0
|
||||
测试获取 项目 11 的文件icon >> icon-file-word icon-file-word icon-file-text
|
||||
测试获取 项目 12 的文件icon >> 0
|
||||
测试获取 执行 101 的文件icon >> icon-file icon-file-word icon-file-text
|
||||
测试获取 执行 102 的文件icon >> 0
|
||||
|
||||
*/
|
||||
|
||||
$type = array('product', 'project', 'execution');
|
||||
$objectID = array(1, 2, 11, 12, 101, 102);
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getFileIconTest($type[0], $objectID[0])) && p() && e('icon-file icon-file-word icon-file-word'); // 测试获取 产品 1 的文件icon
|
||||
r($doc->getFileIconTest($type[0], $objectID[1])) && p() && e('0'); // 测试获取 产品 2 的文件icon
|
||||
r($doc->getFileIconTest($type[1], $objectID[2])) && p() && e('icon-file-word icon-file-word icon-file-text'); // 测试获取 项目 11 的文件icon
|
||||
r($doc->getFileIconTest($type[1], $objectID[3])) && p() && e('0'); // 测试获取 项目 12 的文件icon
|
||||
r($doc->getFileIconTest($type[2], $objectID[4])) && p() && e('icon-file icon-file-word icon-file-text'); // 测试获取 执行 101 的文件icon
|
||||
r($doc->getFileIconTest($type[2], $objectID[5])) && p() && e('0'); // 测试获取 执行 102 的文件icon
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getFileSourcePairs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试获取 产品 1 的文件类型分组 >> testcase:1;story:1;bug:1;
|
||||
测试获取 产品 2 的文件类型分组 >> 0
|
||||
测试获取 项目 11 的文件类型分组 >> task:2;bug:1;
|
||||
测试获取 项目 12 的文件类型分组 >> 0
|
||||
测试获取 执行 101 的文件类型分组 >> testcase:1;bug:1;task:1;
|
||||
测试获取 执行 102 的文件类型分组 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$type = array('product', 'project', 'execution');
|
||||
$objectID = array(1, 2, 11, 12, 101, 102);
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getFileSourcePairsTest($type[0], $objectID[0])) && p() && e('testcase:1;story:1;bug:1;'); // 测试获取 产品 1 的文件类型分组
|
||||
r($doc->getFileSourcePairsTest($type[0], $objectID[1])) && p() && e('0'); // 测试获取 产品 2 的文件类型分组
|
||||
r($doc->getFileSourcePairsTest($type[1], $objectID[2])) && p() && e('task:2;bug:1;'); // 测试获取 项目 11 的文件类型分组
|
||||
r($doc->getFileSourcePairsTest($type[1], $objectID[3])) && p() && e('0'); // 测试获取 项目 12 的文件类型分组
|
||||
r($doc->getFileSourcePairsTest($type[2], $objectID[4])) && p() && e('testcase:1;bug:1;task:1;'); // 测试获取 执行 101 的文件类型分组
|
||||
r($doc->getFileSourcePairsTest($type[2], $objectID[5])) && p() && e('0'); // 测试获取 执行 102 的文件类型分组
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getLibById();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
正常查询文档库 >> 产品主库
|
||||
查询不存在的文档库 >> 0
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$docLibIDList = array('0', '17');
|
||||
|
||||
r($doc->getLibById($docLibIDList[1])) && p('name') && e('产品主库');//正常查询文档库
|
||||
r($doc->getLibById($docLibIDList[0])) && p() && e('0'); //查询不存在的文档库
|
||||
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getLibFiles();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
获取 产品 1 下文件库id倒序排列的文件 >> 这是一个文件名称4.dot,这是一个文件名称3.docx,这是一个文件名称2.doc
|
||||
获取 产品 2 下文件库id倒序排列的文件 >> 0
|
||||
获取 项目 11 下文件库id倒序排列的文件 >> 这是一个文件名称91.docx,这是一个文件名称2.doc,这是一个文件名称1.txt
|
||||
获取 项目 12 下文件库id倒序排列的文件 >> 0
|
||||
获取 执行 101 下文件库id倒序排列的文件 >> 这是一个文件名称4.dot,这是一个文件名称2.doc,这是一个文件名称1.txt
|
||||
获取 执行 102 下文件库id倒序排列的文件 >> 0
|
||||
获取 产品 1 下文件库id正序排列的文件 >> 这是一个文件名称2.doc,这是一个文件名称3.docx,这是一个文件名称4.dot
|
||||
获取 产品 2 下文件库id正序排列的文件 >> 0
|
||||
获取 项目 11 下文件库id正序排列的文件 >> 这是一个文件名称1.txt,这是一个文件名称2.doc,这是一个文件名称91.docx
|
||||
获取 项目 12 下文件库id正序排列的文件 >> 0
|
||||
获取 执行 101 下文件库id正序排列的文件 >> 这是一个文件名称1.txt,这是一个文件名称2.doc,这是一个文件名称4.dot
|
||||
获取 执行 102 下文件库id正序排列的文件 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$type = array('product', 'project', 'execution');
|
||||
$objectID = array(1, 2, 11, 12, 101, 102);
|
||||
$orderBy = array('t1.id_desc', 't1.id_asc');
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getLibFilesTest($type[0], $objectID[0], $orderBy[0])) && p() && e('这是一个文件名称4.dot,这是一个文件名称3.docx,这是一个文件名称2.doc'); // 获取 产品 1 下文件库id倒序排列的文件
|
||||
r($doc->getLibFilesTest($type[0], $objectID[1], $orderBy[0])) && p() && e('0'); // 获取 产品 2 下文件库id倒序排列的文件
|
||||
r($doc->getLibFilesTest($type[1], $objectID[2], $orderBy[0])) && p() && e('这是一个文件名称91.docx,这是一个文件名称2.doc,这是一个文件名称1.txt'); // 获取 项目 11 下文件库id倒序排列的文件
|
||||
r($doc->getLibFilesTest($type[1], $objectID[3], $orderBy[0])) && p() && e('0'); // 获取 项目 12 下文件库id倒序排列的文件
|
||||
r($doc->getLibFilesTest($type[2], $objectID[4], $orderBy[0])) && p() && e('这是一个文件名称4.dot,这是一个文件名称2.doc,这是一个文件名称1.txt'); // 获取 执行 101 下文件库id倒序排列的文件
|
||||
r($doc->getLibFilesTest($type[2], $objectID[5], $orderBy[0])) && p() && e('0'); // 获取 执行 102 下文件库id倒序排列的文件
|
||||
r($doc->getLibFilesTest($type[0], $objectID[0], $orderBy[1])) && p() && e('这是一个文件名称2.doc,这是一个文件名称3.docx,这是一个文件名称4.dot'); // 获取 产品 1 下文件库id正序排列的文件
|
||||
r($doc->getLibFilesTest($type[0], $objectID[1], $orderBy[1])) && p() && e('0'); // 获取 产品 2 下文件库id正序排列的文件
|
||||
r($doc->getLibFilesTest($type[1], $objectID[2], $orderBy[1])) && p() && e('这是一个文件名称1.txt,这是一个文件名称2.doc,这是一个文件名称91.docx'); // 获取 项目 11 下文件库id正序排列的文件
|
||||
r($doc->getLibFilesTest($type[1], $objectID[3], $orderBy[1])) && p() && e('0'); // 获取 项目 12 下文件库id正序排列的文件
|
||||
r($doc->getLibFilesTest($type[2], $objectID[4], $orderBy[1])) && p() && e('这是一个文件名称1.txt,这是一个文件名称2.doc,这是一个文件名称4.dot'); // 获取 执行 101 下文件库id正序排列的文件
|
||||
r($doc->getLibFilesTest($type[2], $objectID[5], $orderBy[1])) && p() && e('0'); // 获取 执行 102 下文件库id正序排列的文件
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getLibIdListByProject();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getLibIdListByProjectTest()) && p() && e();
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getLibs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
全部文档库查询 >> 产品主库
|
||||
api文档库查询 >> 0
|
||||
产品文档库查询 >> 产品主库
|
||||
项目文档库查询 >> 项目主库
|
||||
执行文档库查询 >> 迭代主库
|
||||
产品文档库关联查询 >> 正常产品1 / 产品主库
|
||||
notdoc查询 >> 产品主库
|
||||
额外文档库查询 >> 产品主库
|
||||
产品单独查询 >> 产品主库
|
||||
项目单独查询 >> 项目主库
|
||||
执行单独查询 >> 迭代主库
|
||||
全部文档库查询统计 >> 900
|
||||
产品文档库查询统计 >> 100
|
||||
项目文档库查询统计 >> 90
|
||||
执行文档库查询统计 >> 630
|
||||
产品文档库关联查询统计 >> 900
|
||||
notdoc查询统计 >> 900
|
||||
额外文档库查询统计 >> 2
|
||||
产品单独查询统计 >> 1
|
||||
项目单独查询统计 >> 1
|
||||
执行单独查询统计 >> 1
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$types = array('all', 'api', 'product', 'project', 'execution');
|
||||
$extra = array('', 'withObject', 'notdoc');
|
||||
$appendLibs = array('17', '1');
|
||||
$objectIDs = array('1', '11', '101', '0');
|
||||
//var_dump($doc->getLibs($types[4], $extra[0], '', $objectIDs[2]));die;
|
||||
r($doc->getLibs($types[0], $extra[0], '', $objectIDs[3])) && p('1') && e('产品主库'); //全部文档库查询
|
||||
r($doc->getLibs($types[1], $extra[0], '', $objectIDs[3])) && p() && e('0'); //api文档库查询
|
||||
r($doc->getLibs($types[2], $extra[0], '', $objectIDs[3])) && p('10') && e('产品主库'); //产品文档库查询
|
||||
r($doc->getLibs($types[3], $extra[0], '', $objectIDs[3])) && p('110') && e('项目主库'); //项目文档库查询
|
||||
r($doc->getLibs($types[4], $extra[0], '', $objectIDs[3])) && p('200') && e('迭代主库'); //执行文档库查询
|
||||
r($doc->getLibs($types[0], $extra[1], '', $objectIDs[3])) && p('1') && e('正常产品1 / 产品主库');//产品文档库关联查询
|
||||
r($doc->getLibs($types[0], $extra[2], '', $objectIDs[3])) && p('1') && e('产品主库'); //notdoc查询
|
||||
r($doc->getLibs($types[1], $extra[0], $appendLibs, $objectIDs[3])) && p('1') && e('产品主库'); //额外文档库查询
|
||||
r($doc->getLibs($types[2], $extra[0], '', $objectIDs[0])) && p('1') && e('产品主库'); //产品单独查询
|
||||
r($doc->getLibs($types[3], $extra[0], '', $objectIDs[1])) && p('101') && e('项目主库'); //项目单独查询
|
||||
r($doc->getLibs($types[4], $extra[0], '', $objectIDs[2])) && p('191') && e('迭代主库'); //执行单独查询
|
||||
|
||||
r(count($doc->getLibs($types[0], $extra[0], '', $objectIDs[3]))) && p() && e('900');//全部文档库查询统计
|
||||
r(count($doc->getLibs($types[2], $extra[0], '', $objectIDs[3]))) && p() && e('100');//产品文档库查询统计
|
||||
r(count($doc->getLibs($types[3], $extra[0], '', $objectIDs[3]))) && p() && e('90'); //项目文档库查询统计
|
||||
r(count($doc->getLibs($types[4], $extra[0], '', $objectIDs[3]))) && p() && e('630');//执行文档库查询统计
|
||||
r(count($doc->getLibs($types[0], $extra[1], '', $objectIDs[3]))) && p() && e('900');//产品文档库关联查询统计
|
||||
r(count($doc->getLibs($types[0], $extra[2], '', $objectIDs[3]))) && p() && e('900');//notdoc查询统计
|
||||
r(count($doc->getLibs($types[1], $extra[0], $appendLibs, $objectIDs[3]))) && p() && e('2'); //额外文档库查询统计
|
||||
r(count($doc->getLibs($types[2], $extra[0], '', $objectIDs[0]))) && p() && e('1'); //产品单独查询统计
|
||||
r(count($doc->getLibs($types[3], $extra[0], '', $objectIDs[1]))) && p() && e('1'); //项目单独查询统计
|
||||
r(count($doc->getLibs($types[4], $extra[0], '', $objectIDs[2]))) && p() && e('1'); //执行单独查询统计
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getLibsByObject();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getLibsByObjectTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getLimitLibs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getLimitLibsTest()) && p() && e();
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getObjectsByDoc();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$docIdList = array('17', '117', '217');
|
||||
|
||||
r($doc->getObjectsByDoc($docIdList)) && p('0:27;1:127;2:17') && e('项目17;迭代27;正常产品17');//查询文档库的项目产品迭代
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getOrderedObjects();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getOrderedObjectsTest()) && p() && e();
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getPreAndNextDoc();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询空数据 >> ,
|
||||
查询文档ID为空的数据 >> ,
|
||||
查询文档ID为空的数据 >> ,
|
||||
查询文档ID为空的数据 >> ,
|
||||
查询文档库ID为空的数据 >> ,
|
||||
查询文档库ID为空的数据 >> ,
|
||||
查询文档库ID为空的数据 >> ,
|
||||
查询文档ID为1并且文档库ID为1的数据 >> ,
|
||||
查询文档ID为2并且文档库ID为1的数据 >> ,
|
||||
查询文档ID不存在并且文档库ID为1的数据 >> ,
|
||||
查询文档ID为1并且文档库ID为2的数据 >> ,
|
||||
查询文档ID为2并且文档库ID为2的数据 >> ,
|
||||
查询文档ID不存在并且文档库ID为2的数据 >> ,
|
||||
查询文档ID为1并且文档库ID不存在的数据 >> ,
|
||||
查询文档ID为2并且文档库ID不存在的数据 >> ,
|
||||
查询文档ID不存在并且文档库ID不存在的数据 >> ,
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
$docIDList = array(0, 1, 2, 1000);
|
||||
$libIDList = array(0, 1, 2, 1000);
|
||||
|
||||
r($doc->getPreAndNextDocTest($docIDList[0], $libIDList[0])) && p('pre,next') && e(','); // 查询空数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[0], $libIDList[1])) && p('pre,next') && e(','); // 查询文档ID为空的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[0], $libIDList[2])) && p('pre,next') && e(','); // 查询文档ID为空的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[0], $libIDList[3])) && p('pre,next') && e(','); // 查询文档ID为空的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[1], $libIDList[0])) && p('pre,next') && e(','); // 查询文档库ID为空的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[2], $libIDList[0])) && p('pre,next') && e(','); // 查询文档库ID为空的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[3], $libIDList[0])) && p('pre,next') && e(','); // 查询文档库ID为空的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[1], $libIDList[1])) && p('pre,next') && e(','); // 查询文档ID为1并且文档库ID为1的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[2], $libIDList[1])) && p('pre,next') && e(','); // 查询文档ID为2并且文档库ID为1的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[3], $libIDList[1])) && p('pre,next') && e(','); // 查询文档ID不存在并且文档库ID为1的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[1], $libIDList[2])) && p('pre,next') && e(','); // 查询文档ID为1并且文档库ID为2的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[2], $libIDList[2])) && p('pre,next') && e(','); // 查询文档ID为2并且文档库ID为2的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[3], $libIDList[2])) && p('pre,next') && e(','); // 查询文档ID不存在并且文档库ID为2的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[1], $libIDList[3])) && p('pre,next') && e(','); // 查询文档ID为1并且文档库ID不存在的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[2], $libIDList[3])) && p('pre,next') && e(','); // 查询文档ID为2并且文档库ID不存在的数据
|
||||
r($doc->getPreAndNextDocTest($docIDList[3], $libIDList[3])) && p('pre,next') && e(','); // 查询文档ID不存在并且文档库ID不存在的数据
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getPrivDocs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询单条doc >> 1
|
||||
查询多条doc >> 1;2
|
||||
查询模块doc >> 1;2
|
||||
不传入libid查询统计 >> 900
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
$libIDlist = array('1', '2', '');
|
||||
$moduleIDList = array('0','3621', '3622');
|
||||
|
||||
r($doc->getPrivDocs($libIDlist[0], $moduleIDList[0])) && p('1') && e('1'); //查询单条doc
|
||||
r($doc->getPrivDocs($libIDlist, $moduleIDList[0])) && p('1;2') && e('1;2');//查询多条doc
|
||||
r($doc->getPrivDocs($libIDlist, $moduleIDList)) && p('1;2') && e('1;2');//查询模块doc
|
||||
r(count($doc->getPrivDocs($libIDlist[2], $moduleIDList[0]))) && p() && e('900');//不传入libid查询统计
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getPrivLibsByDoc();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
正常查询 >> 900
|
||||
正常查询统计 >> 600
|
||||
|
||||
*/
|
||||
global $tester;
|
||||
$doc = $tester->loadModel('doc');
|
||||
|
||||
r($doc->getPrivLibsByDoc()) && p('900') && e('900');//正常查询
|
||||
r(count($doc->getPrivLibsByDoc())) && p() && e('600');//正常查询统计
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getProductCrumb();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getProductCrumbTest()) && p() && e();
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getStatisticInfo();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试正常查询 >> 900,0,0,900,0,900,900
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getStatisticInfoTest()) && p('totalDocs,todayEditedDocs,lastEditedDocs,lastAddedDocs,myCollection,myDocs,pastEditedDocs') && e('900,0,0,900,0,900,900'); //测试正常查询
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getSubLibGroups();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getSubLibGroupsTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getToAndCcList();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getToAndCcListTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->getTreeMenu();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->getTreeMenuTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->printChildModule();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->printChildModuleTest()) && p() && e();
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->saveDraft();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
$docIDList = array('17', '118', '217');
|
||||
$content = array('content' => '测试');
|
||||
|
||||
$doc = new docTest();
|
||||
r($doc->saveDraftTest($docIDList[0], $content)) && p('17:draft') && e('测试');//产品文档内容保存
|
||||
r($doc->saveDraftTest($docIDList[1], $content)) && p('118:draft') && e('测试');//项目文档内容保存
|
||||
r($doc->saveDraftTest($docIDList[2], $content)) && p('217:draft') && e('测试');//执行文档内容保存
|
||||
r($doc->saveDraftTest($docIDList[0])) && p('17:draft') && e('测试');//文档无内容保存
|
||||
|
||||
system("./ztest init");
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->select();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->selectTest()) && p() && e();
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->setFastMenu();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->setFastMenuTest()) && p() && e();
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->setLibUsers();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试获取 产品 1 的团队成员 >> po82,user92,po92,test2,test82,test92,pm72,pm82
|
||||
测试获取 产品 2 的团队成员 >> po83,user93,po93,test3,test83,test93,pm73,pm83
|
||||
测试获取 产品 3 的团队成员 >> po84,user94,po94,test4,test84,test94,pm74,pm84
|
||||
测试获取 执行 101 的团队成员 >> po82,user92
|
||||
测试获取 执行 102 的团队成员 >> po83,user93
|
||||
测试获取 执行 103 的团队成员 >> po84,user94
|
||||
测试获取 项目 11 的团队成员 >> 0
|
||||
|
||||
*/
|
||||
$type = array('product', 'execution', 'project');
|
||||
$objectID = array(1, 2, 3, 101, 102, 103, 11);
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->setLibUsersTest($type[0], $objectID[0])) && p() && e('po82,user92,po92,test2,test82,test92,pm72,pm82'); // 测试获取 产品 1 的团队成员
|
||||
r($doc->setLibUsersTest($type[0], $objectID[1])) && p() && e('po83,user93,po93,test3,test83,test93,pm73,pm83'); // 测试获取 产品 2 的团队成员
|
||||
r($doc->setLibUsersTest($type[0], $objectID[2])) && p() && e('po84,user94,po94,test4,test84,test94,pm74,pm84'); // 测试获取 产品 3 的团队成员
|
||||
r($doc->setLibUsersTest($type[1], $objectID[3])) && p() && e('po82,user92'); // 测试获取 执行 101 的团队成员
|
||||
r($doc->setLibUsersTest($type[1], $objectID[4])) && p() && e('po83,user93'); // 测试获取 执行 102 的团队成员
|
||||
r($doc->setLibUsersTest($type[1], $objectID[5])) && p() && e('po84,user94'); // 测试获取 执行 103 的团队成员
|
||||
r($doc->setLibUsersTest($type[2], $objectID[6])) && p() && e('0'); // 测试获取 项目 11 的团队成员
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->setMenuByType();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->setMenuByTypeTest()) && p() && e();
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->statLibCounts();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试统计libID 1 3 5 的模块文件数量 >> 3;3;3
|
||||
测试统计libID 2 4 6 的模块文件数量 >> 3;3;3
|
||||
测试统计libID 7 9 11 的模块文件数量 >> 3;3;4
|
||||
测试统计libID 8 10 12 的模块文件数量 >> 3;3;4
|
||||
测试统计libID 13 14 15 的模块文件数量 >> 4;4;4
|
||||
|
||||
*/
|
||||
|
||||
$libIDList = array(array(1, 3, 5), array(2, 4, 6), array(7, 9, 11), array(8, 10, 12), array(13, 14, 15));
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->statLibCountsTest($libIDList[0])) && p('1;3;5') && e('3;3;3'); // 测试统计libID 1 3 5 的模块文件数量
|
||||
r($doc->statLibCountsTest($libIDList[1])) && p('2;4;6') && e('3;3;3'); // 测试统计libID 2 4 6 的模块文件数量
|
||||
r($doc->statLibCountsTest($libIDList[2])) && p('7;9;11') && e('3;3;4'); // 测试统计libID 7 9 11 的模块文件数量
|
||||
r($doc->statLibCountsTest($libIDList[3])) && p('8;10;12') && e('3;3;4'); // 测试统计libID 8 10 12 的模块文件数量
|
||||
r($doc->statLibCountsTest($libIDList[4])) && p('13;14;15') && e('4;4;4'); // 测试统计libID 13 14 15 的模块文件数量
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->summary();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->summaryTest()) && p() && e();
|
||||
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->update();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
|
||||
|
||||
*/
|
||||
$docID = array('1', '2', '3', '4', '5', '6', '7', '8');
|
||||
$libIDs = array('1', '117', '217', '821');
|
||||
$type = array('text', 'url', 'execution', 'custom', '');
|
||||
$acl = array('', 'open', 'custom', 'private');
|
||||
$groups = array('1', '2', '3');
|
||||
$users = array('admin', 'dev1', 'dev10');
|
||||
|
||||
$updateProductDoc = array('lib' => $libIDs[0], 'title' => '修改产品文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$updateProjectDoc = array('lib' => $libIDs[1], 'title' => '修改项目文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$updateExecutionDoc = array('lib' => $libIDs[2], 'title' => '修改执行文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$updateCustomDoc = array('lib' => $libIDs[3], 'title' => '修改自定义文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$updateUrlDoc = array('lib' => $libIDs[0], 'title' => '修改URL文档', 'type' => $type[1], 'url' => 'www.baidu.com', 'acl' => $acl[1]);
|
||||
$privateDoc = array('lib' => $libIDs[0], 'title' => '修改私有文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[3]);
|
||||
$customDoc = array('lib' => $libIDs[0], 'title' => '修改自定义文档', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[2], 'groups' => $groups, 'users' => $users);
|
||||
$noLib = array('title' => '无文档库', 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$noTitle = array('lib' => $libIDs[0], 'type' => $type[0], 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
$noType = array('lib' => $libIDs[0], 'title' => '无TYPE', 'contentType' => 'html', 'acl' => $acl[1]);
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->updateTest($docID[0], $updateProductDoc)) && p('1:field,old,new') && e('title,文档标题901,修改产品文档');//修改为产品文档
|
||||
r($doc->updateTest($docID[1], $updateProjectDoc)) && p('1:field,old,new') && e('module,3622,0'); //修改为项目文档
|
||||
r($doc->updateTest($docID[2], $updateExecutionDoc)) && p('2:field,old,new') && e('title,文档标题903,修改执行文档');//修改为执行文档
|
||||
r($doc->updateTest($docID[3], $updateCustomDoc)) && p('3:field,old,new') && e('keywords,关键词4,'); //修改为自定义文档
|
||||
r($doc->updateTest($docID[4], $updateUrlDoc)) && p('4:field,old,new') && e('type,text,url'); //修改为url文档
|
||||
r($doc->updateTest($docID[6], $privateDoc)) && p('6:field,old,new') && e('acl,open,private'); //修改为私有文档
|
||||
r($doc->updateTest($docID[7], $customDoc)) && p('7:field,old,new') && e('groups,1,1,2,3'); //修改为自定义文档
|
||||
r($doc->updateTest($docID[0], $noLib)) && p('0:field,old,new') && e('lib,1,'); //修改lib为空
|
||||
r($doc->updateTest($docID[0], $noTitle)) && p('title:0') && e('『文档标题』不能为空。'); //修改标题为空
|
||||
r($doc->updateTest($docID[0], $noType)) && p('2:field,old,new') && e('type,text,'); //修改type为空
|
||||
|
||||
system("./ztest init");
|
||||
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->updateApiLib();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
正常修改接口库 >> name,接口库,修改api文档库;baseUrl,,www.zentaopms.com;acl,private,open
|
||||
修改users >> users,admin,test1
|
||||
修改名字为空 >> 『接口库名称』不能为空。
|
||||
修改成重复名称 >> 0
|
||||
|
||||
*/
|
||||
$ids = array('901', '902');
|
||||
$acl = array('', 'open', 'custom', 'private');
|
||||
$groups = array('1', '2', '3');
|
||||
$users = array('admin', 'dev1', 'dev10');
|
||||
|
||||
$openApilib = array('name' => '修改api文档库', 'baseUrl' => 'www.zentaopms.com', 'acl' => $acl[1], 'users' => 'admin', 'desc' => '');
|
||||
$updateUsers = array('users' => 'test1');
|
||||
$updateDesc = array('desc' => '修改详情');
|
||||
$noName = array('name' => '');
|
||||
$repeatName = array('name' => '修改api文档库');
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->updateApiLibTest($ids[0], $openApilib)) && p('0:field,old,new;1:field,old,new;2:field,old,new') && e('name,接口库,修改api文档库;baseUrl,,www.zentaopms.com;acl,private,open');//正常修改接口库
|
||||
r($doc->updateApiLibTest($ids[0], $updateUsers)) && p('0:field,old,new') && e('users,admin,test1'); //修改users
|
||||
r($doc->updateApiLibTest($ids[0], $noName)) && p('name:0') && e('『接口库名称』不能为空。'); //修改名字为空
|
||||
r($doc->updateApiLibTest($ids[0], $repeatName)) && p() && e('0'); //修改成重复名称
|
||||
|
||||
system("./ztest init");
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/doc.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docModel->updateLib();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
正常修改产品文档库 >> type,product,project
|
||||
正常修改项目文档库 >> project,27,11
|
||||
正常修改执行文档库 >> product,0,1
|
||||
正常修改自定义文档库 >> product,17,1
|
||||
正常修改无type >> type,custom,
|
||||
正常修改无产品 >> 『产品库』应当是数字。
|
||||
正常修改无项目 >> 『project』应当是数字。』
|
||||
正常修改无迭代 >> 『迭代库』应当是数字。
|
||||
正常修改无文档库名 >> 『文档库名称』不能为空。
|
||||
|
||||
*/
|
||||
$docLibIds = array('17', '117', '217');
|
||||
$type = array('product', 'project', 'execution', 'custom', '');
|
||||
$product = array('', '1');
|
||||
$project = array('', '11');
|
||||
$execution = array('', '101');
|
||||
$name = array('', '新建文档库');
|
||||
$acl = array('', 'default', 'custom');
|
||||
$groups = array('1', '2', '3');
|
||||
$users = array('admin', 'dev1', 'dev10');
|
||||
|
||||
$updateProduct = array('type' => $type[0], 'product' => $product[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$updateProject = array('type' => $type[1], 'project' => $project[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$updateExecution = array('type' => $type[2], 'execution' => $execution[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$updateCustom = array('type' => $type[3], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$customLib = array('type' => $type[0], 'product' => $product[1], 'name' => $name[1], 'acl' => $acl[2], 'groups' => $groups, 'users' => $users);
|
||||
$noType = array('type' => $type[4], 'product' => $product[1], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noProduct = array('type' => $type[0], 'product' => $product[0], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noProject = array('type' => $type[1], 'project' => $project[0], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noExecution = array('type' => $type[2], 'execution' => $execution[0], 'name' => $name[1], 'acl' => $acl[1]);
|
||||
$noName = array('type' => $type[0], 'product' => $product[1], 'name' => $name[0], 'acl' => $acl[0]);
|
||||
|
||||
$doc = new docTest();
|
||||
|
||||
r($doc->updateLibTest($docLibIds[0],$updateProject)) && p('0:field,old,new') && e('type,product,project'); //正常修改产品文档库
|
||||
r($doc->updateLibTest($docLibIds[1],$updateProduct)) && p('1:field,old,new') && e('project,27,11'); //正常修改项目文档库
|
||||
r($doc->updateLibTest($docLibIds[2],$updateExecution)) && p('2:field,old,new') && e('product,0,1'); //正常修改执行文档库
|
||||
r($doc->updateLibTest($docLibIds[0],$updateCustom)) && p('1:field,old,new') && e('product,17,1'); //正常修改自定义文档库
|
||||
r($doc->updateLibTest($docLibIds[0],$noType)) && p('0:field,old,new') && e('type,custom,'); //正常修改无type
|
||||
r($doc->updateLibTest($docLibIds[0],$noProduct)) && p('product:0') && e('『产品库』应当是数字。'); //正常修改无产品
|
||||
r($doc->updateLibTest($docLibIds[0],$noProject)) && p('project:0') && e('『project』应当是数字。』');//正常修改无项目
|
||||
r($doc->updateLibTest($docLibIds[0],$noExecution)) && p('execution:0') && e('『迭代库』应当是数字。'); //正常修改无迭代
|
||||
r($doc->updateLibTest($docLibIds[0],$noName)) && p('name:0') && e('『文档库名称』不能为空。'); //正常修改无文档库名
|
||||
|
||||
system("./ztest init");
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->create();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试创建应用name为空报错 >> 『名称』不能为空
|
||||
测试创建应用code为空报错 >> 『代号』不能为空
|
||||
测试创建应用name为name_test >> name_test
|
||||
测试创建应用code为code_test >> code_test
|
||||
|
||||
*/
|
||||
|
||||
$e_name = array('name' => 'name_test');
|
||||
$e_code = array('code' => 'code_test');
|
||||
$e_name_blank = array('name' => '');
|
||||
$e_code_blank = array('code' => '');
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
$result_name = $entry->createObject($e_name_blank);
|
||||
$result_code = $entry->createObject($e_code_blank);
|
||||
r($result_name['name'][0]) && p() && e('『名称』不能为空'); // 测试创建应用name为空报错
|
||||
r($result_code['code'][0]) && p() && e('『代号』不能为空'); // 测试创建应用code为空报错
|
||||
r($entry->createObject($e_name)) && p('name') && e('name_test'); // 测试创建应用name为name_test
|
||||
r($entry->createObject($e_code)) && p('code') && e('code_test'); // 测试创建应用code为code_test
|
||||
system("./ztest init");
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->getByCode();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询code为code1的entry的name >> 这是应用名称1
|
||||
查询code为code1的entry的account >> accountadmin
|
||||
查询code为code2的entry的name >> 0
|
||||
查询code为code2的entry的account >> 0
|
||||
|
||||
*/
|
||||
|
||||
$entryCodeList = array('code1', 'code2');
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
r($entry->getByCodeTest($entryCodeList[0])) && p('name') && e('这是应用名称1'); // 查询code为code1的entry的name
|
||||
r($entry->getByCodeTest($entryCodeList[0])) && p('account') && e('accountadmin'); // 查询code为code1的entry的account
|
||||
r($entry->getByCodeTest($entryCodeList[1])) && p('name') && e('0'); // 查询code为code2的entry的name
|
||||
r($entry->getByCodeTest($entryCodeList[1])) && p('account') && e('0'); // 查询code为code2的entry的account
|
||||
system("./ztest init");
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->getById();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询id为1的entry的name >> 这是应用名称1
|
||||
查询id为1的entry的account >> accountadmin
|
||||
查询id为1000001的entry的name >> 0
|
||||
查询id为1000001的entry的account >> 0
|
||||
|
||||
*/
|
||||
|
||||
$entryIDList = array('1', '1000001');
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
r($entry->getByIdTest($entryIDList[0])) && p('name') && e('这是应用名称1'); // 查询id为1的entry的name
|
||||
r($entry->getByIdTest($entryIDList[0])) && p('account') && e('accountadmin'); // 查询id为1的entry的account
|
||||
r($entry->getByIdTest($entryIDList[1])) && p('name') && e('0'); // 查询id为1000001的entry的name
|
||||
r($entry->getByIdTest($entryIDList[1])) && p('account') && e('0'); // 查询id为1000001的entry的account
|
||||
system("./ztest init");
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->getByKey();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询key为792b9b972157d2d8531b43e04c0af021的entry的name >> 这是应用名称1
|
||||
查询key为792b9b972157d2d8531b43e04c0af021的entry的account >> accountadmin
|
||||
查询key为空的entry的name >> 0
|
||||
查询key为空的entry的account >> 0
|
||||
|
||||
*/
|
||||
|
||||
$entryKeyList = array('792b9b972157d2d8531b43e04c0af021', '');
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
r($entry->getByKeyTest($entryKeyList[0])) && p('name') && e('这是应用名称1'); // 查询key为792b9b972157d2d8531b43e04c0af021的entry的name
|
||||
r($entry->getByKeyTest($entryKeyList[0])) && p('account') && e('accountadmin'); // 查询key为792b9b972157d2d8531b43e04c0af021的entry的account
|
||||
r($entry->getByKeyTest($entryKeyList[1])) && p('name') && e('0'); // 查询key为空的entry的name
|
||||
r($entry->getByKeyTest($entryKeyList[1])) && p('account') && e('0'); // 查询key为空的entry的account
|
||||
system("./ztest init");
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->getList();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试获取列表的个数,目前只有一个 >> 1
|
||||
测试获取列表某个应用的名称信息 >> 这是应用名称1
|
||||
|
||||
*/
|
||||
|
||||
$entry = new entryTest();
|
||||
$list = $entry->getListTest();
|
||||
|
||||
r(count($list)) && p() && e('1'); //测试获取列表的个数,目前只有一个
|
||||
r($list) && p('1:name') && e('这是应用名称1'); //测试获取列表某个应用的名称信息
|
||||
system("./ztest init");
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->getLogs();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试获取列表的个数,ID为1的日志数为1 >> 1
|
||||
测试获取列表个数,ID为100001的日志数为0 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$entryIDList = array('1', '100001');
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
$list_1 = $entry->getLogsTest($entryIDList[0]);
|
||||
$list_1000001 = $entry->getLogsTest($entryIDList[1]);
|
||||
r(count($list_1)) && p() && e('1'); //测试获取列表的个数,ID为1的日志数为1
|
||||
r(count($list_1000001)) && p() && e('0'); //测试获取列表个数,ID为100001的日志数为0
|
||||
system("./ztest init");
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->saveLog();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试插入一条日志 >> entry
|
||||
|
||||
*/
|
||||
|
||||
$e_id = 1;
|
||||
$e_url = 'http://qcmmi.com';
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
r($entry->saveLogTest($e_id, $e_url)) && p('objectType') && e('entry'); //测试插入一条日志
|
||||
system("./ztest init");
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->update();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试更新entry名称 >> name,这是应用名称1,这是应用名称2
|
||||
测试更新entry代号 >> code,code1,code2
|
||||
测试更新entry名称和代号 >> name,这是应用名称2,这是应用名称1;code,code2,code1
|
||||
测试不更新name >> 没有数据更新
|
||||
|
||||
*/
|
||||
|
||||
$entryID = 1;
|
||||
|
||||
$e_upName = array('name' => '这是应用名称2');
|
||||
$e_upCode = array('code' => 'code2');
|
||||
$e_upNameAndCode = array('name' => '这是应用名称1', 'code' => 'code1');
|
||||
$e_unName = array('name' => '这是应用名称1');
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
r($entry->updateObject($entryID, $e_upName)) && p('0:field,old,new') && e('name,这是应用名称1,这是应用名称2'); //测试更新entry名称
|
||||
r($entry->updateObject($entryID, $e_upCode)) && p('0:field,old,new') && e('code,code1,code2'); //测试更新entry代号
|
||||
r($entry->updateObject($entryID, $e_upNameAndCode)) && p('0:field,old,new;1:field,old,new') && e('name,这是应用名称2,这是应用名称1;code,code2,code1'); //测试更新entry名称和代号
|
||||
r($entry->updateObject($entryID, $e_unName)) && p() && e('没有数据更新'); //测试不更新name
|
||||
system("./ztest init");
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/entry.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=entryModel->updateCalledTime();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试更新entry代号存在的情况 >> 这是应用名称1
|
||||
测试更新entry代号不存在的情况 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$code = array('code1','code2');
|
||||
$time = 2;
|
||||
|
||||
$entry = new entryTest();
|
||||
|
||||
r($entry->updateCalledTimeTest($code[0], $time)) && p('name') && e('这是应用名称1'); //测试更新entry代号存在的情况
|
||||
r($entry->updateCalledTimeTest($code[1], $time)) && p() && e('0'); //测试更新entry代号不存在的情况
|
||||
system("./ztest init");
|
||||
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/file.class.php';
|
||||
|
||||
/**
|
||||
|
||||
title=测试 fileModel->getExportTemplate();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试获取 用户admin task 模块的用户模板 >> 1
|
||||
测试获取 用户admin bug 模块的用户模板 >> 0
|
||||
测试获取 用户admin story 模块的用户模板 >> 2
|
||||
测试获取 用户dev10 task 模块的用户模板 >> 0
|
||||
测试获取 用户dev10 bug 模块的用户模板 >> 1
|
||||
测试获取 用户dev10 story 模块的用户模板 >> 2
|
||||
测试获取 用户test10 task 模块的用户模板 >> 1
|
||||
测试获取 用户test10 bug 模块的用户模板 >> 0
|
||||
测试获取 用户test10 story 模块的用户模板 >> 2
|
||||
|
||||
*/
|
||||
$moduleName = array('task', 'bug', 'story');
|
||||
|
||||
$file = new fileTest();
|
||||
|
||||
su('admin');
|
||||
r($file->getExportTemplateTest($moduleName[0])) && p() && e('1'); // 测试获取 用户admin task 模块的用户模板
|
||||
r($file->getExportTemplateTest($moduleName[1])) && p() && e('0'); // 测试获取 用户admin bug 模块的用户模板
|
||||
r($file->getExportTemplateTest($moduleName[2])) && p() && e('2'); // 测试获取 用户admin story 模块的用户模板
|
||||
su('dev10');
|
||||
r($file->getExportTemplateTest($moduleName[0])) && p() && e('0'); // 测试获取 用户dev10 task 模块的用户模板
|
||||
r($file->getExportTemplateTest($moduleName[1])) && p() && e('1'); // 测试获取 用户dev10 bug 模块的用户模板
|
||||
r($file->getExportTemplateTest($moduleName[2])) && p() && e('2'); // 测试获取 用户dev10 story 模块的用户模板
|
||||
su('test10');
|
||||
r($file->getExportTemplateTest($moduleName[0])) && p() && e('1'); // 测试获取 用户test10 task 模块的用户模板
|
||||
r($file->getExportTemplateTest($moduleName[1])) && p() && e('0'); // 测试获取 用户test10 bug 模块的用户模板
|
||||
r($file->getExportTemplateTest($moduleName[2])) && p() && e('2'); // 测试获取 用户test10 story 模块的用户模板
|
||||
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/file.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 fileModel->saveExportTemplate();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试新建 公共 bug 模板 >> 新建的公共bug模板,1
|
||||
测试新建 私有 bug 模板 >> 新建的私有bug模板,0
|
||||
测试新建 公共 task 模板 >> 新建的公共task模板,1
|
||||
测试新建 私有 task 模板 >> 新建的私有task模板,0
|
||||
测试新建 重名 模板 >> 『模板名称』已经有『新建的公共bug模板』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
|
||||
|
||||
*/
|
||||
$module = array('bug', 'task');
|
||||
|
||||
$file1 = new stdclass();
|
||||
$file1->title = '新建的公共bug模板';
|
||||
$file1->content = array('id', 'product', 'branch', 'module', 'project', 'execution', 'story', 'task', 'title', 'keywords', 'severity', 'pri', 'type', 'os', 'browser', 'steps', 'status', 'deadline', 'activatedCount', 'confirmed', 'mailto', 'openedBy', 'openedDate', 'openedBuild', 'assignedTo', 'assignedDate', 'resolvedBy', 'resolution', 'resolvedBuild', 'resolvedDate', 'closedBy', 'closedDate', 'duplicateBug', 'linkBug', 'case', 'lastEditedBy', 'lastEditedDate', 'files', 'identify');
|
||||
$file1->public = 1;
|
||||
|
||||
$file2 = new stdclass();
|
||||
$file2->title = '新建的私有bug模板';
|
||||
$file2->content = array('id', 'product', 'branch', 'module', 'project', 'execution', 'story', 'task', 'title', 'keywords', );
|
||||
$file2->public = 0;
|
||||
|
||||
$file3 = new stdclass();
|
||||
$file3->title = '新建的公共task模板';
|
||||
$file3->content = array('id', 'product', 'type', 'status', 'deadline', 'openedBy', 'openedDate', 'openedBuild', 'assignedTo', 'assignedDate', 'closedBy', 'closedDate', 'duplicateBug', 'linkBug', 'case', 'lastEditedBy', 'lastEditedDate');
|
||||
$file3->public = 1;
|
||||
|
||||
$file4 = new stdclass();
|
||||
$file4->title = '新建的私有task模板';
|
||||
$file4->content = array('id', 'product', 'type', 'status', 'deadline', 'lastEditedBy', 'lastEditedDate');
|
||||
$file4->public = 0;
|
||||
|
||||
$file5 = new stdclass();
|
||||
$file5->title = '新建的公共bug模板';
|
||||
$file5->content = array('id', 'product', 'branch', 'module', 'project', 'execution', 'story', 'task', 'title', 'keywords', 'severity', 'pri', 'type', 'os', 'browser', 'steps', 'status', 'deadline', 'activatedCount', 'confirmed', 'mailto', 'openedBy', 'openedDate', 'openedBuild', 'assignedTo', 'assignedDate', 'resolvedBy', 'resolution', 'resolvedBuild', 'resolvedDate', 'closedBy', 'closedDate', 'duplicateBug', 'linkBug', 'case', 'lastEditedBy', 'lastEditedDate', 'files', 'identify');
|
||||
$file5->public = 1;
|
||||
|
||||
$file = new fileTest();
|
||||
|
||||
r($file->saveExportTemplateTest($module[0], $file1)) && p('title,public') && e('新建的公共bug模板,1'); // 测试新建 公共 bug 模板
|
||||
r($file->saveExportTemplateTest($module[0], $file2)) && p('title,public') && e('新建的私有bug模板,0'); // 测试新建 私有 bug 模板
|
||||
r($file->saveExportTemplateTest($module[1], $file3)) && p('title,public') && e('新建的公共task模板,1'); // 测试新建 公共 task 模板
|
||||
r($file->saveExportTemplateTest($module[1], $file4)) && p('title,public') && e('新建的私有task模板,0'); // 测试新建 私有 task 模板
|
||||
r($file->saveExportTemplateTest($module[0], $file5)) && p() && e('『模板名称』已经有『新建的公共bug模板』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); // 测试新建 重名 模板
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/git.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试gitModel->convertLog();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
使用正确格式的数据 >> e7699d04f1586d337f34496da932dde55db92616
|
||||
使用空数据 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$git = new gitTest();
|
||||
|
||||
$log[] = "commit e7699d04f1586d337f34496da932dde55db92616";
|
||||
$log[] = "Author: zhengrunyu <zhenrunyu@easycorp.ltd>";
|
||||
$log[] = "Date: Thu May 5 16:19:48 2022 +0800";
|
||||
$log[] = " * Fix bug 22061.";
|
||||
r($git->convertLog($log)) && p('revision') && e('e7699d04f1586d337f34496da932dde55db92616'); // 使用正确格式的数据
|
||||
|
||||
$log = array();
|
||||
r($git->convertLog($log)) && p('revision') && e(0); // 使用空的数据
|
||||
|
||||
system("./ztest init");
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user