* [misc] Enhance unit tests for gitlabModel::manageBranchPrivs() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,33 +1,84 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/gitlab.unittest.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试gitlabModel->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');
|
||||
Reference in New Issue
Block a user