znt/module/mr/test/zen/checkprojectedit.php

88 lines
2.9 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 mrZen::checkProjectEdit();
timeout=0
cid=17266
- 执行mrTest模块的checkProjectEditTest方法参数是'gitlab', $sourceProject, $MR @0
- 执行mrTest模块的checkProjectEditTest方法参数是'gitlab', $sourceProject, $MR @0
- 执行mrTest模块的checkProjectEditTest方法参数是'gitea', $sourceProject, $MR @1
- 执行mrTest模块的checkProjectEditTest方法参数是'gitea', $sourceProject, $MR @0
- 执行mrTest模块的checkProjectEditTest方法参数是'gogs', $sourceProject, $MR @1
- 执行mrTest模块的checkProjectEditTest方法参数是'gogs', $sourceProject, $MR @0
- 执行mrTest模块的checkProjectEditTest方法参数是'unknown', $sourceProject, $MR @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
global $app;
$app->setMethodName('view');
zenData('mr')->gen(0);
zenData('pipeline')->gen(0);
su('admin');
$mrTest = new mrZenTest();
// 测试步骤1: GitLab类型,用户已绑定且有开发者权限
$sourceProject = new stdclass();
$sourceProject->id = 1;
$MR = new stdclass();
$MR->hostID = 1;
$MR->sourceProject = 1;
r($mrTest->checkProjectEditTest('gitlab', $sourceProject, $MR)) && p() && e('0');
// 测试步骤2: GitLab类型,用户未绑定
$sourceProject = new stdclass();
$sourceProject->id = 2;
$MR = new stdclass();
$MR->hostID = 1;
$MR->sourceProject = 2;
r($mrTest->checkProjectEditTest('gitlab', $sourceProject, $MR)) && p() && e('0');
// 测试步骤3: Gitea类型,项目允许合并提交
$sourceProject = new stdclass();
$sourceProject->allow_merge_commits = true;
$MR = new stdclass();
$MR->hostID = 1;
$MR->sourceProject = 1;
r($mrTest->checkProjectEditTest('gitea', $sourceProject, $MR)) && p() && e('1');
// 测试步骤4: Gitea类型,项目不允许合并提交
$sourceProject = new stdclass();
$sourceProject->allow_merge_commits = false;
$MR = new stdclass();
$MR->hostID = 1;
$MR->sourceProject = 2;
r($mrTest->checkProjectEditTest('gitea', $sourceProject, $MR)) && p() && e('0');
// 测试步骤5: Gogs类型,用户有推送权限
$sourceProject = new stdclass();
$sourceProject->permissions = new stdclass();
$sourceProject->permissions->push = true;
$MR = new stdclass();
$MR->hostID = 1;
$MR->sourceProject = 1;
r($mrTest->checkProjectEditTest('gogs', $sourceProject, $MR)) && p() && e('1');
// 测试步骤6: Gogs类型,用户无推送权限
$sourceProject = new stdclass();
$sourceProject->permissions = new stdclass();
$sourceProject->permissions->push = false;
$MR = new stdclass();
$MR->hostID = 1;
$MR->sourceProject = 2;
r($mrTest->checkProjectEditTest('gogs', $sourceProject, $MR)) && p() && e('0');
// 测试步骤7: 未知主机类型
$sourceProject = new stdclass();
$MR = new stdclass();
$MR->hostID = 1;
$MR->sourceProject = 1;
r($mrTest->checkProjectEditTest('unknown', $sourceProject, $MR)) && p() && e('0');