Files
EasySoft-ZenTaoPMS/module/gitlab/test/model/managebranchprivs.php
T
2025-09-25 09:16:01 +08:00

84 lines
3.2 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
/**
title=测试 gitlabModel::manageBranchPrivs();
cid=0
- 测试步骤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();
// 测试步骤1:正常添加单个分支保护策略
$_POST['name'] = array('main');
$_POST['mergeAccess'] = array(40);
$_POST['pushAccess'] = array(30);
r($gitlab->manageBranchPrivsTest(1, 2)) && p('') && e('success');
// 测试步骤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');
// 测试步骤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');