From d06265fb5785493ee845d4c4a86583402b475b60 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 16 Jul 2015 13:53:39 +0200 Subject: [PATCH] Unit tests for Router and PluginManager. --- tests/ConfigTest.php | 354 ++++++++++++++++++------------------ tests/PluginManagerTest.php | 12 +- tests/RouterTest.php | 2 +- tests/plugins/test/test.php | 0 4 files changed, 184 insertions(+), 184 deletions(-) mode change 100755 => 100644 tests/ConfigTest.php mode change 100755 => 100644 tests/PluginManagerTest.php mode change 100755 => 100644 tests/RouterTest.php mode change 100755 => 100644 tests/plugins/test/test.php diff --git a/tests/ConfigTest.php b/tests/ConfigTest.php old mode 100755 new mode 100644 index a239d8b..adebfcc --- a/tests/ConfigTest.php +++ b/tests/ConfigTest.php @@ -1,177 +1,177 @@ - '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']); - } -} + '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']); + } +} diff --git a/tests/PluginManagerTest.php b/tests/PluginManagerTest.php old mode 100755 new mode 100644 index 749ce2b..df2614b --- a/tests/PluginManagerTest.php +++ b/tests/PluginManagerTest.php @@ -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')); diff --git a/tests/RouterTest.php b/tests/RouterTest.php old mode 100755 new mode 100644 index 8838bc8..544bcf9 --- a/tests/RouterTest.php +++ b/tests/RouterTest.php @@ -512,4 +512,4 @@ class RouterTest extends PHPUnit_Framework_TestCase Router::findPage('whatever', array(), true) ); } -} \ No newline at end of file +} diff --git a/tests/plugins/test/test.php b/tests/plugins/test/test.php old mode 100755 new mode 100644