* Add gitlab unit test
This commit is contained in:
@@ -2071,21 +2071,6 @@ class gitlabModel extends model
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目类型是gitlab的产品。
|
||||
* Get products which scm is GitLab by projects.
|
||||
*
|
||||
* @param array $projectIDs
|
||||
* @return array
|
||||
*/
|
||||
public function getProductsByProjects(array $projectIDs): array
|
||||
{
|
||||
return $this->dao->select('path,product')->from(TABLE_REPO)->where('deleted')->eq('0')
|
||||
->andWhere('SCM')->eq('Gitlab')
|
||||
->andWhere('path')->in($projectIDs)
|
||||
->fetchPairs('path', 'product');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目保护分支。
|
||||
* Get protect branches of one project.
|
||||
|
||||
@@ -388,4 +388,11 @@ class gitlabTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function apiUpdateHookTest(int $gitlabID, int $projectID, int $hookID, object $hook)
|
||||
{
|
||||
$result = $this->gitlab->apiUpdateHook($gitlabID, $projectID, $hookID, $hook);
|
||||
|
||||
return json_decode($result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/gitlab.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 gitlabModel::apiUpdateHook();
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 使用空的projectID更新gitlab群组属性message @404 Project Not Found
|
||||
- 使用空的hookID更新gitlab群组属性message @404 Not found
|
||||
- 使用错误gitlabID更新群组 @0
|
||||
- 通过gitlabID,projectID,分支对象正确更新GitLab分支
|
||||
- 属性merge_requests_events @~~
|
||||
- 属性push_events @1
|
||||
|
||||
*/
|
||||
|
||||
zdTable('pipeline')->gen(5);
|
||||
|
||||
$gitlab = $tester->loadModel('gitlab');
|
||||
|
||||
$gitlabID = 1;
|
||||
$projectID = 2;
|
||||
|
||||
$hooks = $gitlab->apiGetHooks($gitlabID, $projectID);
|
||||
foreach($hooks as $hook)
|
||||
{
|
||||
if($hook->url == 'http://unittest.com/api.php/v1/gitlab/webhook?repoID=1')
|
||||
{
|
||||
$hookID = $hook->id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$hook = new stdclass();
|
||||
$hook->url = 'http://unittest.com/api.php/v1/gitlab/webhook?repoID=1';
|
||||
$hook->merge_requests_events = 0;
|
||||
|
||||
$gitlabTest = new gitlabTest();
|
||||
r($gitlabTest->apiUpdateHookTest($gitlabID, 0, $hookID, $hook)) && p('message') && e('404 Project Not Found'); //使用空的projectID更新gitlab群组
|
||||
r($gitlabTest->apiUpdateHookTest($gitlabID, $projectID, 0, $hook)) && p('message') && e('404 Not found'); //使用空的hookID更新gitlab群组
|
||||
r($gitlabTest->apiUpdateHookTest(0, $projectID, $hookID, $hook)) && p() && e('0'); //使用错误gitlabID更新群组
|
||||
|
||||
r($gitlabTest->apiUpdateHookTest($gitlabID, $projectID, $hookID, $hook)) && p('merge_requests_events,push_events') && e('~~,1'); //通过gitlabID,projectID,分支对象正确更新GitLab分支
|
||||
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 gitlabModel::isClickable();
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 计算isDeveloper为true是否能进行浏览分支操作 @1
|
||||
- 计算isDeveloper为false是否能进行浏览分支操作 @0
|
||||
- 计算isDeveloper为true是否能进行浏览标签操作 @1
|
||||
- 计算isDeveloper为false是否能进行浏览标签操作 @0
|
||||
- 计算hasRepo为true是否能进行项目成员管理操作 @1
|
||||
- 计算hasRepo为false是否能进行项目成员管理操作 @0
|
||||
- 计算hasRepo为true是否能进行webhook创建操作 @1
|
||||
- 计算hasRepo为false是否能进行webhook创建操作 @0
|
||||
- 计算defaultBranch为true是否能进行分支保护管理操作 @1
|
||||
- 计算defaultBranch为false是否能进行分支保护管理操作 @0
|
||||
- 计算defaultBranch为true是否能进行标签保护管理操作 @1
|
||||
- 计算defaultBranch为false是否能进行标签保护管理操作 @0
|
||||
- 计算defaultBranch为true是否能进行项目编辑操作 @1
|
||||
- 计算defaultBranch为false是否能进行项目编辑操作 @0
|
||||
- 计算defaultBranch为true是否能进行删除项目操作 @1
|
||||
- 计算defaultBranch为false是否能进行删除项目操作 @0
|
||||
- 计算isAdmin为true是否能进行编辑群组操作 @1
|
||||
- 计算isAdmin为false是否能进行编辑群组操作 @0
|
||||
- 计算isAdmin为true是否能进行删除群组操作 @1
|
||||
- 计算isAdmin为false是否能进行删除群组操作 @0
|
||||
- 计算isAdmin为true是否能进行编辑用户操作 @1
|
||||
- 计算isAdmin为false是否能进行编辑用户操作 @0
|
||||
- 计算isAdmin为true是否能进行删除用户操作 @1
|
||||
- 计算isAdmin为false是否能进行删除用户操作 @0
|
||||
- 计算protected为true是否能进行删除tag操作 @0
|
||||
- 计算protected为false是否能进行删除tag操作 @1
|
||||
|
||||
*/
|
||||
|
||||
$gitlabModel = $tester->loadModel('gitlab');
|
||||
|
||||
$gitlab1 = new stdclass();
|
||||
$gitlab1->isDeveloper = true;
|
||||
|
||||
$gitlab2 = new stdclass();
|
||||
$gitlab2->isDeveloper = false;
|
||||
|
||||
$gitlab3 = new stdclass();
|
||||
$gitlab3->hasRepo = true;
|
||||
|
||||
$gitlab4 = new stdclass();
|
||||
$gitlab4->hasRepo = false;
|
||||
|
||||
$gitlab5 = new stdclass();
|
||||
$gitlab5->defaultBranch = true;
|
||||
|
||||
$gitlab6 = new stdclass();
|
||||
$gitlab6->defaultBranch = false;
|
||||
|
||||
$gitlab7 = new stdclass();
|
||||
$gitlab7->isAdmin = true;
|
||||
|
||||
$gitlab8 = new stdclass();
|
||||
$gitlab8->isAdmin = false;
|
||||
|
||||
$gitlab9 = new stdclass();
|
||||
$gitlab9->protected = true;
|
||||
|
||||
$gitlab10 = new stdclass();
|
||||
$gitlab10->protected = false;
|
||||
|
||||
r($gitlabModel->isClickable($gitlab1, 'browseBranch')) && p() && e('1'); //计算isDeveloper为true是否能进行浏览分支操作
|
||||
r($gitlabModel->isClickable($gitlab2, 'browseBranch')) && p() && e('0'); //计算isDeveloper为false是否能进行浏览分支操作
|
||||
r($gitlabModel->isClickable($gitlab1, 'browseTag')) && p() && e('1'); //计算isDeveloper为true是否能进行浏览标签操作
|
||||
r($gitlabModel->isClickable($gitlab2, 'browseTag')) && p() && e('0'); //计算isDeveloper为false是否能进行浏览标签操作
|
||||
|
||||
r($gitlabModel->isClickable($gitlab3, 'manageProjectMembers')) && p() && e('1'); //计算hasRepo为true是否能进行项目成员管理操作
|
||||
r($gitlabModel->isClickable($gitlab4, 'manageProjectMembers')) && p() && e('0'); //计算hasRepo为false是否能进行项目成员管理操作
|
||||
r($gitlabModel->isClickable($gitlab3, 'createWebhook')) && p() && e('1'); //计算hasRepo为true是否能进行webhook创建操作
|
||||
r($gitlabModel->isClickable($gitlab4, 'createWebhook')) && p() && e('0'); //计算hasRepo为false是否能进行webhook创建操作
|
||||
|
||||
r($gitlabModel->isClickable($gitlab5, 'manageBranchPriv')) && p() && e('1'); //计算defaultBranch为true是否能进行分支保护管理操作
|
||||
r($gitlabModel->isClickable($gitlab6, 'manageBranchPriv')) && p() && e('0'); //计算defaultBranch为false是否能进行分支保护管理操作
|
||||
r($gitlabModel->isClickable($gitlab5, 'manageTagPriv')) && p() && e('1'); //计算defaultBranch为true是否能进行标签保护管理操作
|
||||
r($gitlabModel->isClickable($gitlab6, 'manageTagPriv')) && p() && e('0'); //计算defaultBranch为false是否能进行标签保护管理操作
|
||||
r($gitlabModel->isClickable($gitlab5, 'editProject')) && p() && e('1'); //计算defaultBranch为true是否能进行项目编辑操作
|
||||
r($gitlabModel->isClickable($gitlab6, 'editProject')) && p() && e('0'); //计算defaultBranch为false是否能进行项目编辑操作
|
||||
r($gitlabModel->isClickable($gitlab5, 'deleteProject')) && p() && e('1'); //计算defaultBranch为true是否能进行删除项目操作
|
||||
r($gitlabModel->isClickable($gitlab6, 'deleteProject')) && p() && e('0'); //计算defaultBranch为false是否能进行删除项目操作
|
||||
|
||||
r($gitlabModel->isClickable($gitlab7, 'editGroup')) && p() && e('1'); //计算isAdmin为true是否能进行编辑群组操作
|
||||
r($gitlabModel->isClickable($gitlab8, 'editGroup')) && p() && e('0'); //计算isAdmin为false是否能进行编辑群组操作
|
||||
r($gitlabModel->isClickable($gitlab7, 'deleteGroup')) && p() && e('1'); //计算isAdmin为true是否能进行删除群组操作
|
||||
r($gitlabModel->isClickable($gitlab8, 'deleteGroup')) && p() && e('0'); //计算isAdmin为false是否能进行删除群组操作
|
||||
r($gitlabModel->isClickable($gitlab7, 'editUser')) && p() && e('1'); //计算isAdmin为true是否能进行编辑用户操作
|
||||
r($gitlabModel->isClickable($gitlab8, 'editUser')) && p() && e('0'); //计算isAdmin为false是否能进行编辑用户操作
|
||||
r($gitlabModel->isClickable($gitlab7, 'deleteUser')) && p() && e('1'); //计算isAdmin为true是否能进行删除用户操作
|
||||
r($gitlabModel->isClickable($gitlab8, 'deleteUser')) && p() && e('0'); //计算isAdmin为false是否能进行删除用户操作
|
||||
|
||||
r($gitlabModel->isClickable($gitlab9, 'deleteTag')) && p() && e('0'); //计算protected为true是否能进行删除tag操作
|
||||
r($gitlabModel->isClickable($gitlab10, 'deleteTag')) && p() && e('1'); //计算protected为false是否能进行删除tag操作
|
||||
Reference in New Issue
Block a user