PageRenderTime 61ms CodeModel.GetById 35ms RepoModel.GetById 0ms app.codeStats 0ms

/testapp/tests-jelix/jelix/core/configTest.php

https://github.com/gmarrot/jelix
PHP | 180 lines | 161 code | 17 blank | 2 comment | 0 complexity | d385602cb64bc88d62bb4059350d183c MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, BSD-3-Clause
  1. <?php
  2. class fakeConfigCompiler extends \Jelix\Core\Config\Compiler {
  3. static function test_read_module_info($config, $allModuleInfo, $path, &$installation, $section) {
  4. self::_readModuleInfo($config, $allModuleInfo, $path, $installation, $section);
  5. }
  6. }
  7. class fakeConfig {
  8. public $disableInstallers = false;
  9. public $enableAllModules = false;
  10. public $modules = array();
  11. public $_allModulesPathList = array();
  12. public $_externalModulesPathList = array();
  13. public $pluginsPath = '';
  14. public $modulesPath = '';
  15. }
  16. class configTest extends PHPUnit_Framework_TestCase {
  17. function testReadModuleInfoUnknowPath() {
  18. $config = new fakeConfig();
  19. $modulePath = '/foo/bar';
  20. $installation = array('index.php'=>array());
  21. $section = 'index.php';
  22. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  23. $this->assertEquals(0, count(array_keys($config->modules)));
  24. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  25. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  26. $this->assertEquals(0, count(array_keys($installation['index.php'])));
  27. }
  28. function testReadModuleInfoNotAModule() {
  29. $config = new fakeConfig();
  30. $modulePath = __DIR__;
  31. $installation = array('index.php'=>array());
  32. $section = 'index.php';
  33. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  34. $this->assertEquals(0, count(array_keys($config->modules)));
  35. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  36. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  37. $this->assertEquals(0, count(array_keys($installation['index.php'])));
  38. }
  39. function testReadModuleInfoOldModuleNotActivated() {
  40. $config = new fakeConfig();
  41. $modulePath = realpath(__DIR__.'/app/modules/simple');
  42. $installation = array('index.php'=>array());
  43. $section = 'index.php';
  44. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  45. $this->assertEquals(array(
  46. 'simple.access' => 0
  47. ), $config->modules);
  48. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  49. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  50. $this->assertEquals(array('simple.installed' => 0), $installation['index.php']);
  51. }
  52. function testReadModuleInfoOldModuleActivatedNotInstalled() {
  53. $config = new fakeConfig();
  54. $config->modules = array('simple.access'=>1);
  55. $modulePath = realpath(__DIR__.'/app/modules/simple');
  56. $installation = array('index.php'=>array());
  57. $section = 'index.php';
  58. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  59. $this->assertEquals(array('simple.installed' => 0), $installation['index.php']);
  60. $this->assertEquals(array(
  61. 'simple.access' => 0
  62. ), $config->modules);
  63. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  64. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  65. }
  66. function testReadModuleInfoOldModuleActivatedInstalled() {
  67. $config = new fakeConfig();
  68. $config->modules = array('simple.access'=>1);
  69. $modulePath = realpath(__DIR__.'/app/modules/simple');
  70. $installation = array('index.php'=>array('simple.installed'=>1));
  71. $section = 'index.php';
  72. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  73. $this->assertEquals(array('simple.installed' => 1), $installation['index.php']);
  74. $this->assertEquals(array(
  75. 'simple.access' => 1,
  76. 'simple.dbprofile' => 'default',
  77. 'simple.webalias' => 'simple'
  78. ), $config->modules);
  79. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  80. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  81. // with all modules info
  82. $config = new fakeConfig();
  83. $config->modules = array('simple.access'=>1);
  84. $installation = array('index.php'=>array('simple.installed'=>1));
  85. fakeConfigCompiler::test_read_module_info($config, true, $modulePath, $installation, $section);
  86. $this->assertEquals(array('simple.installed' => 1,
  87. 'simple.version' => '',
  88. 'simple.dataversion' => ''
  89. ), $installation['index.php']);
  90. $this->assertEquals(array(
  91. 'simple.access' => 1,
  92. 'simple.dbprofile' => 'default',
  93. 'simple.webalias' => 'simple',
  94. 'simple.version' => '',
  95. 'simple.dataversion' => '',
  96. 'simple.installed' => 1
  97. ), $config->modules);
  98. $this->assertEquals(array('simple'=>$modulePath.'/'), $config->_allModulesPathList);
  99. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  100. }
  101. function testReadModuleInfoNewModuleNotActivated() {
  102. $config = new fakeConfig();
  103. $modulePath = realpath(__DIR__.'/app/modules/package');
  104. $installation = array('index.php'=>array());
  105. $section = 'index.php';
  106. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  107. $this->assertEquals(array(
  108. 'jelixtest/composerpackage.access' => 0
  109. ), $config->modules);
  110. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  111. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  112. $this->assertEquals(array('jelixtest/composerpackage.installed' => 0), $installation['index.php']);
  113. }
  114. function testReadModuleInfoNewModuleActivatedNotInstalled() {
  115. $config = new fakeConfig();
  116. $config->modules = array('jelixtest/composerpackage.access'=>1);
  117. $modulePath = realpath(__DIR__.'/app/modules/package');
  118. $installation = array('index.php'=>array());
  119. $section = 'index.php';
  120. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  121. $this->assertEquals(array('jelixtest/composerpackage.installed' => 0), $installation['index.php']);
  122. $this->assertEquals(array(
  123. 'jelixtest/composerpackage.access' => 0
  124. ), $config->modules);
  125. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  126. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  127. }
  128. function testReadModuleInfoNewModuleActivatedInstalled() {
  129. $config = new fakeConfig();
  130. $config->modules = array('jelixtest/composerpackage.access'=>1);
  131. $modulePath = realpath(__DIR__.'/app/modules/package');
  132. $installation = array('index.php'=>array('jelixtest/composerpackage.installed'=>1));
  133. $section = 'index.php';
  134. fakeConfigCompiler::test_read_module_info($config, false, $modulePath, $installation, $section);
  135. $this->assertEquals(array('jelixtest/composerpackage.installed' => 1), $installation['index.php']);
  136. $this->assertEquals(array(
  137. 'jelixtest/composerpackage.access' => 1,
  138. 'jelixtest/composerpackage.dbprofile' => 'default',
  139. 'jelixtest/composerpackage.webalias' => 'thepackage'
  140. ), $config->modules);
  141. $this->assertEquals(0, count(array_keys($config->_allModulesPathList)));
  142. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  143. // with all modules info
  144. $config = new fakeConfig();
  145. $config->modules = array('jelixtest/composerpackage.access'=>1);
  146. $installation = array('index.php'=>array('jelixtest/composerpackage.installed'=>1));
  147. fakeConfigCompiler::test_read_module_info($config, true, $modulePath, $installation, $section);
  148. $this->assertEquals(array('jelixtest/composerpackage.installed' => 1,
  149. 'jelixtest/composerpackage.version' => '',
  150. 'jelixtest/composerpackage.dataversion' => ''
  151. ), $installation['index.php']);
  152. $this->assertEquals(array(
  153. 'jelixtest/composerpackage.access' => 1,
  154. 'jelixtest/composerpackage.dbprofile' => 'default',
  155. 'jelixtest/composerpackage.webalias' => 'thepackage',
  156. 'jelixtest/composerpackage.version' => '',
  157. 'jelixtest/composerpackage.dataversion' => '',
  158. 'jelixtest/composerpackage.installed' => 1
  159. ), $config->modules);
  160. $this->assertEquals(0, count(array_keys($config->_externalModulesPathList)));
  161. $this->assertEquals(array('jelixtest/composerpackage'=>$modulePath.'/'), $config->_allModulesPathList);
  162. }
  163. }