namespacing: \Shaarli\ApplicationUtils
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
This commit is contained in:
parent
bcf056c9d9
commit
9778a1551c
6 changed files with 67 additions and 62 deletions
|
@ -1,4 +1,9 @@
|
|||
<?php
|
||||
namespace Shaarli;
|
||||
|
||||
use Exception;
|
||||
use Shaarli\Config\ConfigManager;
|
||||
|
||||
/**
|
||||
* Shaarli (application) utilities
|
||||
*/
|
||||
|
@ -51,7 +56,7 @@ class ApplicationUtils
|
|||
return false;
|
||||
}
|
||||
} else {
|
||||
if (! is_file($remote)) {
|
||||
if (!is_file($remote)) {
|
||||
return false;
|
||||
}
|
||||
$data = file_get_contents($remote);
|
||||
|
@ -97,7 +102,7 @@ class ApplicationUtils
|
|||
// Do not check versions for visitors
|
||||
// Do not check if the user doesn't want to
|
||||
// Do not check with dev version
|
||||
if (! $isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') {
|
||||
if (!$isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -111,7 +116,7 @@ class ApplicationUtils
|
|||
return false;
|
||||
}
|
||||
|
||||
if (! in_array($branch, self::$GIT_BRANCHES)) {
|
||||
if (!in_array($branch, self::$GIT_BRANCHES)) {
|
||||
throw new Exception(
|
||||
'Invalid branch selected for updates: "' . $branch . '"'
|
||||
);
|
||||
|
@ -123,7 +128,7 @@ class ApplicationUtils
|
|||
self::$GIT_URL . '/' . $branch . '/' . self::$VERSION_FILE
|
||||
);
|
||||
|
||||
if (! $latestVersion) {
|
||||
if (!$latestVersion) {
|
||||
// Only update the file's modification date
|
||||
file_put_contents($updateFile, $currentVersion);
|
||||
return false;
|
||||
|
@ -152,9 +157,9 @@ class ApplicationUtils
|
|||
if (version_compare($curVersion, $minVersion) < 0) {
|
||||
$msg = t(
|
||||
'Your PHP version is obsolete!'
|
||||
. ' Shaarli requires at least PHP %s, and thus cannot run.'
|
||||
. ' Your PHP version has known security vulnerabilities and should be'
|
||||
. ' updated as soon as possible.'
|
||||
. ' Shaarli requires at least PHP %s, and thus cannot run.'
|
||||
. ' Your PHP version has known security vulnerabilities and should be'
|
||||
. ' updated as soon as possible.'
|
||||
);
|
||||
throw new Exception(sprintf($msg, $minVersion));
|
||||
}
|
||||
|
@ -174,50 +179,50 @@ class ApplicationUtils
|
|||
|
||||
// Check script and template directories are readable
|
||||
foreach (array(
|
||||
'application',
|
||||
'inc',
|
||||
'plugins',
|
||||
$rainTplDir,
|
||||
$rainTplDir.'/'.$conf->get('resource.theme'),
|
||||
) as $path) {
|
||||
if (! is_readable(realpath($path))) {
|
||||
$errors[] = '"'.$path.'" '. t('directory is not readable');
|
||||
'application',
|
||||
'inc',
|
||||
'plugins',
|
||||
$rainTplDir,
|
||||
$rainTplDir . '/' . $conf->get('resource.theme'),
|
||||
) as $path) {
|
||||
if (!is_readable(realpath($path))) {
|
||||
$errors[] = '"' . $path . '" ' . t('directory is not readable');
|
||||
}
|
||||
}
|
||||
|
||||
// Check cache and data directories are readable and writable
|
||||
foreach (array(
|
||||
$conf->get('resource.thumbnails_cache'),
|
||||
$conf->get('resource.data_dir'),
|
||||
$conf->get('resource.page_cache'),
|
||||
$conf->get('resource.raintpl_tmp'),
|
||||
) as $path) {
|
||||
if (! is_readable(realpath($path))) {
|
||||
$errors[] = '"'.$path.'" '. t('directory is not readable');
|
||||
$conf->get('resource.thumbnails_cache'),
|
||||
$conf->get('resource.data_dir'),
|
||||
$conf->get('resource.page_cache'),
|
||||
$conf->get('resource.raintpl_tmp'),
|
||||
) as $path) {
|
||||
if (!is_readable(realpath($path))) {
|
||||
$errors[] = '"' . $path . '" ' . t('directory is not readable');
|
||||
}
|
||||
if (! is_writable(realpath($path))) {
|
||||
$errors[] = '"'.$path.'" '. t('directory is not writable');
|
||||
if (!is_writable(realpath($path))) {
|
||||
$errors[] = '"' . $path . '" ' . t('directory is not writable');
|
||||
}
|
||||
}
|
||||
|
||||
// Check configuration files are readable and writable
|
||||
foreach (array(
|
||||
$conf->getConfigFileExt(),
|
||||
$conf->get('resource.datastore'),
|
||||
$conf->get('resource.ban_file'),
|
||||
$conf->get('resource.log'),
|
||||
$conf->get('resource.update_check'),
|
||||
) as $path) {
|
||||
if (! is_file(realpath($path))) {
|
||||
$conf->getConfigFileExt(),
|
||||
$conf->get('resource.datastore'),
|
||||
$conf->get('resource.ban_file'),
|
||||
$conf->get('resource.log'),
|
||||
$conf->get('resource.update_check'),
|
||||
) as $path) {
|
||||
if (!is_file(realpath($path))) {
|
||||
# the file may not exist yet
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! is_readable(realpath($path))) {
|
||||
$errors[] = '"'.$path.'" '. t('file is not readable');
|
||||
if (!is_readable(realpath($path))) {
|
||||
$errors[] = '"' . $path . '" ' . t('file is not readable');
|
||||
}
|
||||
if (! is_writable(realpath($path))) {
|
||||
$errors[] = '"'.$path.'" '. t('file is not writable');
|
||||
if (!is_writable(realpath($path))) {
|
||||
$errors[] = '"' . $path . '" ' . t('file is not writable');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace Shaarli\Render;
|
||||
|
||||
use ApplicationUtils;
|
||||
use Shaarli\ApplicationUtils;
|
||||
use Exception;
|
||||
use Shaarli\Bookmark\LinkDB;
|
||||
use RainTPL;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace Shaarli\Updater;
|
||||
|
||||
use ApplicationUtils;
|
||||
use Shaarli\ApplicationUtils;
|
||||
use Exception;
|
||||
use RainTPL;
|
||||
use ReflectionClass;
|
||||
|
|
|
@ -56,7 +56,6 @@ require_once 'inc/rain.tpl.class.php';
|
|||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
// Shaarli library
|
||||
require_once 'application/ApplicationUtils.php';
|
||||
require_once 'application/bookmark/LinkUtils.php';
|
||||
require_once 'application/config/ConfigPlugin.php';
|
||||
require_once 'application/feed/Cache.php';
|
||||
|
@ -71,6 +70,7 @@ require_once 'application/Utils.php';
|
|||
require_once 'application/PluginManager.php';
|
||||
require_once 'application/Router.php';
|
||||
|
||||
use \Shaarli\ApplicationUtils;
|
||||
use \Shaarli\Bookmark\Exception\LinkNotFoundException;
|
||||
use \Shaarli\Bookmark\LinkDB;
|
||||
use \Shaarli\Config\ConfigManager;
|
||||
|
@ -83,7 +83,7 @@ use \Shaarli\Render\ThemeUtils;
|
|||
use \Shaarli\Security\LoginManager;
|
||||
use \Shaarli\Security\SessionManager;
|
||||
use \Shaarli\Thumbnailer;
|
||||
use Shaarli\Updater\Updater;
|
||||
use \Shaarli\Updater\Updater;
|
||||
|
||||
// Ensure the PHP version is supported
|
||||
try {
|
||||
|
|
|
@ -1,33 +1,14 @@
|
|||
<?php
|
||||
namespace Shaarli;
|
||||
|
||||
use Shaarli\Config\ConfigManager;
|
||||
|
||||
/**
|
||||
* ApplicationUtils' tests
|
||||
*/
|
||||
|
||||
require_once 'application/ApplicationUtils.php';
|
||||
|
||||
/**
|
||||
* Fake ApplicationUtils class to avoid HTTP requests
|
||||
*/
|
||||
class FakeApplicationUtils extends ApplicationUtils
|
||||
{
|
||||
public static $VERSION_CODE = '';
|
||||
|
||||
/**
|
||||
* Toggle HTTP requests, allow overriding the version code
|
||||
*/
|
||||
public static function getVersion($url, $timeout = 0)
|
||||
{
|
||||
return self::$VERSION_CODE;
|
||||
}
|
||||
}
|
||||
|
||||
require_once 'tests/utils/FakeApplicationUtils.php';
|
||||
|
||||
/**
|
||||
* Unitary tests for Shaarli utilities
|
||||
*/
|
||||
class ApplicationUtilsTest extends PHPUnit_Framework_TestCase
|
||||
class ApplicationUtilsTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected static $testUpdateFile = 'sandbox/update.txt';
|
||||
protected static $testVersion = '0.5.0';
|
||||
|
|
19
tests/utils/FakeApplicationUtils.php
Normal file
19
tests/utils/FakeApplicationUtils.php
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace Shaarli;
|
||||
|
||||
/**
|
||||
* Fake ApplicationUtils class to avoid HTTP requests
|
||||
*/
|
||||
class FakeApplicationUtils extends ApplicationUtils
|
||||
{
|
||||
public static $VERSION_CODE = '';
|
||||
|
||||
/**
|
||||
* Toggle HTTP requests, allow overriding the version code
|
||||
*/
|
||||
public static function getVersion($url, $timeout = 0)
|
||||
{
|
||||
return self::$VERSION_CODE;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue