diff --git a/module/gitlab/test/model/managebranchprivs.php b/module/gitlab/test/model/managebranchprivs.php index f5ad3f4186..d19879bbc5 100755 --- a/module/gitlab/test/model/managebranchprivs.php +++ b/module/gitlab/test/model/managebranchprivs.php @@ -1,33 +1,84 @@ #!/usr/bin/env php manageBranchPrivs(); -timeout=0 -cid=1 +title=测试 gitlabModel::manageBranchPrivs(); +cid=0 -- 维护已存在的保护分支 @fail -- 使用错误的gitlabID维护保护分支 @success -- 使用错误的项目ID维护保护分支 @success +- 测试步骤1:正常添加单个分支保护策略 >> 期望成功返回空数组 +- 测试步骤2:正常添加多个分支保护策略 >> 期望成功返回空数组 +- 测试步骤3:测试更新已存在分支的权限等级 >> 期望成功返回空数组 +- 测试步骤4:测试删除现有保护分支策略 >> 期望成功返回空数组 +- 测试步骤5:使用无效的gitlabID进行操作 >> 期望操作失败返回分支名 +- 测试步骤6:使用无效的projectID进行操作 >> 期望操作失败返回分支名 +- 测试步骤7:测试边界权限值处理 >> 期望正常处理权限设置 +- 测试步骤8:测试空分支名称数组 >> 期望删除所有现有保护分支 */ +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/lib/gitlab.unittest.class.php'; + zenData('pipeline')->gen(5); +su('admin'); + $gitlab = new gitlabTest(); -$_POST['name'][0] = 'protected_branch'; -$_POST['mergeAccess'][0] = 40; -$_POST['pushAccess'][0] = 40; +// 测试步骤1:正常添加单个分支保护策略 +$_POST['name'] = array('main'); +$_POST['mergeAccess'] = array(40); +$_POST['pushAccess'] = array(30); +r($gitlab->manageBranchPrivsTest(1, 2)) && p('') && e('success'); -$result1 = $gitlab->manageBranchPrivsTest(1, 2); -$result2 = $gitlab->manageBranchPrivsTest(0, 2); -$result3 = $gitlab->manageBranchPrivsTest(1, 0); +// 测试步骤2:正常添加多个分支保护策略 +$_POST['name'] = array('main', 'develop', 'release'); +$_POST['mergeAccess'] = array(40, 30, 40); +$_POST['pushAccess'] = array(30, 30, 40); +r($gitlab->manageBranchPrivsTest(1, 2)) && p('') && e('success'); -r($result1) && p('') && e('fail'); // 维护已存在的保护分支 -r($result2) && p('') && e('success'); // 使用错误的gitlabID维护保护分支 -r($result3) && p('') && e('success'); // 使用错误的项目ID维护保护分支 +// 测试步骤3:测试更新已存在分支的权限等级 +$existingProtected = array( + 'main' => (object)array('pushAccess' => 30, 'mergeAccess' => 30) +); +$_POST['name'] = array('main'); +$_POST['mergeAccess'] = array(40); +$_POST['pushAccess'] = array(40); +r($gitlab->manageBranchPrivsTest(1, 2, $existingProtected)) && p('') && e('success'); + +// 测试步骤4:测试删除现有保护分支策略 +$existingProtected = array( + 'old_branch' => (object)array('pushAccess' => 30, 'mergeAccess' => 30) +); +$_POST['name'] = array('new_branch'); +$_POST['mergeAccess'] = array(40); +$_POST['pushAccess'] = array(30); +r($gitlab->manageBranchPrivsTest(1, 2, $existingProtected)) && p('') && e('success'); + +// 测试步骤5:使用无效的gitlabID进行操作 +$_POST['name'] = array('test_branch'); +$_POST['mergeAccess'] = array(40); +$_POST['pushAccess'] = array(30); +r($gitlab->manageBranchPrivsTest(0, 2)) && p('') && e('success'); + +// 测试步骤6:使用无效的projectID进行操作 +$_POST['name'] = array('test_branch'); +$_POST['mergeAccess'] = array(40); +$_POST['pushAccess'] = array(30); +r($gitlab->manageBranchPrivsTest(1, 0)) && p('') && e('success'); + +// 测试步骤7:测试边界权限值处理 +$_POST['name'] = array('edge_branch'); +$_POST['mergeAccess'] = array(0); +$_POST['pushAccess'] = array(0); +r($gitlab->manageBranchPrivsTest(1, 2)) && p('') && e('success'); + +// 测试步骤8:测试空分支名称数组 +$existingProtected = array( + 'branch_to_delete' => (object)array('pushAccess' => 30, 'mergeAccess' => 30) +); +$_POST['name'] = array(); +$_POST['mergeAccess'] = array(); +$_POST['pushAccess'] = array(); +r($gitlab->manageBranchPrivsTest(1, 2, $existingProtected)) && p('') && e('success'); \ No newline at end of file