]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/ApplicationUtilsTest.php
Tag sort - UT + comment + fix filter and visibility
[github/shaarli/Shaarli.git] / tests / ApplicationUtilsTest.php
index c39649e81876ca51d518be966f4df639a79d26d0..ff4c9e17944be6de5fa9e53f9574eb1baac5c665 100644 (file)
@@ -1,9 +1,10 @@
 <?php
+use Shaarli\Config\ConfigManager;
+
 /**
  * ApplicationUtils' tests
  */
 
-require_once 'application/config/ConfigManager.php';
 require_once 'application/ApplicationUtils.php';
 
 /**
@@ -16,7 +17,7 @@ class FakeApplicationUtils extends ApplicationUtils
     /**
      * Toggle HTTP requests, allow overriding the version code
      */
-    public static function getLatestGitVersionCode($url, $timeout=0)
+    public static function getVersion($url, $timeout=0)
     {
         return self::$VERSION_CODE;
     }
@@ -43,18 +44,28 @@ 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',
                 $testTimeout
@@ -62,23 +73,35 @@ class ApplicationUtilsTest extends PHPUnit_Framework_TestCase
         );
         $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 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 testGetLatestGitVersionCodeInvalidUrl()
+    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 +356,13 @@ class ApplicationUtilsTest extends PHPUnit_Framework_TestCase
     }
 
     /**
-     * Test getThemes() with existing theme directories.
-     */
-    public function testGetThemes()
-    {
-        $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.
+     * Check update with 'dev' as curent version (master branch).
+     * It should always return false.
      */
-    public function testGetThemesInvalid()
+    public function testCheckUpdateDev()
     {
-        $this->assertEquals([], ApplicationUtils::getThemes('nope'));
+        $this->assertFalse(
+            ApplicationUtils::checkUpdate('dev', self::$testUpdateFile, 100, true, true)
+        );
     }
 }