* Edit four sonarqube method
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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权限
|
||||
|
||||
@@ -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项目
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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获取缓存文件
|
||||
|
||||
Reference in New Issue
Block a user