From decc4c25fe57cfefb3c9d6fa9f262be13a504d38 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Sat, 2 Dec 2023 10:54:19 +0800 Subject: [PATCH] * Refactor doc::create unit test. --- module/doc/test/doc.class.php | 30 ++++-------- module/doc/test/model/create.php | 80 ++++++++++++++------------------ 2 files changed, 45 insertions(+), 65 deletions(-) diff --git a/module/doc/test/doc.class.php b/module/doc/test/doc.class.php index 3cfcedf25a..2df572f819 100644 --- a/module/doc/test/doc.class.php +++ b/module/doc/test/doc.class.php @@ -130,35 +130,25 @@ class docTest } /** - * Function create test by doc + * 创建一个文档。 + * Create a doc. * - * @param array $param + * @param array $param * @access public * @return array */ - public function createTest($param) + public function createTest(array $param): array { - global $tester; - $tester->loadModel('api'); - $tester->app->loadLang('doclib'); - $labels = array(); - $files = array(); + $createFields = array('lib' => 0, 'module' => 0, 'title' => '', 'keywords' => '', 'type' => 'text', 'content' => '', 'contentType' => 'html', 'acl' => 'private', 'status' => 'normal'); - $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(); + $doc = new stdclass(); + foreach($createFields as $field => $defaultValue) $doc->{$field} = $defaultValue; + foreach($param as $key => $value) $doc->{$key} = $value; + $this->objectModel->create($doc, $labels); 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; + return $this->objectModel->dao->select('*')->from(TABLE_DOC)->where('title')->eq($doc->title)->andwhere('lib')->eq($doc->lib)->fetchAll('id'); } /** diff --git a/module/doc/test/model/create.php b/module/doc/test/model/create.php index 2b204bebda..739e808858 100755 --- a/module/doc/test/model/create.php +++ b/module/doc/test/model/create.php @@ -1,56 +1,46 @@ #!/usr/bin/env php id->range('1'); -$doc->gen(0); - -zdTable('user')->gen(5); -su('admin'); - /** title=测试 docModel->create(); +timeout=0 cid=1 -pid=1 - -创建产品文档 >> 新建产品文档 -创建项目文档 >> 新建项目文档 -创建执行文档 >> 新建执行文档 -创建自定义文档 >> text, -创建Markdown文档 >> text,Markdown -创建私有文档 >> private -创建自定义文档 >> custom,1,2,3 -不输入文档库 >> 『所属库』不能为空。 -不输入标题 >> 『文档标题』不能为空。 */ -$libIDs = array('1', '117', '217', '821'); -$type = array('text', '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]); -$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]); +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/doc.class.php'; -$doc = new docTest(); -r($doc->createTest($createProductDoc)) && p('0:title') && e('新建产品文档'); //创建产品文档 -r($doc->createTest($createProjectDoc)) && p('0:title') && e('新建项目文档'); //创建项目文档 -r($doc->createTest($createExecutionDoc)) && p('0:title') && e('新建执行文档'); //创建执行文档 -r($doc->createTest($createCustomDoc)) && p('0:type,draft') && e('text,'); //创建自定义文档 -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('『文档标题』不能为空。'); //不输入标题 +zdTable('doclib')->config('doclib')->gen(30); +zdTable('doccontent')->gen(0); +zdTable('doc')->gen(0); +zdTable('user')->gen(5); +su('admin'); +$libIDs = array(0, 26, 16, 21, 6, 11); +$acl = array('open', 'custom', 'private'); +$groups = '1,2,3'; +$users = 'admin,dev1,dev10'; + +$createProductDoc = array('lib' => $libIDs[1], 'title' => '新建产品文档', 'acl' => $acl[0]); +$createProjectDoc = array('lib' => $libIDs[2], 'title' => '新建项目文档', 'acl' => $acl[0]); +$createExecutionDoc = array('lib' => $libIDs[3], 'title' => '新建执行文档', 'acl' => $acl[0]); +$createCustomDoc = array('lib' => $libIDs[4], 'title' => '新建自定义文档', 'acl' => $acl[1]); +$privateDoc = array('lib' => $libIDs[4], 'title' => '新建私有文档', 'acl' => $acl[2]); +$customDoc = array('lib' => $libIDs[5], 'title' => '新建自定义文档', 'acl' => $acl[1], 'groups' => $groups, 'users' => $users); +$mineDoc = array('lib' => $libIDs[3], 'title' => '新建我的文档', 'acl' => $acl[0]); +$draftDoc = array('lib' => $libIDs[3], 'title' => '新建我的草稿文档', 'acl' => $acl[0], 'status' => 'draft'); +$noLib = array('lib' => $libIDs[0], 'title' => '无文档库', 'acl' => $acl[0]); +$noTitle = array('lib' => $libIDs[1], 'title' => '', 'acl' => $acl[0]); + +$docTester = new docTest(); +r($docTester->createTest($createProductDoc)) && p('1:title') && e('新建产品文档'); // 创建产品文档 +r($docTester->createTest($createProjectDoc)) && p('2:title') && e('新建项目文档'); // 创建项目文档 +r($docTester->createTest($createExecutionDoc)) && p('3:title') && e('新建执行文档'); // 创建执行文档 +r($docTester->createTest($createCustomDoc)) && p('4:type') && e('text,'); // 创建自定义文档 +r($docTester->createTest($privateDoc)) && p('5:acl') && e('private'); // 创建私有文档 +r($docTester->createTest($customDoc)) && p('6:acl-groups', '-') && e('custom-1,2,3'); // 创建自定义文档 +r($docTester->createTest($mineDoc)) && p('7:title') && e('新建我的文档'); // 创建我的文档 +r($docTester->createTest($draftDoc)) && p('8:title,status') && e('新建我的草稿文档, draft'); // 创建草稿文档 +r($docTester->createTest($noLib)) && p('lib') && e('『所属库』不能为空。'); // 不输入文档库 +r($docTester->createTest($noTitle)) && p('title:0') && e('『文档标题』不能为空。'); // 不输入标题