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
|
<?php
|
||||||
|
namespace Shaarli;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Shaarli\Config\ConfigManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shaarli (application) utilities
|
* Shaarli (application) utilities
|
||||||
*/
|
*/
|
||||||
|
@ -51,7 +56,7 @@ public static function getVersion($remote, $timeout = 2)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (! is_file($remote)) {
|
if (!is_file($remote)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$data = file_get_contents($remote);
|
$data = file_get_contents($remote);
|
||||||
|
@ -97,7 +102,7 @@ public static function checkUpdate(
|
||||||
// Do not check versions for visitors
|
// Do not check versions for visitors
|
||||||
// Do not check if the user doesn't want to
|
// Do not check if the user doesn't want to
|
||||||
// Do not check with dev version
|
// Do not check with dev version
|
||||||
if (! $isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') {
|
if (!$isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +116,7 @@ public static function checkUpdate(
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! in_array($branch, self::$GIT_BRANCHES)) {
|
if (!in_array($branch, self::$GIT_BRANCHES)) {
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
'Invalid branch selected for updates: "' . $branch . '"'
|
'Invalid branch selected for updates: "' . $branch . '"'
|
||||||
);
|
);
|
||||||
|
@ -123,7 +128,7 @@ public static function checkUpdate(
|
||||||
self::$GIT_URL . '/' . $branch . '/' . self::$VERSION_FILE
|
self::$GIT_URL . '/' . $branch . '/' . self::$VERSION_FILE
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! $latestVersion) {
|
if (!$latestVersion) {
|
||||||
// Only update the file's modification date
|
// Only update the file's modification date
|
||||||
file_put_contents($updateFile, $currentVersion);
|
file_put_contents($updateFile, $currentVersion);
|
||||||
return false;
|
return false;
|
||||||
|
@ -152,9 +157,9 @@ public static function checkPHPVersion($minVersion, $curVersion)
|
||||||
if (version_compare($curVersion, $minVersion) < 0) {
|
if (version_compare($curVersion, $minVersion) < 0) {
|
||||||
$msg = t(
|
$msg = t(
|
||||||
'Your PHP version is obsolete!'
|
'Your PHP version is obsolete!'
|
||||||
. ' Shaarli requires at least PHP %s, and thus cannot run.'
|
. ' Shaarli requires at least PHP %s, and thus cannot run.'
|
||||||
. ' Your PHP version has known security vulnerabilities and should be'
|
. ' Your PHP version has known security vulnerabilities and should be'
|
||||||
. ' updated as soon as possible.'
|
. ' updated as soon as possible.'
|
||||||
);
|
);
|
||||||
throw new Exception(sprintf($msg, $minVersion));
|
throw new Exception(sprintf($msg, $minVersion));
|
||||||
}
|
}
|
||||||
|
@ -174,50 +179,50 @@ public static function checkResourcePermissions($conf)
|
||||||
|
|
||||||
// Check script and template directories are readable
|
// Check script and template directories are readable
|
||||||
foreach (array(
|
foreach (array(
|
||||||
'application',
|
'application',
|
||||||
'inc',
|
'inc',
|
||||||
'plugins',
|
'plugins',
|
||||||
$rainTplDir,
|
$rainTplDir,
|
||||||
$rainTplDir.'/'.$conf->get('resource.theme'),
|
$rainTplDir . '/' . $conf->get('resource.theme'),
|
||||||
) as $path) {
|
) as $path) {
|
||||||
if (! is_readable(realpath($path))) {
|
if (!is_readable(realpath($path))) {
|
||||||
$errors[] = '"'.$path.'" '. t('directory is not readable');
|
$errors[] = '"' . $path . '" ' . t('directory is not readable');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check cache and data directories are readable and writable
|
// Check cache and data directories are readable and writable
|
||||||
foreach (array(
|
foreach (array(
|
||||||
$conf->get('resource.thumbnails_cache'),
|
$conf->get('resource.thumbnails_cache'),
|
||||||
$conf->get('resource.data_dir'),
|
$conf->get('resource.data_dir'),
|
||||||
$conf->get('resource.page_cache'),
|
$conf->get('resource.page_cache'),
|
||||||
$conf->get('resource.raintpl_tmp'),
|
$conf->get('resource.raintpl_tmp'),
|
||||||
) as $path) {
|
) as $path) {
|
||||||
if (! is_readable(realpath($path))) {
|
if (!is_readable(realpath($path))) {
|
||||||
$errors[] = '"'.$path.'" '. t('directory is not readable');
|
$errors[] = '"' . $path . '" ' . t('directory is not readable');
|
||||||
}
|
}
|
||||||
if (! is_writable(realpath($path))) {
|
if (!is_writable(realpath($path))) {
|
||||||
$errors[] = '"'.$path.'" '. t('directory is not writable');
|
$errors[] = '"' . $path . '" ' . t('directory is not writable');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check configuration files are readable and writable
|
// Check configuration files are readable and writable
|
||||||
foreach (array(
|
foreach (array(
|
||||||
$conf->getConfigFileExt(),
|
$conf->getConfigFileExt(),
|
||||||
$conf->get('resource.datastore'),
|
$conf->get('resource.datastore'),
|
||||||
$conf->get('resource.ban_file'),
|
$conf->get('resource.ban_file'),
|
||||||
$conf->get('resource.log'),
|
$conf->get('resource.log'),
|
||||||
$conf->get('resource.update_check'),
|
$conf->get('resource.update_check'),
|
||||||
) as $path) {
|
) as $path) {
|
||||||
if (! is_file(realpath($path))) {
|
if (!is_file(realpath($path))) {
|
||||||
# the file may not exist yet
|
# the file may not exist yet
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_readable(realpath($path))) {
|
if (!is_readable(realpath($path))) {
|
||||||
$errors[] = '"'.$path.'" '. t('file is not readable');
|
$errors[] = '"' . $path . '" ' . t('file is not readable');
|
||||||
}
|
}
|
||||||
if (! is_writable(realpath($path))) {
|
if (!is_writable(realpath($path))) {
|
||||||
$errors[] = '"'.$path.'" '. t('file is not writable');
|
$errors[] = '"' . $path . '" ' . t('file is not writable');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace Shaarli\Render;
|
namespace Shaarli\Render;
|
||||||
|
|
||||||
use ApplicationUtils;
|
use Shaarli\ApplicationUtils;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Shaarli\Bookmark\LinkDB;
|
use Shaarli\Bookmark\LinkDB;
|
||||||
use RainTPL;
|
use RainTPL;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace Shaarli\Updater;
|
namespace Shaarli\Updater;
|
||||||
|
|
||||||
use ApplicationUtils;
|
use Shaarli\ApplicationUtils;
|
||||||
use Exception;
|
use Exception;
|
||||||
use RainTPL;
|
use RainTPL;
|
||||||
use ReflectionClass;
|
use ReflectionClass;
|
||||||
|
|
|
@ -56,7 +56,6 @@
|
||||||
require_once __DIR__ . '/vendor/autoload.php';
|
require_once __DIR__ . '/vendor/autoload.php';
|
||||||
|
|
||||||
// Shaarli library
|
// Shaarli library
|
||||||
require_once 'application/ApplicationUtils.php';
|
|
||||||
require_once 'application/bookmark/LinkUtils.php';
|
require_once 'application/bookmark/LinkUtils.php';
|
||||||
require_once 'application/config/ConfigPlugin.php';
|
require_once 'application/config/ConfigPlugin.php';
|
||||||
require_once 'application/feed/Cache.php';
|
require_once 'application/feed/Cache.php';
|
||||||
|
@ -71,6 +70,7 @@
|
||||||
require_once 'application/PluginManager.php';
|
require_once 'application/PluginManager.php';
|
||||||
require_once 'application/Router.php';
|
require_once 'application/Router.php';
|
||||||
|
|
||||||
|
use \Shaarli\ApplicationUtils;
|
||||||
use \Shaarli\Bookmark\Exception\LinkNotFoundException;
|
use \Shaarli\Bookmark\Exception\LinkNotFoundException;
|
||||||
use \Shaarli\Bookmark\LinkDB;
|
use \Shaarli\Bookmark\LinkDB;
|
||||||
use \Shaarli\Config\ConfigManager;
|
use \Shaarli\Config\ConfigManager;
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
use \Shaarli\Security\LoginManager;
|
use \Shaarli\Security\LoginManager;
|
||||||
use \Shaarli\Security\SessionManager;
|
use \Shaarli\Security\SessionManager;
|
||||||
use \Shaarli\Thumbnailer;
|
use \Shaarli\Thumbnailer;
|
||||||
use Shaarli\Updater\Updater;
|
use \Shaarli\Updater\Updater;
|
||||||
|
|
||||||
// Ensure the PHP version is supported
|
// Ensure the PHP version is supported
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1,33 +1,14 @@
|
||||||
<?php
|
<?php
|
||||||
|
namespace Shaarli;
|
||||||
|
|
||||||
use Shaarli\Config\ConfigManager;
|
use Shaarli\Config\ConfigManager;
|
||||||
|
|
||||||
/**
|
require_once 'tests/utils/FakeApplicationUtils.php';
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unitary tests for Shaarli utilities
|
* 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 $testUpdateFile = 'sandbox/update.txt';
|
||||||
protected static $testVersion = '0.5.0';
|
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