From eccde2060af351a7c6b130589718ca43d2f2634b Mon Sep 17 00:00:00 2001 From: zenggang Date: Fri, 25 Feb 2022 08:21:43 +0000 Subject: [PATCH] * Edit four sonarqube method --- test/class/sonarqube.class.php | 51 ++++++++++++++++++++++++++ test/model/sonarqube/apivalidate.php | 22 +++++------ test/model/sonarqube/createproject.php | 36 ++++++------------ test/model/sonarqube/getapibase.php | 13 +++---- test/model/sonarqube/getcachefile.php | 9 +++-- 5 files changed, 81 insertions(+), 50 deletions(-) diff --git a/test/class/sonarqube.class.php b/test/class/sonarqube.class.php index 7a89413a67..16abf5082f 100644 --- a/test/class/sonarqube.class.php +++ b/test/class/sonarqube.class.php @@ -17,6 +17,26 @@ class sonarqubeTest return $result; } + public function createProjectTest($sonarqubeID, $post) + { + $_POST['projectName'] = $post['projectName']; + $_POST['projectKey'] = $post['projectKey']; + + $result = $this->objectModel->createProject($sonarqubeID); + $errors = dao::getError(); + if($errors) + { + if(current($errors) == "项目标识的格式不正确。允许的字符为字母、数字、'-'、''、'.'和“:”,至少有一个非数字。") return 'return error'; + if(current($errors) == false) return 'return false'; + return $errors; + } + else + { + if(empty($result)) $result = 'return false'; + return $result; + } + } + public function apiDeleteProjectTest($sonarqubeID, $projectKey) { $result = $this->objectModel->apiDeleteProject($sonarqubeID, $projectKey); @@ -45,4 +65,35 @@ class sonarqubeTest if($keyword != '' and strpos($result[0]->name, $keyword) !== false) $result = true; return $result; } + + public function apiValidateTest($sonarqubeID, $url = '', $token = '') + { + global $tester; + $sonarqubeServer = $tester->loadModel('pipeline')->getByID($sonarqubeID); + $url = $url ? $url : $sonarqubeServer->url; + $token = $token ? $token : $sonarqubeServer->token; + + $result = $this->objectModel->apiValidate($url, $token); + + if(empty($result)) $result = 'success'; + if(isset($result['password'])) $result = 'return false'; + if(isset($result['account'])) $result = 'return false'; + return $result; + } + + public function getApiBaseTest($sonarqubeID) + { + list($apiRoot, $header) = $this->objectModel->getApiBase($sonarqubeID); + + if(empty($apiRoot)) return 'return empty'; + return $apiRoot; + } + + public function getCacheFile($sonarqubeID, $projectKey) + { + $result = $this->objectModel->getCacheFile($sonarqubeID, $projectKey); + + if(strPos($result, '/' . $sonarqubeID . '-' ) !== false) return true; + return $result; + } } diff --git a/test/model/sonarqube/apivalidate.php b/test/model/sonarqube/apivalidate.php index e6a0b516bb..12c4608a3a 100644 --- a/test/model/sonarqube/apivalidate.php +++ b/test/model/sonarqube/apivalidate.php @@ -1,6 +1,8 @@ #!/usr/bin/env php loadModel('sonarqube'); +$sonarqubeID = 2; -$sonarqubeID = 2; -$sonarqubeServer = $tester->loadModel('pipeline')->getByID($sonarqubeID); -$result = $sonarqube->apiValidate($sonarqubeServer->url, $sonarqubeServer->token); -if(empty($result)) $result = 'success'; -r($result) && p() && e('success'); //通过host,token检验api权限 +$errorToken = 'abc'; +$noAdminToken = 'dGVzdDoxMjM0NTY='; -$result = $sonarqube->apiValidate($sonarqubeServer->url, $sonarqubeServer->token . 'a'); -if(isset($result['password'])) $result = 'return false'; -r($result) && p() && e('return false'); //通过正确的host,错误的token获取api权限 - -$result = $sonarqube->apiValidate($sonarqubeServer->url, 'dGVzdDoxMjM0NTY='); -if(isset($result['account'])) $result = 'return false'; -r($result) && p() && e('return false'); //通过正确的host,非管理员权限的token获取api权限 +$sonarqube = new sonarqubeTest(); +r($sonarqube->apiValidateTest($sonarqubeID)) && p() && e('success'); //通过host,token检验api权限 +r($sonarqube->apiValidateTest($sonarqubeID, '', $errorToken)) && p() && e('return false'); //通过正确的host,错误的token获取api权限 +r($sonarqube->apiValidateTest($sonarqubeID, '', $noAdminToken)) && p() && e('return false'); //通过正确的host,非管理员权限的token获取api权限 diff --git a/test/model/sonarqube/createproject.php b/test/model/sonarqube/createproject.php index 182938d181..33a9060f26 100644 --- a/test/model/sonarqube/createproject.php +++ b/test/model/sonarqube/createproject.php @@ -1,6 +1,8 @@ #!/usr/bin/env php loadModel('sonarqube'); - -$sonarqubeID = 0; -$_POST['projectName'] = ''; -$_POST['projectKey'] = ''; -$sonarqube->createProject($sonarqubeID); -r(dao::getError()) && p('projectName:0') && e('『项目名称』不能为空'); //使用空的项目数据,空的sonarqubeID创建Sonarqube项目 - $sonarqubeID = 2; -$_POST['projectName'] = 'unit_test'; -$_POST['projectKey'] = '@#'; -$sonarqube->createProject($sonarqubeID); -$errors = dao::getError(); -if(array_shift($errors) == "项目标识的格式不正确。允许的字符为字母、数字、'-'、''、'.'和“:”,至少有一个非数字。") $result = 'return error'; -r($result) && p() && e("return error"); //使用错误项目数据,正确的sonarqubeID创建Sonarqube项目 -$sonarqubeID = 0; -$_POST['projectName'] = 'unit_test'; -$_POST['projectKey'] = 'unit_test'; -$result = $sonarqube->createProject($sonarqubeID); -if(empty($result)) $result = 'return false'; -r($result) && p() && e('return false'); //使用正确的项目数据,空的sonarqubeID创建Sonarqube项目 +$empty_post = array('projectName' => '', 'projectKey' => ''); +$error_post = array('projectName' => 'unit_test', 'projectKey' => '@#'); +$true_post = array('projectName' => 'unit_test', 'projectKey' => 'unit_test'); -dao::getError(); -$sonarqubeID = 2; -$sonarqube->apiDeleteProject($sonarqubeID, $_POST['projectKey']); -$result = $sonarqube->createProject($sonarqubeID); -r($result) && p() && e(1); //使用正确的sonarqubeID和Sonarqube项目信息创建Sonarqube项目 +$sonarqube = new sonarqubeTest(); +r($sonarqube->createProjectTest(0, $empty_post)) && p('projectName:0') && e('『项目名称』不能为空'); //使用空的项目数据,空的sonarqubeID创建Sonarqube项目 +r($sonarqube->createProjectTest($sonarqubeID, $error_post)) && p() && e("return error"); //使用错误项目数据,正确的sonarqubeID创建Sonarqube项目 +r($sonarqube->createProjectTest(0, $true_post)) && p() && e('return false'); //使用正确的项目数据,空的sonarqubeID创建Sonarqube项目 +$sonarqube->apiDeleteProjectTest($sonarqubeID, 'unit_test'); +r($sonarqube->createProjectTest($sonarqubeID, $true_post)) && p() && e(1); //使用正确的sonarqubeID和Sonarqube项目信息创建Sonarqube项目 diff --git a/test/model/sonarqube/getapibase.php b/test/model/sonarqube/getapibase.php index 6ba406cae3..ef7193d975 100644 --- a/test/model/sonarqube/getapibase.php +++ b/test/model/sonarqube/getapibase.php @@ -1,6 +1,8 @@ #!/usr/bin/env php loadModel('sonarqube'); - $sonarqubeID = 2; -list($apiRoot, $header) = $sonarqube->getApiBase($sonarqubeID); -r($apiRoot) && p() && e('http://192.168.1.161:59001/api/%s'); //通过sonarqubeID,获取SonarQube url和header -$sonarqubeID = 0; -list($apiRoot, $header) = $sonarqube->getApiBase($sonarqubeID); -if(empty($apiRoot)) $result = 'return empty'; -r($result) && p() && e('return empty'); //当sonarqubeID为0时,获取SonarQube url和header \ No newline at end of file +$sonarqube = new sonarqubeTest(); +r($sonarqube->getApiBaseTest($sonarqubeID)) && p() && e('http://192.168.1.161:59001/api/%s'); //通过sonarqubeID,获取SonarQube url和header +r($sonarqube->getApiBaseTest(0)) && p() && e('return empty'); //当sonarqubeID为0时,获取SonarQube url和header diff --git a/test/model/sonarqube/getcachefile.php b/test/model/sonarqube/getcachefile.php index c742096a40..5413013ec7 100644 --- a/test/model/sonarqube/getcachefile.php +++ b/test/model/sonarqube/getcachefile.php @@ -1,6 +1,8 @@ #!/usr/bin/env php loadModel('sonarqube'); - $sonarqubeID = 2; $projectKey = 'unit_test'; -$result = $sonarqube->getCacheFile($sonarqubeID, $projectKey); -r(strPos($result, '/' . $sonarqubeID . '-' ) !== false) && p('') && e(1); //使用正确的sonarqubeID,项目key获取缓存文件 + +$sonarqube = new sonarqubeTest(); +r($sonarqube->getCacheFileTest($sonarqubeID, $projectKey)) && p('') && e(1); //使用正确的sonarqubeID,项目key获取缓存文件