Fixed AutomaticInstallationConsoleTest

This commit is contained in:
Philipp Holzer 2019-03-14 00:24:08 +01:00 committed by Hypolite Petovan
parent d4b23ca8b9
commit 4e374fa4d3

View file

@ -15,6 +15,8 @@ use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\vfsStreamFile; use org\bovigo\vfs\vfsStreamFile;
/** /**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @requires PHP 7.0 * @requires PHP 7.0
*/ */
class AutomaticInstallationConsoleTest extends ConsoleTest class AutomaticInstallationConsoleTest extends ConsoleTest
@ -591,26 +593,55 @@ CONF;
} }
/** /**
* @runTestsInSeparateProcesses * Test the automatic installation with a wrong database connection
* @preserveGlobalState disabled
*/ */
public function testNoDatabaseConnection() public function testNoDatabaseConnection()
{ {
$configCache = new ConfigCache();
$configCache->set('system', 'basepath', $this->root->url());
$configCache->set('config', 'php_path', trim(shell_exec('which php')));
$this->mockApp($this->root, null, true);
$this->configMock->shouldReceive('set')->andReturnUsing(function ($cat, $key, $value) use ($configCache) {
if ($key !== 'basepath') {
return $configCache->set($cat, $key, $value);
} else {
return true;
}
});;
$this->configMock->shouldReceive('has')->andReturn(true);
$this->configMock->shouldReceive('get')->andReturnUsing(function ($cat, $key) use ($configCache) {
return $configCache->get($cat, $key);
});
$this->mockConnect(false, 1); $this->mockConnect(false, 1);
$this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1); $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1);
$this->mockReplaceMacros('testTemplate', $this->createArgumentsForMacro(false), '', 1); $this->mockReplaceMacros('testTemplate', \Mockery::any(), '', 1);
$this->assertTrue(putenv('FRIENDICA_ADMIN_MAIL=admin@friendica.local'));
$this->assertTrue(putenv('FRIENDICA_TZ=Europe/Berlin'));
$this->assertTrue(putenv('FRIENDICA_LANG=de'));
$this->assertTrue(putenv('FRIENDICA_URL_PATH=/friendica'));
$console = new AutomaticInstallation($this->consoleArgv); $console = new AutomaticInstallation($this->consoleArgv);
$txt = $this->dumpExecute($console); $txt = $this->dumpExecute($console);
$this->assertStuckDB($txt); $this->assertStuckDB($txt);
$this->assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php'));
// Assert the default values without any config
$this->assertEquals(Installer::DEFAULT_HOST, $configCache->get('database', 'hostname'));
$this->assertEmpty($configCache->get('database', 'username'));
$this->assertEmpty($configCache->get('database', 'password'));
$this->assertEmpty($configCache->get('database', 'database'));
$this->assertEmpty($configCache->get('config', 'hostname'), $configCache->get('config', 'hostname'));
$this->assertEmpty($configCache->get('config', 'admin_email'), $configCache->get('config', 'admin_email'));
$this->assertEquals(trim(shell_exec('which php')), $configCache->get('config', 'php_path'));
$this->assertEquals(Installer::DEFAULT_TZ, $configCache->get('system', 'default_timezone'));
$this->assertEquals(Installer::DEFAULT_LANG, $configCache->get('system', 'language'));
$this->assertEquals(SSL_POLICY_NONE, $configCache->get('system', 'ssl_policy'));
$this->assertEmpty($configCache->get('system', 'urlpath'), $configCache->get('system', 'urlpath'));
$this->assertEquals($this->root->url(), $configCache->get('system', 'basepath'));
} }
public function testGetHelp() public function testGetHelp()