]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/ApplicationUtilsTest.php
namespacing: \Shaarli\ApplicationUtils
[github/shaarli/Shaarli.git] / tests / ApplicationUtilsTest.php
index c39649e81876ca51d518be966f4df639a79d26d0..82f8804d525867af42fa2345e2bdfd234adb5aae 100644 (file)
@@ -1,32 +1,14 @@
 <?php
-/**
- * ApplicationUtils' tests
- */
-
-require_once 'application/config/ConfigManager.php';
-require_once 'application/ApplicationUtils.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 getLatestGitVersionCode($url, $timeout=0)
-    {
-        return self::$VERSION_CODE;
-    }
-}
+use Shaarli\Config\ConfigManager;
 
+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';
@@ -43,42 +25,64 @@ class ApplicationUtilsTest extends PHPUnit_Framework_TestCase
         }
     }
 
+    /**
+     * Remove test version file if it exists
+     */
+    public function tearDown()
+    {
+        if (is_file('sandbox/version.php')) {
+            unlink('sandbox/version.php');
+        }
+    }
+
     /**
      * Retrieve the latest version code available on Git
      *
      * Expected format: Semantic Versioning - major.minor.patch
      */
-    public function testGetLatestGitVersionCode()
+    public function testGetVersionCode()
     {
         $testTimeout = 10;
 
         $this->assertEquals(
             '0.5.4',
-            ApplicationUtils::getLatestGitVersionCode(
+            ApplicationUtils::getVersion(
                 'https://raw.githubusercontent.com/shaarli/Shaarli/'
-               .'v0.5.4/shaarli_version.php',
+                .'v0.5.4/shaarli_version.php',
                 $testTimeout
             )
         );
         $this->assertRegExp(
             self::$versionPattern,
-            ApplicationUtils::getLatestGitVersionCode(
+            ApplicationUtils::getVersion(
                 'https://raw.githubusercontent.com/shaarli/Shaarli/'
-               .'master/shaarli_version.php',
+                .'latest/shaarli_version.php',
                 $testTimeout
             )
         );
     }
 
     /**
-     * Attempt to retrieve the latest version from an invalid URL
+     * Attempt to retrieve the latest version from an invalid File
      */
-    public function testGetLatestGitVersionCodeInvalidUrl()
+    public function testGetVersionCodeFromFile()
+    {
+        file_put_contents('sandbox/version.php', '<?php /* 1.2.3 */ ?>'. PHP_EOL);
+        $this->assertEquals(
+            '1.2.3',
+            ApplicationUtils::getVersion('sandbox/version.php', 1)
+        );
+    }
+
+    /**
+     * Attempt to retrieve the latest version from an invalid File
+     */
+    public function testGetVersionCodeInvalidFile()
     {
         $oldlog = ini_get('error_log');
         ini_set('error_log', '/dev/null');
         $this->assertFalse(
-            ApplicationUtils::getLatestGitVersionCode('htttp://null.io', 1)
+            ApplicationUtils::getVersion('idontexist', 1)
         );
         ini_set('error_log', $oldlog);
     }
@@ -333,46 +337,13 @@ class ApplicationUtilsTest extends PHPUnit_Framework_TestCase
     }
 
     /**
-     * Test getThemes() with existing theme directories.
+     * Check update with 'dev' as curent version (master branch).
+     * It should always return false.
      */
-    public function testGetThemes()
+    public function testCheckUpdateDev()
     {
-        $themes = ['theme1', 'default', 'Bl1p_- bL0p'];
-        foreach ($themes as $theme) {
-            mkdir('sandbox/tpl/'. $theme, 0777, true);
-        }
-
-        // include a file which should be ignored
-        touch('sandbox/tpl/supertheme');
-
-        $res = ApplicationUtils::getThemes('sandbox/tpl/');
-        foreach ($res as $theme) {
-            $this->assertTrue(in_array($theme, $themes));
-        }
-        $this->assertFalse(in_array('supertheme', $res));
-
-        foreach ($themes as $theme) {
-            rmdir('sandbox/tpl/'. $theme);
-        }
-        unlink('sandbox/tpl/supertheme');
-        rmdir('sandbox/tpl');
-    }
-
-    /**
-     * Test getThemes() without any theme dir.
-     */
-    public function testGetThemesEmpty()
-    {
-        mkdir('sandbox/tpl/', 0777, true);
-        $this->assertEquals([], ApplicationUtils::getThemes('sandbox/tpl/'));
-        rmdir('sandbox/tpl/');
-    }
-
-    /**
-     * Test getThemes() with an invalid path.
-     */
-    public function testGetThemesInvalid()
-    {
-        $this->assertEquals([], ApplicationUtils::getThemes('nope'));
+        $this->assertFalse(
+            ApplicationUtils::checkUpdate('dev', self::$testUpdateFile, 100, true, true)
+        );
     }
 }