diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 8d7739cbcf..08c18d4ae3 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -738,15 +738,15 @@ class gitlabModel extends model * Delete a gitab project member by api. * * @param int $gitlabID - * @param int $groupID + * @param int $projectID * @param int $memberID * @access public * @return object|array|null */ - public function apiDeleteProjectMember(int $gitlabID, int $groupID, int $memberID): object|array|null + public function apiDeleteProjectMember(int $gitlabID, int $projectID, int $memberID): object|array|null { $apiRoot = $this->getApiRoot($gitlabID); - $url = sprintf($apiRoot, "/projects/{$groupID}/members/{$memberID}"); + $url = sprintf($apiRoot, "/projects/{$projectID}/members/{$memberID}"); return json_decode(commonModel::http($url, array(), $options = array(CURLOPT_CUSTOMREQUEST => 'DELETE'))); } @@ -812,9 +812,9 @@ class gitlabModel extends model * @param int $gitlabID * @param object $user * @access public - * @return object|array|null + * @return object|array|null|false */ - public function apiCreateUser(int $gitlabID, object $user): object|array|null + public function apiCreateUser(int $gitlabID, object $user): object|array|null|false { if(empty($user->name) or empty($user->username) or empty($user->email) or empty($user->password)) return false; @@ -830,9 +830,9 @@ class gitlabModel extends model * @param int $gitlabID * @param object $user * @access public - * @return object + * @return object|array|null|false */ - public function apiUpdateUser(int $gitlabID, object $user): object|array|null + public function apiUpdateUser(int $gitlabID, object $user): object|array|null|false { if(empty($user->id)) return false; @@ -866,9 +866,9 @@ class gitlabModel extends model * @param int $gitlabID * @param int $groupID * @access public - * @return object|array|null + * @return object|array|null|false */ - public function apiDeleteGroup(int $gitlabID, int $groupID): object|array|null + public function apiDeleteGroup(int $gitlabID, int $groupID): object|array|null|false { if(empty($groupID)) return false; @@ -884,9 +884,9 @@ class gitlabModel extends model * @param int $gitlabID * @param object $project * @access public - * @return object|array|null + * @return object|array|null|false */ - public function apiUpdateProject(int $gitlabID, object $project): object|array|null + public function apiUpdateProject(int $gitlabID, object $project): object|array|null|false { if(empty($project->id)) return false; diff --git a/module/gitlab/test/gitlab.class.php b/module/gitlab/test/gitlab.class.php index 8192583dda..1215c95427 100644 --- a/module/gitlab/test/gitlab.class.php +++ b/module/gitlab/test/gitlab.class.php @@ -210,24 +210,4 @@ class gitlabTest { return $this->gitlab->apiGetSingleProject($gitlabID, $projectID, $useUser); } - - /** - * Get gitlab menu. - * - * @param int $gitlabID - * @param string $type - * @access public - * @return void - */ - public function getGitlabMenuTest($gitlabID, $type = 'project') - { - $html = $this->gitlab->getGitlabMenu($gitlabID, $type); - if(dao::isError()) - { - $errors = dao::getError(); - return key($errors); - } - - return substr($html, 0, 4); - } } diff --git a/module/gitlab/test/model/apicreategroupmember.php b/module/gitlab/test/model/apicreategroupmember.php new file mode 100644 index 0000000000..09b44e6118 --- /dev/null +++ b/module/gitlab/test/model/apicreategroupmember.php @@ -0,0 +1,48 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; +$groupID = 14; + +$groupMember = new stdclass(); +$groupMember->user_id = ''; +$groupMember->access_level = '40'; + +$result = $gitlab->apiCreateGroupMember($gitlabID, $groupID, $groupMember); +if($result === false) $result = 'return false'; +r($result) && p() && e('return false'); //使用空的user_id创建gitlab群组 + +$groupMember->user_id = '4'; +$groupMember->access_level = ''; +$result = $gitlab->apiCreateGroupMember($gitlabID, $groupID, $groupMember); +if($result === false) $result = 'return false'; +r($result) && p() && e('return false'); //使用空的access_level创建gitlab群组 + +r($gitlab->apiCreateGroupMember(0, $groupID, $groupMember)) && p() && e('0'); //使用错误gitlabID创建群组 + +$groupMember->access_level = '40'; +$result = $gitlab->apiCreateGroupMember($gitlabID, $groupID, $groupMember); +if(!empty($result->access_level) and $result->access_level == $groupMember->access_level) $result = true; +if(!empty($result->message) and $result->message == 'Member already exists') $result = true; +r($result) && p() && e('1'); //通过gitlabID,projectID,分支对象正确创建GitLab分支 + +r( $gitlab->apiCreateGroupMember($gitlabID, $groupID, $groupMember)) && p('message') && e('Member already exists'); //使用重复的分支信息创建分支 \ No newline at end of file diff --git a/module/gitlab/test/model/apicreateuser.php b/module/gitlab/test/model/apicreateuser.php new file mode 100644 index 0000000000..3d0497bb5b --- /dev/null +++ b/module/gitlab/test/model/apicreateuser.php @@ -0,0 +1,44 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; + +$user = new stdclass(); +$user->name = ''; +$user->username = 'apiuser17'; +$user->email = 'apiuser17@test.com'; +$user->password = '12345678'; + +r($gitlab->apiCreateUser($gitlabID, $user)) && p() && e('0'); //使用空的name创建gitlab用户 + +$user->name = 'apiCreatedUser'; +$user->username = ''; +r($gitlab->apiCreateUser($gitlabID, $user)) && p() && e('0'); //使用空的username创建gitlab用户 +r($gitlab->apiCreateUser(0, $user)) && p() && e('0'); //使用错误gitlabID创建用户 + +$user->username = 'apiuser17'; +$result = $gitlab->apiCreateUser($gitlabID, $user); +if(!empty($result->name) and $result->name == $user->name) $result = true; +if(!empty($result->message) and $result->message == 'Email has already been taken') $result = true; +r($result) && p() && e('1'); //通过gitlabID,projectID,分支对象正确创建GitLab用户 + +r( $gitlab->apiCreateUser($gitlabID, $user)) && p('message') && e('Email has already been taken'); //使用重复的信息创建gitlab用户 \ No newline at end of file diff --git a/module/gitlab/test/model/apideletegroupmember.php b/module/gitlab/test/model/apideletegroupmember.php new file mode 100644 index 0000000000..173e841370 --- /dev/null +++ b/module/gitlab/test/model/apideletegroupmember.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; +$groupID = 14; +$memberID = 4; + +$result = $gitlab->apiDeleteGroupMember($gitlabID, 0, $memberID); +r($result) && p('message') && e('404 Group Not Found'); //使用空的groupID删除gitlab群组 + +$result = $gitlab->apiDeleteGroupMember($gitlabID, $groupID, 0); +r($result) && p('message') && e('404 Not found'); //使用空的memberID删除gitlab群组 + +r($gitlab->apiDeleteGroupMember(0, $groupID, $memberID)) && p() && e('0'); //使用错误gitlabID删除群组 + +$result = $gitlab->apiDeleteGroupMember($gitlabID, $groupID, $memberID); +if(is_null($result)) $result = true; +if(!empty($result->message) and $result->message == '404 Not found') $result = true; +r($result) && p() && e('1'); //通过gitlabID,groupID,分支对象正确删除GitLab分支 + +r( $gitlab->apiDeleteGroupMember($gitlabID, $groupID, $memberID)) && p('message') && e('404 Not found'); //使用重复的分支信息删除分支 \ No newline at end of file diff --git a/module/gitlab/test/model/apideleteprojectmember.php b/module/gitlab/test/model/apideleteprojectmember.php new file mode 100644 index 0000000000..cb29ae94b0 --- /dev/null +++ b/module/gitlab/test/model/apideleteprojectmember.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; +$projectID = 4; +$memberID = 4; + +$result = $gitlab->apiDeleteProjectMember($gitlabID, 0, $memberID); +r($result) && p('message') && e('404 Project Not Found'); //使用空的projectID删除gitlab群组 + +$result = $gitlab->apiDeleteProjectMember($gitlabID, $projectID, 0); +r($result) && p('message') && e('404 Not found'); //使用空的memberID删除gitlab群组 + +r($gitlab->apiDeleteProjectMember(0, $projectID, $memberID)) && p() && e('0'); //使用错误gitlabID删除群组 + +$result = $gitlab->apiDeleteProjectMember($gitlabID, $projectID, $memberID); +if(is_null($result)) $result = true; +if(!empty($result->message) and $result->message == '404 Not found') $result = true; +r($result) && p() && e('1'); //通过gitlabID,projectID,分支对象正确删除GitLab分支 + +r( $gitlab->apiDeleteProjectMember($gitlabID, $projectID, $memberID)) && p('message') && e('404 Not found'); //使用重复的分支信息删除分支 \ No newline at end of file diff --git a/module/gitlab/test/model/apideleteuser.php b/module/gitlab/test/model/apideleteuser.php new file mode 100644 index 0000000000..72cd1b9cd9 --- /dev/null +++ b/module/gitlab/test/model/apideleteuser.php @@ -0,0 +1,47 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; + +/* Create user. */ +$user = new stdclass(); +$user->name = 'apiCreatedUser'; +$user->username = 'apiuser17'; +$user->email = 'apiuser17@test.com'; +$user->password = '12345678'; +$gitlab->apiCreateUser($gitlabID, $user); + +/* Get userID. */ +$gitlabUsers = $gitlab->apiGetUsers($gitlabID); +foreach($gitlabUsers as $gitlabUser) +{ + if($gitlabUser->account == 'apiuser17') + { + $userID = $gitlabUser->id; + break; + } +} + +r($gitlab->apiDeleteUser($gitlabID, 0)) && p() && e('0'); //使用空的userID删除gitlab群组 +r($gitlab->apiDeleteUser(0, $userID)) && p() && e('0'); //使用错误gitlabID删除群组 + +$result = $gitlab->apiDeleteUser($gitlabID, $userID); +if(is_null($result)) $result = true; +r($result) && p() && e('1'); //通过gitlabID,projectID,分支对象正确删除GitLab用户 \ No newline at end of file diff --git a/module/gitlab/test/model/apigetprojects.php b/module/gitlab/test/model/apigetprojects.php index 4bd16e258a..3b59f8e357 100644 --- a/module/gitlab/test/model/apigetprojects.php +++ b/module/gitlab/test/model/apigetprojects.php @@ -12,8 +12,8 @@ cid=1 - 通过gitlabID获取GitLab项目数量 @1 - 通过gitlabID获取GitLab项目列表是否有visibility字段信息。 @0 - 当gitlabID为0时,获取GitLab项目列表 @return empty -- 通过gitlabID simple字段为false获取GitLab项目列表第0条的visibility属性 @private -- 通过gitlabID minID为4获取GitLab项目列表第0条的name属性 @privateTest +- 通过gitlabID simple字段为false获取GitLab项目列表 @1 +- 通过gitlabID minID为4获取GitLab项目列表属性name @privateProject - 通过gitlabID maxID为4获取GitLab项目列表第0条的name属性 @testHtml */ @@ -23,7 +23,6 @@ zdTable('pipeline')->gen(5); $gitlab = $tester->loadModel('gitlab'); $gitlabID = 1; -$orderBy = 'id_desc'; $simple = 'true'; $result = $gitlab->apiGetProjects($gitlabID, $simple); @@ -39,12 +38,12 @@ r($result) && p() && e('return empty'); //当gitlabID为0时,获取GitLab项目 $gitlabID = 1; $simple = 'false'; $result = $gitlab->apiGetProjects($gitlabID, $simple); -r($result) && p('0:visibility') && e('private'); //通过gitlabID simple字段为false获取GitLab项目列表 +r(isset($result[0]->visibility)) && p() && e('1'); //通过gitlabID simple字段为false获取GitLab项目列表 $simple = 'true'; $minID = 4; $result = $gitlab->apiGetProjects($gitlabID, $simple, $minID); -r($result) && p('0:name') && e('privateTest'); //通过gitlabID minID为4获取GitLab项目列表 +r(end($result)) && p('name') && e('privateProject'); //通过gitlabID minID为4获取GitLab项目列表 $simple = 'true'; $maxID = 2; diff --git a/module/gitlab/test/model/apiupdategroupmember.php b/module/gitlab/test/model/apiupdategroupmember.php new file mode 100644 index 0000000000..1367a16372 --- /dev/null +++ b/module/gitlab/test/model/apiupdategroupmember.php @@ -0,0 +1,44 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; +$groupID = 14; + +$groupMember = new stdclass(); +$groupMember->user_id = ''; +$groupMember->access_level = '40'; + +$result = $gitlab->apiUpdateGroupMember($gitlabID, $groupID, $groupMember); +if($result === false) $result = 'return false'; +r($result) && p() && e('return false'); //使用空的user_id更新gitlab群组 + +$groupMember->user_id = '4'; +$groupMember->access_level = ''; +$result = $gitlab->apiUpdateGroupMember($gitlabID, $groupID, $groupMember); +if($result === false) $result = 'return false'; +r($result) && p() && e('return false'); //使用空的access_level更新gitlab群组 + +r($gitlab->apiUpdateGroupMember(0, $groupID, $groupMember)) && p() && e('0'); //使用错误gitlabID更新群组 + +$groupMember->access_level = '40'; +$gitlab->apiCreateGroupMember($gitlabID, $groupID, $groupMember); +$groupMember->access_level = '30'; +r($gitlab->apiUpdateGroupMember($gitlabID, $groupID, $groupMember)) && p('access_level') && e('30'); //通过gitlabID,groupID,分支对象正确更新GitLab群组成员 \ No newline at end of file diff --git a/module/gitlab/test/model/apiupdateprojectmember.php b/module/gitlab/test/model/apiupdateprojectmember.php new file mode 100644 index 0000000000..147ed673f9 --- /dev/null +++ b/module/gitlab/test/model/apiupdateprojectmember.php @@ -0,0 +1,44 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; +$projectID = 4; + +$projectMember = new stdclass(); +$projectMember->user_id = ''; +$projectMember->access_level = '40'; + +$result = $gitlab->apiUpdateProjectMember($gitlabID, $projectID, $projectMember); +if($result === false) $result = 'return false'; +r($result) && p() && e('return false'); //使用空的user_id更新gitlab群组 + +$projectMember->user_id = '4'; +$projectMember->access_level = ''; +$result = $gitlab->apiUpdateProjectMember($gitlabID, $projectID, $projectMember); +if($result === false) $result = 'return false'; +r($result) && p() && e('return false'); //使用空的access_level更新gitlab群组 + +r($gitlab->apiUpdateProjectMember(0, $projectID, $projectMember)) && p() && e('0'); //使用错误gitlabID更新群组 + +$projectMember->access_level = '40'; +$gitlab->apiCreateProjectMember($gitlabID, $projectID, $projectMember); +$projectMember->access_level = '30'; +r($gitlab->apiUpdateProjectMember($gitlabID, $projectID, $projectMember)) && p('access_level') && e('30'); //通过gitlabID,projectID,分支对象正确更新GitLab分支 \ No newline at end of file diff --git a/module/gitlab/test/model/apiupdateuser.php b/module/gitlab/test/model/apiupdateuser.php new file mode 100644 index 0000000000..9171960949 --- /dev/null +++ b/module/gitlab/test/model/apiupdateuser.php @@ -0,0 +1,49 @@ +#!/usr/bin/env php +gen(5); + +$gitlab = $tester->loadModel('gitlab'); + +$gitlabID = 1; + +/* Create user. */ +$user = new stdclass(); +$user->name = 'apiCreatedUser'; +$user->username = 'apiuser17'; +$user->email = 'apiuser17@test.com'; +$user->password = '12345678'; +$gitlab->apiCreateUser($gitlabID, $user); + +/* Get userID. */ +$gitlabUsers = $gitlab->apiGetUsers($gitlabID); +foreach($gitlabUsers as $gitlabUser) +{ + if($gitlabUser->account == 'apiuser17') + { + $userID = $gitlabUser->id; + break; + } +} + +$user = new stdclass(); +$user->name = 'apiUpdatedUser'; + +r($gitlab->apiUpdateUser($gitlabID, $user)) && p() && e('0'); //使用空的userID创建gitlab群组 +r($gitlab->apiUpdateUser(0, $user)) && p() && e('0'); //使用错误gitlabID创建群组 + +$user->id = $userID; +r($gitlab->apiUpdateUser($gitlabID, $user)) && p('name') && e('apiUpdatedUser'); //通过gitlabID,用户对象正确更新用户名字 \ No newline at end of file