adding tests for YOURLS functionality

This commit is contained in:
El RIDO
2022-10-23 13:09:54 +02:00
parent 4bd5ef9cda
commit 78e915e049
6 changed files with 135 additions and 22 deletions

View File

@@ -383,12 +383,12 @@ class Controller
$page = new View;
$page->assign('CSPHEADER', $metacspheader);
$page->assign('ERROR', I18n::_($this->_error));
$page->assign('NAME', $this->_conf->getKey('name'));
if ($this->_request->getOperation() === 'yourlsproxy') {
$page->assign('SHORTURL', $this->_status);
$page->draw('yourlsproxy');
return;
}
$page->assign('NAME', $this->_conf->getKey('name'));
$page->assign('BASEPATH', I18n::_($this->_conf->getKey('basepath')));
$page->assign('STATUS', I18n::_($this->_status));
$page->assign('VERSION', self::VERSION);

View File

@@ -137,8 +137,7 @@ class Request
} elseif (array_key_exists('jsonld', $this->_params) && !empty($this->_params['jsonld'])) {
$this->_operation = 'jsonld';
} elseif (array_key_exists('link', $this->_params) && !empty($this->_params['link'])) {
$request_url = filter_var($_SERVER['REQUEST_URI'], FILTER_SANITIZE_URL);
if (strpos($request_url, '/shortenviayourls?link=') !== false) {
if (strpos($this->getRequestUri(), '/shortenviayourls') !== false) {
$this->_operation = 'yourlsproxy';
}
}

View File

@@ -53,8 +53,14 @@ class YourlsProxy
return;
}
$yourls_api_url = $conf->getKey('apiurl', 'yourls');
if (empty($yourls_api_url)) {
$this->_error = 'Error calling YOURLS. Probably a configuration issue, like wrong or missing "apiurl" or "signature".';
return;
}
$data = file_get_contents(
$conf->getKey('apiurl', 'yourls'), false, stream_context_create(
$yourls_api_url, false, stream_context_create(
array(
'http' => array(
'method' => 'POST',
@@ -71,23 +77,19 @@ class YourlsProxy
)
)
);
if ($data === false || !is_string($data)) {
$this->_error = 'Error calling YOURLS. Probably a configuration issue, like wrong or missing "apiurl" or "signature".';
return;
}
try {
$data = Json::decode($data);
} catch (Exception $e) {
$this->_error = $e->getMessage();
$this->_error = 'Error calling YOURLS. Probably a configuration issue, like wrong or missing "apiurl" or "signature".';
error_log('Error calling YOURLS: ' . $e->getMessage());
return;
}
if (
!is_null($data) &&
array_key_exists('statusCode', $data) &&
array_key_exists('shorturl', $data) &&
$data['statusCode'] == 200
$data['statusCode'] == 200 &&
array_key_exists('shorturl', $data)
) {
$this->_url = $data['shorturl'];
} else {