namespace Friendica\Test\src\Core\Console;
+use Friendica\Core\Config\Cache\ConfigCache;
use Friendica\Core\Console\AutomaticInstallation;
use Friendica\Core\Installer;
use Friendica\Test\Util\DBAMockTrait;
$this->db_user = getenv('MYSQL_USERNAME') . getenv('MYSQL_USER');
$this->db_pass = getenv('MYSQL_PASSWORD');
- $this->configMock
- ->shouldReceive('get')
- ->with('config', 'php_path')
- ->andReturn(null);
-
- $this->configMock->shouldReceive('set')
- ->with('config', 'php_path', \Mockery::any())->once();
- $this->configMock->shouldReceive('set')
- ->with('config', 'hostname', '')->once();
- $this->configMock->shouldReceive('set')
- ->with('system', 'basepath', \Mockery::any())->once();
- $this->configMock->shouldReceive('set')
- ->with('system', 'urlpath' , '')->once();
- $this->configMock->shouldReceive('set')
- ->with('system', 'ssl_policy', SSL_POLICY_NONE)->once();
- $this->mode->shouldReceive('isInstall')
- ->andReturn(false);
-
$this->mockL10nT();
}
$this->assertEquals($finished, $txt);
}
+ public function dataInstaller()
+ {
+ return [
+ 'empty' => [
+ 'data' => [
+ 'database' => [
+ 'hostname' => '',
+ 'username' => '',
+ 'password' => '',
+ 'database' => '',
+ ],
+ 'config' => [
+ 'php_path' => '',
+ 'hostname' => '',
+ 'admin_email' => '',
+ ],
+ 'system' => [
+ 'urlpath' => '',
+ 'basepath' => '',
+ 'ssl_policy' => '',
+ 'default_timezone' => '',
+ 'language' => '',
+ ],
+ ],
+ ]
+ ];
+ }
+
/**
* Test the automatic installation without any parameter
+ * @dataProvider dataInstaller
*/
- public function testEmpty()
+ public function testEmpty(array $data)
{
+ $configCache = new ConfigCache();
+ $configCache->load($data);
+ $configCache->set('system', 'basepath', $this->root->url());
+
+ $this->mockApp($this->root, $configCache);
+
$this->mockConnect(true, 1);
$this->mockConnected(true, 1);
$this->mockExistsTable('user', false, 1);
$this->mockUpdate([$this->root->url(), false, true, true], null, 1);
- $this->configMock->shouldReceive('set')
- ->with('database', 'hostname', Installer::DEFAULT_HOST)->once();
- $this->configMock->shouldReceive('set')
- ->with('database', 'username', '')->once();
- $this->configMock->shouldReceive('set')
- ->with('database', 'password', '')->once();
- $this->configMock->shouldReceive('set')
- ->with('database', 'database', '')->once();
-
$this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1);
$this->mockReplaceMacros('testTemplate', \Mockery::any(), '', 1);
$txt = $this->dumpExecute($console);
- $this->assertFinished($txt, false, true);
+ $this->assertEquals(Installer::DEFAULT_LANG, $configCache->get('system', 'language'));
+ $this->assertEquals(Installer::DEFAULT_TZ, $configCache->get('system', 'default_timezone'));
+ $this->assertEquals(Installer::DEFAULT_HOST, $configCache->get('database', 'hostname'));
+ $this->assertFinished($txt, true, false);
}
/**
* @medium
+ * @dataProvider dataInstaller
*/
- public function testWithConfig()
+ public function testWithConfig(array $data)
{
$this->mockConnect(true, 1);
$this->mockConnected(true, 1);