*/
public function testGetLatestGitVersionCodeInvalidUrl()
{
+ $oldlog = ini_get('error_log');
+ ini_set('error_log', '/dev/null');
$this->assertFalse(
ApplicationUtils::getLatestGitVersionCode('htttp://null.io', 1)
);
+ ini_set('error_log', $oldlog);
}
/**
public function testCheckCurrentResourcePermissions()
{
$conf = new ConfigManager('');
- $conf->set('path.thumbnails_cache', 'cache');
- $conf->set('path.config', 'data/config.php');
- $conf->set('path.data_dir', 'data');
- $conf->set('path.datastore', 'data/datastore.php');
- $conf->set('path.ban_file', 'data/ipbans.php');
- $conf->set('path.log', 'data/log.txt');
- $conf->set('path.page_cache', 'pagecache');
- $conf->set('path.raintpl_tmp', 'tmp');
- $conf->set('path.raintpl_tpl', 'tpl');
- $conf->set('path.update_check', 'data/lastupdatecheck.txt');
+ $conf->set('resource.thumbnails_cache', 'cache');
+ $conf->set('resource.config', 'data/config.php');
+ $conf->set('resource.data_dir', 'data');
+ $conf->set('resource.datastore', 'data/datastore.php');
+ $conf->set('resource.ban_file', 'data/ipbans.php');
+ $conf->set('resource.log', 'data/log.txt');
+ $conf->set('resource.page_cache', 'pagecache');
+ $conf->set('resource.raintpl_tmp', 'tmp');
+ $conf->set('resource.raintpl_tpl', 'tpl');
+ $conf->set('resource.theme', 'default');
+ $conf->set('resource.update_check', 'data/lastupdatecheck.txt');
$this->assertEquals(
array(),
public function testCheckCurrentResourcePermissionsErrors()
{
$conf = new ConfigManager('');
- $conf->set('path.thumbnails_cache', 'null/cache');
- $conf->set('path.config', 'null/data/config.php');
- $conf->set('path.data_dir', 'null/data');
- $conf->set('path.datastore', 'null/data/store.php');
- $conf->set('path.ban_file', 'null/data/ipbans.php');
- $conf->set('path.log', 'null/data/log.txt');
- $conf->set('path.page_cache', 'null/pagecache');
- $conf->set('path.raintpl_tmp', 'null/tmp');
- $conf->set('path.raintpl_tpl', 'null/tpl');
- $conf->set('path.update_check', 'null/data/lastupdatecheck.txt');
+ $conf->set('resource.thumbnails_cache', 'null/cache');
+ $conf->set('resource.config', 'null/data/config.php');
+ $conf->set('resource.data_dir', 'null/data');
+ $conf->set('resource.datastore', 'null/data/store.php');
+ $conf->set('resource.ban_file', 'null/data/ipbans.php');
+ $conf->set('resource.log', 'null/data/log.txt');
+ $conf->set('resource.page_cache', 'null/pagecache');
+ $conf->set('resource.raintpl_tmp', 'null/tmp');
+ $conf->set('resource.raintpl_tpl', 'null/tpl');
+ $conf->set('resource.raintpl_theme', 'null/tpl/default');
+ $conf->set('resource.update_check', 'null/data/lastupdatecheck.txt');
$this->assertEquals(
array(
'"null/tpl" directory is not readable',
+ '"null/tpl/default" directory is not readable',
'"null/cache" directory is not readable',
'"null/cache" directory is not writable',
'"null/data" directory is not readable',
ApplicationUtils::checkResourcePermissions($conf)
);
}
+
+ /**
+ * 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.
+ */
+ public function testGetThemesInvalid()
+ {
+ $this->assertEquals([], ApplicationUtils::getThemes('nope'));
+ }
}