]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Unit tests for Router and PluginManager.
authorArthurHoaro <arthur@hoa.ro>
Thu, 16 Jul 2015 11:53:39 +0000 (13:53 +0200)
committerArthurHoaro <arthur@hoa.ro>
Sat, 7 Nov 2015 14:27:22 +0000 (15:27 +0100)
tests/ConfigTest.php [changed mode: 0755->0644]
tests/PluginManagerTest.php [changed mode: 0755->0644]
tests/RouterTest.php [changed mode: 0755->0644]
tests/plugins/test/test.php [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index a239d8b..adebfcc
-<?php\r
-/**\r
- * Config' tests\r
- */\r
-\r
-require_once 'application/Config.php';\r
-\r
-/**\r
- * Unitary tests for Shaarli config related functions\r
- */\r
-class ConfigTest extends PHPUnit_Framework_TestCase\r
-{\r
-    // Configuration input set.\r
-    private static $_configFields;\r
-\r
-    /**\r
-     * Executed before each test.\r
-     */\r
-    public function setUp()\r
-    {\r
-        self::$_configFields = array(\r
-            'login' => 'login',\r
-            'hash' => 'hash',\r
-            'salt' => 'salt',\r
-            'timezone' => 'Europe/Paris',\r
-            'title' => 'title',\r
-            'titleLink' => 'titleLink',\r
-            'redirector' => '',\r
-            'disablesessionprotection' => false,\r
-            'privateLinkByDefault' => false,\r
-            'config' => array(\r
-                'CONFIG_FILE' => 'tests/config.php',\r
-                'DATADIR' => 'tests',\r
-                'config1' => 'config1data',\r
-                'config2' => 'config2data',\r
-            )\r
-        );\r
-    }\r
-\r
-    /**\r
-     * Executed after each test.\r
-     *\r
-     * @return void\r
-     */\r
-    public function tearDown()\r
-    {\r
-        if (is_file(self::$_configFields['config']['CONFIG_FILE'])) {\r
-            unlink(self::$_configFields['config']['CONFIG_FILE']);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Test writeConfig function, valid use case, while being logged in.\r
-     */\r
-    public function testWriteConfig()\r
-    {\r
-        writeConfig(self::$_configFields, true);\r
-\r
-        include self::$_configFields['config']['CONFIG_FILE'];\r
-        $this->assertEquals(self::$_configFields['login'], $GLOBALS['login']);\r
-        $this->assertEquals(self::$_configFields['hash'], $GLOBALS['hash']);\r
-        $this->assertEquals(self::$_configFields['salt'], $GLOBALS['salt']);\r
-        $this->assertEquals(self::$_configFields['timezone'], $GLOBALS['timezone']);\r
-        $this->assertEquals(self::$_configFields['title'], $GLOBALS['title']);\r
-        $this->assertEquals(self::$_configFields['titleLink'], $GLOBALS['titleLink']);\r
-        $this->assertEquals(self::$_configFields['redirector'], $GLOBALS['redirector']);\r
-        $this->assertEquals(self::$_configFields['disablesessionprotection'], $GLOBALS['disablesessionprotection']);\r
-        $this->assertEquals(self::$_configFields['privateLinkByDefault'], $GLOBALS['privateLinkByDefault']);\r
-        $this->assertEquals(self::$_configFields['config']['config1'], $GLOBALS['config']['config1']);\r
-        $this->assertEquals(self::$_configFields['config']['config2'], $GLOBALS['config']['config2']);\r
-    }\r
-\r
-    /**\r
-     * Test writeConfig option while logged in:\r
-     *      1. init fields.\r
-     *      2. update fields, add new sub config, add new root config.\r
-     *      3. rewrite config.\r
-     *      4. check result.\r
-     */\r
-    public function testWriteConfigFieldUpdate()\r
-    {\r
-        writeConfig(self::$_configFields, true);\r
-        self::$_configFields['title'] = 'ok';\r
-        self::$_configFields['config']['config1'] = 'ok';\r
-        self::$_configFields['config']['config_new'] = 'ok';\r
-        self::$_configFields['new'] = 'should not be saved';\r
-        writeConfig(self::$_configFields, true);\r
-\r
-        include self::$_configFields['config']['CONFIG_FILE'];\r
-        $this->assertEquals('ok', $GLOBALS['title']);\r
-        $this->assertEquals('ok', $GLOBALS['config']['config1']);\r
-        $this->assertEquals('ok', $GLOBALS['config']['config_new']);\r
-        $this->assertFalse(isset($GLOBALS['new']));\r
-    }\r
-\r
-    /**\r
-     * Test writeConfig function with an empty array.\r
-     *\r
-     * @expectedException MissingFieldConfigException\r
-     */\r
-    public function testWriteConfigEmpty()\r
-    {\r
-        writeConfig(array(), true);\r
-    }\r
-\r
-    /**\r
-     * Test writeConfig function with a missing mandatory field.\r
-     *\r
-     * @expectedException MissingFieldConfigException\r
-     */\r
-    public function testWriteConfigMissingField()\r
-    {\r
-        unset(self::$_configFields['login']);\r
-        writeConfig(self::$_configFields, true);\r
-    }\r
-\r
-    /**\r
-     * Test writeConfig function while being logged out, and there is no config file existing.\r
-     */\r
-    public function testWriteConfigLoggedOutNoFile()\r
-    {\r
-        writeConfig(self::$_configFields, false);\r
-    }\r
-\r
-    /**\r
-     * Test writeConfig function while being logged out, and a config file already exists.\r
-     *\r
-     * @expectedException UnauthorizedConfigException\r
-     */\r
-    public function testWriteConfigLoggedOutWithFile()\r
-    {\r
-        file_put_contents(self::$_configFields['config']['CONFIG_FILE'], '');\r
-        writeConfig(self::$_configFields, false);\r
-    }\r
-\r
-    /**\r
-     * Test mergeDeprecatedConfig while being logged in:\r
-     *      1. init a config file.\r
-     *      2. init a options.php file with update value.\r
-     *      3. merge.\r
-     *      4. check updated value in config file.\r
-     */\r
-    public function testMergeDeprecatedConfig()\r
-    {\r
-        // init\r
-        writeConfig(self::$_configFields, true);\r
-        $configCopy = self::$_configFields;\r
-        $invert = !$configCopy['privateLinkByDefault'];\r
-        $configCopy['privateLinkByDefault'] = $invert;\r
-\r
-        // Use writeConfig to create a options.php\r
-        $configCopy['config']['CONFIG_FILE'] = 'tests/options.php';\r
-        writeConfig($configCopy, true);\r
-\r
-        $this->assertTrue(is_file($configCopy['config']['CONFIG_FILE']));\r
-\r
-        // merge configs\r
-        mergeDeprecatedConfig(self::$_configFields, true);\r
-\r
-        // make sure updated field is changed\r
-        include self::$_configFields['config']['CONFIG_FILE'];\r
-        $this->assertEquals($invert, $GLOBALS['privateLinkByDefault']);\r
-        $this->assertFalse(is_file($configCopy['config']['CONFIG_FILE']));\r
-    }\r
-\r
-    /**\r
-     * Test mergeDeprecatedConfig while being logged in without options file.\r
-     */\r
-    public function testMergeDeprecatedConfigNoFile()\r
-    {\r
-        writeConfig(self::$_configFields, true);\r
-        mergeDeprecatedConfig(self::$_configFields, true);\r
-\r
-        include self::$_configFields['config']['CONFIG_FILE'];\r
-        $this->assertEquals(self::$_configFields['login'], $GLOBALS['login']);\r
-    }\r
-}\r
+<?php
+/**
+ * Config' tests
+ */
+
+require_once 'application/Config.php';
+
+/**
+ * Unitary tests for Shaarli config related functions
+ */
+class ConfigTest extends PHPUnit_Framework_TestCase
+{
+    // Configuration input set.
+    private static $configFields;
+
+    /**
+     * Executed before each test.
+     */
+    public function setUp()
+    {
+        self::$configFields = array(
+            'login' => 'login',
+            'hash' => 'hash',
+            'salt' => 'salt',
+            'timezone' => 'Europe/Paris',
+            'title' => 'title',
+            'titleLink' => 'titleLink',
+            'redirector' => '',
+            'disablesessionprotection' => false,
+            'privateLinkByDefault' => false,
+            'config' => array(
+                'CONFIG_FILE' => 'tests/config.php',
+                'DATADIR' => 'tests',
+                'config1' => 'config1data',
+                'config2' => 'config2data',
+            )
+        );
+    }
+
+    /**
+     * Executed after each test.
+     *
+     * @return void
+     */
+    public function tearDown()
+    {
+        if (is_file(self::$configFields['config']['CONFIG_FILE'])) {
+            unlink(self::$configFields['config']['CONFIG_FILE']);
+        }
+    }
+
+    /**
+     * Test writeConfig function, valid use case, while being logged in.
+     */
+    public function testWriteConfig()
+    {
+        writeConfig(self::$configFields, true);
+
+        include self::$configFields['config']['CONFIG_FILE'];
+        $this->assertEquals(self::$configFields['login'], $GLOBALS['login']);
+        $this->assertEquals(self::$configFields['hash'], $GLOBALS['hash']);
+        $this->assertEquals(self::$configFields['salt'], $GLOBALS['salt']);
+        $this->assertEquals(self::$configFields['timezone'], $GLOBALS['timezone']);
+        $this->assertEquals(self::$configFields['title'], $GLOBALS['title']);
+        $this->assertEquals(self::$configFields['titleLink'], $GLOBALS['titleLink']);
+        $this->assertEquals(self::$configFields['redirector'], $GLOBALS['redirector']);
+        $this->assertEquals(self::$configFields['disablesessionprotection'], $GLOBALS['disablesessionprotection']);
+        $this->assertEquals(self::$configFields['privateLinkByDefault'], $GLOBALS['privateLinkByDefault']);
+        $this->assertEquals(self::$configFields['config']['config1'], $GLOBALS['config']['config1']);
+        $this->assertEquals(self::$configFields['config']['config2'], $GLOBALS['config']['config2']);
+    }
+
+    /**
+     * Test writeConfig option while logged in:
+     *      1. init fields.
+     *      2. update fields, add new sub config, add new root config.
+     *      3. rewrite config.
+     *      4. check result.
+     */
+    public function testWriteConfigFieldUpdate()
+    {
+        writeConfig(self::$configFields, true);
+        self::$configFields['title'] = 'ok';
+        self::$configFields['config']['config1'] = 'ok';
+        self::$configFields['config']['config_new'] = 'ok';
+        self::$configFields['new'] = 'should not be saved';
+        writeConfig(self::$configFields, true);
+
+        include self::$configFields['config']['CONFIG_FILE'];
+        $this->assertEquals('ok', $GLOBALS['title']);
+        $this->assertEquals('ok', $GLOBALS['config']['config1']);
+        $this->assertEquals('ok', $GLOBALS['config']['config_new']);
+        $this->assertFalse(isset($GLOBALS['new']));
+    }
+
+    /**
+     * Test writeConfig function with an empty array.
+     *
+     * @expectedException MissingFieldConfigException
+     */
+    public function testWriteConfigEmpty()
+    {
+        writeConfig(array(), true);
+    }
+
+    /**
+     * Test writeConfig function with a missing mandatory field.
+     *
+     * @expectedException MissingFieldConfigException
+     */
+    public function testWriteConfigMissingField()
+    {
+        unset(self::$configFields['login']);
+        writeConfig(self::$configFields, true);
+    }
+
+    /**
+     * Test writeConfig function while being logged out, and there is no config file existing.
+     */
+    public function testWriteConfigLoggedOutNoFile()
+    {
+        writeConfig(self::$configFields, false);
+    }
+
+    /**
+     * Test writeConfig function while being logged out, and a config file already exists.
+     *
+     * @expectedException UnauthorizedConfigException
+     */
+    public function testWriteConfigLoggedOutWithFile()
+    {
+        file_put_contents(self::$configFields['config']['CONFIG_FILE'], '');
+        writeConfig(self::$configFields, false);
+    }
+
+    /**
+     * Test mergeDeprecatedConfig while being logged in:
+     *      1. init a config file.
+     *      2. init a options.php file with update value.
+     *      3. merge.
+     *      4. check updated value in config file.
+     */
+    public function testMergeDeprecatedConfig()
+    {
+        // init
+        writeConfig(self::$configFields, true);
+        $configCopy = self::$configFields;
+        $invert = !$configCopy['privateLinkByDefault'];
+        $configCopy['privateLinkByDefault'] = $invert;
+
+        // Use writeConfig to create a options.php
+        $configCopy['config']['CONFIG_FILE'] = 'tests/options.php';
+        writeConfig($configCopy, true);
+
+        $this->assertTrue(is_file($configCopy['config']['CONFIG_FILE']));
+
+        // merge configs
+        mergeDeprecatedConfig(self::$configFields, true);
+
+        // make sure updated field is changed
+        include self::$configFields['config']['CONFIG_FILE'];
+        $this->assertEquals($invert, $GLOBALS['privateLinkByDefault']);
+        $this->assertFalse(is_file($configCopy['config']['CONFIG_FILE']));
+    }
+
+    /**
+     * Test mergeDeprecatedConfig while being logged in without options file.
+     */
+    public function testMergeDeprecatedConfigNoFile()
+    {
+        writeConfig(self::$configFields, true);
+        mergeDeprecatedConfig(self::$configFields, true);
+
+        include self::$configFields['config']['CONFIG_FILE'];
+        $this->assertEquals(self::$configFields['login'], $GLOBALS['login']);
+    }
+}
old mode 100755 (executable)
new mode 100644 (file)
index 749ce2b..df2614b
@@ -13,15 +13,15 @@ class PluginManagerTest extends PHPUnit_Framework_TestCase
 {
     /**
      * Path to tests plugin.
-     * @var string $_PLUGIN_PATH
+     * @var string $pluginPath
      */
-    private static $_PLUGIN_PATH = 'tests/plugins';
+    private static $pluginPath = 'tests/plugins';
 
     /**
      * Test plugin.
-     * @var string $_PLUGIN_NAME
+     * @var string $pluginName
      */
-    private static $_PLUGIN_NAME = 'test';
+    private static $pluginName = 'test';
 
     /**
      * Test plugin loading and hook execution.
@@ -32,8 +32,8 @@ class PluginManagerTest extends PHPUnit_Framework_TestCase
     {
         $pluginManager = PluginManager::getInstance();
 
-        PluginManager::$PLUGINS_PATH = self::$_PLUGIN_PATH;
-        $pluginManager->load(array(self::$_PLUGIN_NAME));
+        PluginManager::$PLUGINS_PATH = self::$pluginPath;
+        $pluginManager->load(array(self::$pluginName));
 
         $this->assertTrue(function_exists('hook_test_random'));
 
old mode 100755 (executable)
new mode 100644 (file)
index 8838bc8..544bcf9
@@ -512,4 +512,4 @@ class RouterTest extends PHPUnit_Framework_TestCase
             Router::findPage('whatever', array(), true)
         );
     }
-}
\ No newline at end of file
+}
old mode 100755 (executable)
new mode 100644 (file)