🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
84 lines
3.2 KiB
PHP
Executable File
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'); |