* Edit four sonarqube method

This commit is contained in:
zenggang
2022-02-25 08:21:43 +00:00
parent 7316d1ebe2
commit eccde2060a
5 changed files with 81 additions and 50 deletions
+51
View File
@@ -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;
}
}
+9 -13
View File
@@ -1,6 +1,8 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/sonarqube.class.php';
su('admin');
/**
@@ -14,18 +16,12 @@ pid=1
*/
$sonarqube = $tester->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权限
+11 -25
View File
@@ -1,6 +1,8 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/sonarqube.class.php';
su('admin');
/**
@@ -15,31 +17,15 @@ pid=1
*/
$sonarqube = $tester->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项目
+5 -8
View File
@@ -1,6 +1,8 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/sonarqube.class.php';
su('admin');
/**
@@ -13,13 +15,8 @@ pid=1
*/
$sonarqube = $tester->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
$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
+5 -4
View File
@@ -1,6 +1,8 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/sonarqube.class.php';
su('admin');
/**
@@ -12,9 +14,8 @@ pid=1
*/
$sonarqube = $tester->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获取缓存文件