]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
namespacing: \Shaarli\Updater
authorVirtualTam <virtualtam@flibidi.net>
Mon, 3 Dec 2018 22:49:20 +0000 (23:49 +0100)
committerVirtualTam <virtualtam@flibidi.net>
Sat, 12 Jan 2019 22:11:19 +0000 (23:11 +0100)
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
application/config/ConfigPhp.php
application/updater/Updater.php [moved from application/Updater.php with 82% similarity]
application/updater/UpdaterUtils.php [new file with mode: 0644]
application/updater/exception/UpdaterException.php [new file with mode: 0644]
composer.json
index.php
tests/updater/DummyUpdater.php [moved from tests/Updater/DummyUpdater.php with 88% similarity]
tests/updater/UpdaterTest.php [moved from tests/Updater/UpdaterTest.php with 97% similarity]
tests/utils/config/configPhp.php

index 9ed5d31fec0ab36e09a490c77c52952c1eb74db8..cad3459462b2f396039ddd8c085794fe555114be 100644 (file)
@@ -27,7 +27,7 @@ class ConfigPhp implements ConfigIO
     /**
      * Map legacy config keys with the new ones.
      * If ConfigPhp is used, getting <newkey> will actually look for <legacykey>.
-     * The Updater will use this array to transform keys when switching to JSON.
+     * The updater will use this array to transform keys when switching to JSON.
      *
      * @var array current key => legacy key.
      */
similarity index 82%
rename from application/Updater.php
rename to application/updater/Updater.php
index ca05ecc2fca49913e3675cebe979f749308b98f9..55251a30bb732405b32cbf6474054a5853bbd99f 100644 (file)
@@ -1,15 +1,24 @@
 <?php
 
+namespace Shaarli\Updater;
+
+use ApplicationUtils;
+use Exception;
+use RainTPL;
+use ReflectionClass;
+use ReflectionException;
+use ReflectionMethod;
 use Shaarli\Bookmark\LinkDB;
 use Shaarli\Bookmark\LinkFilter;
 use Shaarli\Config\ConfigJson;
-use Shaarli\Config\ConfigPhp;
 use Shaarli\Config\ConfigManager;
+use Shaarli\Config\ConfigPhp;
 use Shaarli\Exceptions\IOException;
 use Shaarli\Thumbnailer;
+use Shaarli\Updater\Exception\UpdaterException;
 
 /**
- * Class Updater.
+ * Class updater.
  * Used to update stuff when a new Shaarli's version is reached.
  * Update methods are ran only once, and the stored in a JSON file.
  */
@@ -87,12 +96,12 @@ class Updater
         }
 
         if ($this->methods === null) {
-            throw new UpdaterException(t('Couldn\'t retrieve Updater class methods.'));
+            throw new UpdaterException(t('Couldn\'t retrieve updater class methods.'));
         }
 
         foreach ($this->methods as $method) {
             // Not an update method or already done, pass.
-            if (! startsWith($method->getName(), 'updateMethod')
+            if (!startsWith($method->getName(), 'updateMethod')
                 || in_array($method->getName(), $this->doneUpdates)
             ) {
                 continue;
@@ -143,7 +152,7 @@ class Updater
                 }
             }
             $this->conf->write($this->isLoggedIn);
-            unlink($this->conf->get('resource.data_dir').'/options.php');
+            unlink($this->conf->get('resource.data_dir') . '/options.php');
         }
 
         return true;
@@ -178,10 +187,10 @@ class Updater
         $subConfig = array('config', 'plugins');
         foreach ($subConfig as $sub) {
             foreach ($oldConfig[$sub] as $key => $value) {
-                if (isset($legacyMap[$sub .'.'. $key])) {
-                    $configKey = $legacyMap[$sub .'.'. $key];
+                if (isset($legacyMap[$sub . '.' . $key])) {
+                    $configKey = $legacyMap[$sub . '.' . $key];
                 } else {
-                    $configKey = $sub .'.'. $key;
+                    $configKey = $sub . '.' . $key;
                 }
                 $this->conf->set($configKey, $value);
             }
@@ -237,7 +246,7 @@ class Updater
             return true;
         }
 
-        $save = $this->conf->get('resource.data_dir') .'/datastore.'. date('YmdHis') .'.php';
+        $save = $this->conf->get('resource.data_dir') . '/datastore.' . date('YmdHis') . '.php';
         copy($this->conf->get('resource.datastore'), $save);
 
         $links = array();
@@ -311,7 +320,7 @@ class Updater
         // We run the update only if this folder still contains the template files.
         $tplDir = $this->conf->get('resource.raintpl_tpl');
         $tplFile = $tplDir . '/linklist.html';
-        if (! file_exists($tplFile)) {
+        if (!file_exists($tplFile)) {
             return true;
         }
 
@@ -335,7 +344,7 @@ class Updater
      */
     public function updateMethodMoveUserCss()
     {
-        if (! is_file('inc/user.css')) {
+        if (!is_file('inc/user.css')) {
             return true;
         }
 
@@ -371,11 +380,11 @@ class Updater
      */
     public function updateMethodPiwikUrl()
     {
-        if (! $this->conf->exists('plugins.PIWIK_URL') || startsWith($this->conf->get('plugins.PIWIK_URL'), 'http')) {
+        if (!$this->conf->exists('plugins.PIWIK_URL') || startsWith($this->conf->get('plugins.PIWIK_URL'), 'http')) {
             return true;
         }
 
-        $this->conf->set('plugins.PIWIK_URL', 'http://'. $this->conf->get('plugins.PIWIK_URL'));
+        $this->conf->set('plugins.PIWIK_URL', 'http://' . $this->conf->get('plugins.PIWIK_URL'));
         $this->conf->write($this->isLoggedIn);
 
         return true;
@@ -485,11 +494,11 @@ class Updater
             return true;
         }
 
-        if (! $this->conf->exists('general.download_max_size')) {
-            $this->conf->set('general.download_max_size', 1024*1024*4);
+        if (!$this->conf->exists('general.download_max_size')) {
+            $this->conf->set('general.download_max_size', 1024 * 1024 * 4);
         }
 
-        if (! $this->conf->exists('general.download_timeout')) {
+        if (!$this->conf->exists('general.download_timeout')) {
             $this->conf->set('general.download_timeout', 30);
         }
 
@@ -542,96 +551,3 @@ class Updater
         return true;
     }
 }
-
-/**
- * Class UpdaterException.
- */
-class UpdaterException extends Exception
-{
-    /**
-     * @var string Method where the error occurred.
-     */
-    protected $method;
-
-    /**
-     * @var Exception The parent exception.
-     */
-    protected $previous;
-
-    /**
-     * Constructor.
-     *
-     * @param string         $message  Force the error message if set.
-     * @param string         $method   Method where the error occurred.
-     * @param Exception|bool $previous Parent exception.
-     */
-    public function __construct($message = '', $method = '', $previous = false)
-    {
-        $this->method = $method;
-        $this->previous = $previous;
-        $this->message = $this->buildMessage($message);
-    }
-
-    /**
-     * Build the exception error message.
-     *
-     * @param string $message Optional given error message.
-     *
-     * @return string The built error message.
-     */
-    private function buildMessage($message)
-    {
-        $out = '';
-        if (! empty($message)) {
-            $out .= $message . PHP_EOL;
-        }
-
-        if (! empty($this->method)) {
-            $out .= t('An error occurred while running the update ') . $this->method . PHP_EOL;
-        }
-
-        if (! empty($this->previous)) {
-            $out .= '  '. $this->previous->getMessage();
-        }
-
-        return $out;
-    }
-}
-
-/**
- * Read the updates file, and return already done updates.
- *
- * @param string $updatesFilepath Updates file path.
- *
- * @return array Already done update methods.
- */
-function read_updates_file($updatesFilepath)
-{
-    if (! empty($updatesFilepath) && is_file($updatesFilepath)) {
-        $content = file_get_contents($updatesFilepath);
-        if (! empty($content)) {
-            return explode(';', $content);
-        }
-    }
-    return array();
-}
-
-/**
- * Write updates file.
- *
- * @param string $updatesFilepath Updates file path.
- * @param array  $updates         Updates array to write.
- *
- * @throws Exception Couldn't write version number.
- */
-function write_updates_file($updatesFilepath, $updates)
-{
-    if (empty($updatesFilepath)) {
-        throw new Exception(t('Updates file path is not set, can\'t write updates.'));
-    }
-
-    $res = file_put_contents($updatesFilepath, implode(';', $updates));
-    if ($res === false) {
-        throw new Exception(t('Unable to write updates in '. $updatesFilepath . '.'));
-    }
-}
diff --git a/application/updater/UpdaterUtils.php b/application/updater/UpdaterUtils.php
new file mode 100644 (file)
index 0000000..34d4f42
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * Read the updates file, and return already done updates.
+ *
+ * @param string $updatesFilepath Updates file path.
+ *
+ * @return array Already done update methods.
+ */
+function read_updates_file($updatesFilepath)
+{
+    if (! empty($updatesFilepath) && is_file($updatesFilepath)) {
+        $content = file_get_contents($updatesFilepath);
+        if (! empty($content)) {
+            return explode(';', $content);
+        }
+    }
+    return array();
+}
+
+/**
+ * Write updates file.
+ *
+ * @param string $updatesFilepath Updates file path.
+ * @param array  $updates         Updates array to write.
+ *
+ * @throws Exception Couldn't write version number.
+ */
+function write_updates_file($updatesFilepath, $updates)
+{
+    if (empty($updatesFilepath)) {
+        throw new Exception(t('Updates file path is not set, can\'t write updates.'));
+    }
+
+    $res = file_put_contents($updatesFilepath, implode(';', $updates));
+    if ($res === false) {
+        throw new Exception(t('Unable to write updates in '. $updatesFilepath . '.'));
+    }
+}
diff --git a/application/updater/exception/UpdaterException.php b/application/updater/exception/UpdaterException.php
new file mode 100644 (file)
index 0000000..20acecc
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+
+namespace Shaarli\Updater\Exception;
+
+use Exception;
+
+/**
+ * Class UpdaterException.
+ */
+class UpdaterException extends Exception
+{
+    /**
+     * @var string Method where the error occurred.
+     */
+    protected $method;
+
+    /**
+     * @var Exception The parent exception.
+     */
+    protected $previous;
+
+    /**
+     * Constructor.
+     *
+     * @param string         $message  Force the error message if set.
+     * @param string         $method   Method where the error occurred.
+     * @param Exception|bool $previous Parent exception.
+     */
+    public function __construct($message = '', $method = '', $previous = false)
+    {
+        $this->method = $method;
+        $this->previous = $previous;
+        $this->message = $this->buildMessage($message);
+    }
+
+    /**
+     * Build the exception error message.
+     *
+     * @param string $message Optional given error message.
+     *
+     * @return string The built error message.
+     */
+    private function buildMessage($message)
+    {
+        $out = '';
+        if (!empty($message)) {
+            $out .= $message . PHP_EOL;
+        }
+
+        if (!empty($this->method)) {
+            $out .= t('An error occurred while running the update ') . $this->method . PHP_EOL;
+        }
+
+        if (!empty($this->previous)) {
+            $out .= '  ' . $this->previous->getMessage();
+        }
+
+        return $out;
+    }
+}
index 4c14e79493dc5937ae2fc112a0733c7326f58984..af7634729845223d74e0d813c3c7e3d92d6a3781 100644 (file)
@@ -46,7 +46,9 @@
             "Shaarli\\Feed\\": "application/feed",
             "Shaarli\\Http\\": "application/http",
             "Shaarli\\Render\\": "application/render",
-            "Shaarli\\Security\\": "application/security"
+            "Shaarli\\Security\\": "application/security",
+            "Shaarli\\Updater\\": "application/updater",
+            "Shaarli\\Updater\\Exception\\": "application/updater/exception"
         }
     }
 }
index 146b44570ddf8487a4af39cdcef96fc566c6c603..ce0373e1206f400a9bb36dde05e53f8c1aa662a9 100644 (file)
--- a/index.php
+++ b/index.php
@@ -62,6 +62,7 @@ require_once 'application/config/ConfigPlugin.php';
 require_once 'application/feed/Cache.php';
 require_once 'application/http/HttpUtils.php';
 require_once 'application/http/UrlUtils.php';
+require_once 'application/updater/UpdaterUtils.php';
 require_once 'application/FileUtils.php';
 require_once 'application/History.php';
 require_once 'application/NetscapeBookmarkUtils.php';
@@ -69,7 +70,6 @@ require_once 'application/TimeZone.php';
 require_once 'application/Utils.php';
 require_once 'application/PluginManager.php';
 require_once 'application/Router.php';
-require_once 'application/Updater.php';
 
 use \Shaarli\Bookmark\Exception\LinkNotFoundException;
 use \Shaarli\Bookmark\LinkDB;
@@ -83,6 +83,7 @@ use \Shaarli\Render\ThemeUtils;
 use \Shaarli\Security\LoginManager;
 use \Shaarli\Security\SessionManager;
 use \Shaarli\Thumbnailer;
+use Shaarli\Updater\Updater;
 
 // Ensure the PHP version is supported
 try {
similarity index 88%
rename from tests/Updater/DummyUpdater.php
rename to tests/updater/DummyUpdater.php
index 3c74b4ffda34388e1d83c15d9d64e0e6cbbdff45..9e866f1f1c60fab1f7551885378d91ffadcdc4a4 100644 (file)
@@ -1,12 +1,15 @@
 <?php
+namespace Shaarli\Updater;
 
+use Exception;
+use ReflectionClass;
+use ReflectionMethod;
 use Shaarli\Bookmark\LinkDB;
-
-require_once 'application/Updater.php';
+use Shaarli\Config\ConfigManager;
 
 /**
  * Class DummyUpdater.
- * Extends Updater to add update method designed for unit tests.
+ * Extends updater to add update method designed for unit tests.
  */
 class DummyUpdater extends Updater
 {
similarity index 97%
rename from tests/Updater/UpdaterTest.php
rename to tests/updater/UpdaterTest.php
index f910e05499168d174266853d7b584320a3827916..d7df59637395ddf9a7d4760eecefa5db4a32a97e 100644 (file)
@@ -1,19 +1,24 @@
 <?php
+namespace Shaarli\Updater;
 
+use DateTime;
+use Exception;
 use Shaarli\Bookmark\LinkDB;
 use Shaarli\Config\ConfigJson;
 use Shaarli\Config\ConfigManager;
 use Shaarli\Config\ConfigPhp;
 use Shaarli\Thumbnailer;
 
-require_once 'tests/Updater/DummyUpdater.php';
+require_once 'application/updater/UpdaterUtils.php';
+require_once 'tests/updater/DummyUpdater.php';
+require_once 'tests/utils/ReferenceLinkDB.php';
 require_once 'inc/rain.tpl.class.php';
 
 /**
  * Class UpdaterTest.
- * Runs unit tests against the Updater class.
+ * Runs unit tests against the updater class.
  */
-class UpdaterTest extends PHPUnit_Framework_TestCase
+class UpdaterTest extends \PHPUnit\Framework\TestCase
 {
     /**
      * @var string Path to test datastore.
@@ -155,7 +160,7 @@ class UpdaterTest extends PHPUnit_Framework_TestCase
     /**
      * Test Update failed.
      *
-     * @expectedException UpdaterException
+     * @expectedException \Exception
      */
     public function testUpdateFailed()
     {
@@ -181,17 +186,17 @@ class UpdaterTest extends PHPUnit_Framework_TestCase
         $this->conf->setConfigFile('tests/utils/config/configPhp');
         $this->conf->reset();
 
-        $optionsFile = 'tests/Updater/options.php';
+        $optionsFile = 'tests/updater/options.php';
         $options = '<?php
 $GLOBALS[\'privateLinkByDefault\'] = true;';
         file_put_contents($optionsFile, $options);
 
         // tmp config file.
-        $this->conf->setConfigFile('tests/Updater/config');
+        $this->conf->setConfigFile('tests/updater/config');
 
         // merge configs
         $updater = new Updater(array(), array(), $this->conf, true);
-        // This writes a new config file in tests/Updater/config.php
+        // This writes a new config file in tests/updater/config.php
         $updater->updateMethodMergeDeprecatedConfigFile();
 
         // make sure updated field is changed
@@ -218,7 +223,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
      */
     public function testRenameDashTags()
     {
-        $refDB = new ReferenceLinkDB();
+        $refDB = new \ReferenceLinkDB();
         $refDB->write(self::$testDatastore);
         $linkDB = new LinkDB(self::$testDatastore, true, false);
 
@@ -364,7 +369,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
                 'private' => true,
             ),
         );
-        $refDB = new ReferenceLinkDB();
+        $refDB = new \ReferenceLinkDB();
         $refDB->setLinks($links);
         $refDB->write(self::$testDatastore);
         $linkDB = new LinkDB(self::$testDatastore, true, false);
@@ -428,7 +433,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
      */
     public function testDatastoreIdsNothingToDo()
     {
-        $refDB = new ReferenceLinkDB();
+        $refDB = new \ReferenceLinkDB();
         $refDB->write(self::$testDatastore);
         $linkDB = new LinkDB(self::$testDatastore, true, false);
 
@@ -765,7 +770,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
             1 => ['id' => 1] + $blank,
             2 => ['id' => 2] + $blank,
         ];
-        $refDB = new ReferenceLinkDB();
+        $refDB = new \ReferenceLinkDB();
         $refDB->setLinks($links);
         $refDB->write(self::$testDatastore);
         $linkDB = new LinkDB(self::$testDatastore, true, false);
@@ -796,7 +801,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
             1 => ['id' => 1, 'sticky' => true] + $blank,
             2 => ['id' => 2] + $blank,
         ];
-        $refDB = new ReferenceLinkDB();
+        $refDB = new \ReferenceLinkDB();
         $refDB->setLinks($links);
         $refDB->write(self::$testDatastore);
         $linkDB = new LinkDB(self::$testDatastore, true, false);
index 34b11fcddf1a76ed9a1ef3f926e999ce9ab70cd8..7dc81e2289504286fa69abeeea9d20d5c538a448 100644 (file)
@@ -8,7 +8,7 @@ $GLOBALS['titleLink'] = 'titleLink';
 $GLOBALS['redirector'] = 'lala';
 $GLOBALS['disablesessionprotection'] = false;
 $GLOBALS['privateLinkByDefault'] = false;
-$GLOBALS['config']['DATADIR'] = 'tests/Updater';
+$GLOBALS['config']['DATADIR'] = 'tests/updater';
 $GLOBALS['config']['PAGECACHE'] = 'sandbox/pagecache';
 $GLOBALS['config']['DATASTORE'] = 'data/datastore.php';
 $GLOBALS['plugins']['WALLABAG_VERSION'] = '1';