+ [misc] Add unit tests for docZen::checkPrivForCreate() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -38,4 +38,19 @@ class docZenTest extends baseTest
|
||||
if(dao::isError()) return dao::getError();
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test checkPrivForCreate method.
|
||||
*
|
||||
* @param object $doclib
|
||||
* @param string $objectType
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function checkPrivForCreateTest(object $doclib, string $objectType)
|
||||
{
|
||||
$result = $this->invokeArgs('checkPrivForCreate', [$doclib, $objectType]);
|
||||
if(dao::isError()) return dao::getError();
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+100
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 docZen::checkPrivForCreate();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 执行docTest模块的checkPrivForCreateTest方法,参数是$doclibOpen, 'custom' @1
|
||||
- 执行docTest模块的checkPrivForCreateTest方法,参数是$doclibCustomWithUser, 'custom' @1
|
||||
- 执行docTest模块的checkPrivForCreateTest方法,参数是$doclibPrivateNoAccess, 'custom' @0
|
||||
- 执行docTest模块的checkPrivForCreateTest方法,参数是$doclibCustomWithGroup, 'custom' @1
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zen.class.php';
|
||||
|
||||
zenData('doclib')->loadYaml('checkprivforcreate/doclib', false, 2)->gen(10);
|
||||
zenData('product')->loadYaml('checkprivforcreate/product', false, 2)->gen(5);
|
||||
zenData('project')->loadYaml('checkprivforcreate/project', false, 2)->gen(5);
|
||||
|
||||
$userGroupTable = zenData('usergroup');
|
||||
$userGroupTable->account->range('admin,admin,user1,user1,user2,user2');
|
||||
$userGroupTable->group->range('1,2,1,2,3,4');
|
||||
$userGroupTable->project->range('``');
|
||||
$userGroupTable->gen(6);
|
||||
|
||||
global $tester;
|
||||
$tester->app->user = new stdclass();
|
||||
$tester->app->user->account = 'user1';
|
||||
$tester->app->user->admin = false;
|
||||
|
||||
$docTest = new docZenTest();
|
||||
|
||||
$doclibOpen = new stdclass();
|
||||
$doclibOpen->id = 1;
|
||||
$doclibOpen->type = 'custom';
|
||||
$doclibOpen->acl = 'open';
|
||||
$doclibOpen->groups = '';
|
||||
$doclibOpen->users = '';
|
||||
$doclibOpen->addedBy = 'admin';
|
||||
|
||||
$doclibCustomWithUser = new stdclass();
|
||||
$doclibCustomWithUser->id = 2;
|
||||
$doclibCustomWithUser->type = 'custom';
|
||||
$doclibCustomWithUser->acl = 'custom';
|
||||
$doclibCustomWithUser->groups = '';
|
||||
$doclibCustomWithUser->users = 'user1';
|
||||
$doclibCustomWithUser->addedBy = 'admin';
|
||||
|
||||
$doclibPrivateNoAccess = new stdclass();
|
||||
$doclibPrivateNoAccess->id = 3;
|
||||
$doclibPrivateNoAccess->type = 'custom';
|
||||
$doclibPrivateNoAccess->acl = 'private';
|
||||
$doclibPrivateNoAccess->groups = '';
|
||||
$doclibPrivateNoAccess->users = '';
|
||||
$doclibPrivateNoAccess->addedBy = 'admin';
|
||||
|
||||
$doclibCustomWithGroup = new stdclass();
|
||||
$doclibCustomWithGroup->id = 4;
|
||||
$doclibCustomWithGroup->type = 'custom';
|
||||
$doclibCustomWithGroup->acl = 'custom';
|
||||
$doclibCustomWithGroup->groups = '1,2';
|
||||
$doclibCustomWithGroup->users = '';
|
||||
$doclibCustomWithGroup->addedBy = 'admin';
|
||||
|
||||
$tester->app->user->account = 'admin';
|
||||
$tester->app->user->admin = true;
|
||||
$doclibPrivateAdmin = new stdclass();
|
||||
$doclibPrivateAdmin->id = 5;
|
||||
$doclibPrivateAdmin->type = 'custom';
|
||||
$doclibPrivateAdmin->acl = 'private';
|
||||
$doclibPrivateAdmin->groups = '';
|
||||
$doclibPrivateAdmin->users = '';
|
||||
$doclibPrivateAdmin->addedBy = 'user2';
|
||||
|
||||
$doclibProduct = new stdclass();
|
||||
$doclibProduct->id = 6;
|
||||
$doclibProduct->type = 'product';
|
||||
$doclibProduct->product = 1;
|
||||
$doclibProduct->acl = 'open';
|
||||
|
||||
$doclibProject = new stdclass();
|
||||
$doclibProject->id = 7;
|
||||
$doclibProject->type = 'project';
|
||||
$doclibProject->project = 1;
|
||||
$doclibProject->acl = 'open';
|
||||
|
||||
$tester->app->user->account = 'user1';
|
||||
$tester->app->user->admin = false;
|
||||
|
||||
r($docTest->checkPrivForCreateTest($doclibOpen, 'custom')) && p() && e('1');
|
||||
r($docTest->checkPrivForCreateTest($doclibCustomWithUser, 'custom')) && p() && e('1');
|
||||
r($docTest->checkPrivForCreateTest($doclibPrivateNoAccess, 'custom')) && p() && e('0');
|
||||
r($docTest->checkPrivForCreateTest($doclibCustomWithGroup, 'custom')) && p() && e('1');
|
||||
$tester->app->user->account = 'admin'; $tester->app->user->admin = true; r($docTest->checkPrivForCreateTest($doclibPrivateAdmin, 'custom')) && p() && e('1');
|
||||
$tester->app->user->account = 'admin'; $tester->app->user->admin = true; r($docTest->checkPrivForCreateTest($doclibProduct, 'product')) && p() && e('1');
|
||||
$tester->app->user->account = 'admin'; $tester->app->user->admin = true; r($docTest->checkPrivForCreateTest($doclibProject, 'project')) && p() && e('1');
|
||||
@@ -0,0 +1,147 @@
|
||||
---
|
||||
title: 文档库数据定义
|
||||
desc: checkPrivForCreate方法测试数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 文档库ID
|
||||
range: 1-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: 文档库类型
|
||||
range: custom{3},product{3},project{2},execution{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: vision
|
||||
note: 视图
|
||||
range: rnd{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: parent
|
||||
note: 父级ID
|
||||
range: 0{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: product
|
||||
note: 产品ID
|
||||
range: 0{7},1,2,3
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: project
|
||||
note: 项目ID
|
||||
range: 0{8},1,2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: execution
|
||||
note: 执行ID
|
||||
range: 0{8},1,2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 文档库名称
|
||||
range: 文档库{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: baseUrl
|
||||
note: 基础URL
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: acl
|
||||
note: 访问控制
|
||||
range: open{3},custom{3},private{2},default{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: groups
|
||||
note: 分组权限
|
||||
range: '[]{6},1{2},1,2{2}'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: users
|
||||
note: 用户权限
|
||||
range: '[]{6},admin{2},user1{1},admin,user1{1}'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: main
|
||||
note: 是否主库
|
||||
range: 0{9},1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: collector
|
||||
note: 收藏者
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: 描述
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: order
|
||||
note: 排序
|
||||
range: 1-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: addedBy
|
||||
note: 创建者
|
||||
range: admin{5},user1{3},user2{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: addedDate
|
||||
note: 创建时间
|
||||
range: (-1Y)-(0):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD hh:mm:ss
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: archived
|
||||
note: 是否归档
|
||||
range: 0{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,119 @@
|
||||
---
|
||||
title: 执行数据定义
|
||||
desc: checkPrivForCreate方法测试数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 执行ID
|
||||
range: 1-5
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: project
|
||||
note: 项目ID
|
||||
range: 1,1,2,2,3
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: model
|
||||
note: 执行模型
|
||||
range: scrum{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: 执行类型
|
||||
range: sprint{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: parent
|
||||
note: 父执行ID
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 执行名称
|
||||
range: 执行{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: code
|
||||
note: 执行代号
|
||||
range: EXEC{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: begin
|
||||
note: 开始时间
|
||||
range: (-1Y)-(0):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD
|
||||
- field: end
|
||||
note: 结束时间
|
||||
range: (0)-(+1Y):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD
|
||||
- field: status
|
||||
note: 状态
|
||||
range: doing{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: 描述
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: acl
|
||||
note: 访问控制
|
||||
range: open{3},private{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: whitelist
|
||||
note: 白名单
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: openedBy
|
||||
note: 创建者
|
||||
range: admin{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: openedDate
|
||||
note: 创建时间
|
||||
range: (-1Y)-(0):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD hh:mm:ss
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,98 @@
|
||||
---
|
||||
title: 产品数据定义
|
||||
desc: checkPrivForCreate方法测试数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 产品ID
|
||||
range: 1-5
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: program
|
||||
note: 项目集ID
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 产品名称
|
||||
range: 产品{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: code
|
||||
note: 产品代号
|
||||
range: PROD{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: line
|
||||
note: 产品线
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: 产品类型
|
||||
range: normal{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: status
|
||||
note: 状态
|
||||
range: normal{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: 描述
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: acl
|
||||
note: 访问控制
|
||||
range: open{3},private{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: whitelist
|
||||
note: 白名单
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdBy
|
||||
note: 创建者
|
||||
range: admin{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdDate
|
||||
note: 创建时间
|
||||
range: (-1Y)-(0):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD hh:mm:ss
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,119 @@
|
||||
---
|
||||
title: 项目数据定义
|
||||
desc: checkPrivForCreate方法测试数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 项目ID
|
||||
range: 1-5
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: project
|
||||
note: 项目ID
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: model
|
||||
note: 项目模型
|
||||
range: scrum{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: 项目类型
|
||||
range: project{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: parent
|
||||
note: 父项目ID
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 项目名称
|
||||
range: 项目{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: code
|
||||
note: 项目代号
|
||||
range: PROJ{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: begin
|
||||
note: 开始时间
|
||||
range: (-1Y)-(0):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD
|
||||
- field: end
|
||||
note: 结束时间
|
||||
range: (0)-(+1Y):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD
|
||||
- field: status
|
||||
note: 状态
|
||||
range: doing{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: 描述
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: acl
|
||||
note: 访问控制
|
||||
range: open{3},private{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: whitelist
|
||||
note: 白名单
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: openedBy
|
||||
note: 创建者
|
||||
range: admin{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: openedDate
|
||||
note: 创建时间
|
||||
range: (-1Y)-(0):60D
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: YYYY-MM-DD hh:mm:ss
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: 用户分组数据定义
|
||||
desc: checkPrivForCreate方法测试数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: account
|
||||
note: 用户账号
|
||||
range: admin{2},user1{2},user2{2},user3{1}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: group
|
||||
note: 分组ID
|
||||
range: 1,2,1,2,3,3,4
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: project
|
||||
note: 项目ID
|
||||
range: '[]'
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
Reference in New Issue
Block a user