use Friendica\Core\Console\AutomaticInstallation;
use Friendica\Test\Util\DBAMockTrait;
use Friendica\Test\Util\DBStructureMockTrait;
+use Friendica\Test\Util\L10nMockTrait;
use Friendica\Test\Util\RendererMockTrait;
use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\vfsStreamFile;
*/
class AutomaticInstallationConsoleTest extends ConsoleTest
{
+ use L10nMockTrait;
use DBAMockTrait;
use DBStructureMockTrait;
use RendererMockTrait;
{
parent::setUp();
- if ($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.ini.php')) {
+ if ($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')) {
$this->root->getChild('config')
- ->removeChild('local.ini.php');
+ ->removeChild('local.config.php');
}
$this->db_host = getenv('MYSQL_HOST');
- $this->db_port = (!empty(getenv('MYSQL_PORT'))) ? getenv('MYSQL_PORT') : null;
+ $this->db_port = !empty(getenv('MYSQL_PORT')) ? getenv('MYSQL_PORT') : null;
$this->db_data = getenv('MYSQL_DATABASE');
$this->db_user = getenv('MYSQL_USERNAME') . getenv('MYSQL_USER');
$this->db_pass = getenv('MYSQL_PASSWORD');
$this->mockConfigGet('config', 'php_path', false);
+
+ $this->mockL10nT();
}
+ /**
+ * Creates the arguments which is asserted to be passed to 'replaceMacros()' for creating the local.config.php
+ *
+ * @param bool $withDb if true, DB will get saved too
+ *
+ * @return array The arguments to pass to the mock for 'replaceMacros()'
+ */
private function createArgumentsForMacro($withDb)
{
$args = [
$this->mockConnect(true, 1);
$this->mockConnected(true, 1);
$this->mockExistsTable('user', false, 1);
- $this->mockUpdate([false, true, true], null, 1);
+ $this->mockUpdate([$this->root->url(), false, true, true], null, 1);
$config = <<<CONF
-<?php return <<<INI
-
-[database]
-hostname =
-username =
-password =
-database =
-charset = utf8mb4
-
-
-; ****************************************************************
-; The configuration below will be overruled by the admin panel.
-; Changes made below will only have an effect if the database does
-; not contain any configuration for the friendica system.
-; ****************************************************************
-
-[config]
-admin_email =
-
-sitename = Friendica Social Network
-
-register_policy = REGISTER_OPEN
-register_text =
-
-[system]
-default_timezone = UTC
-
-language = en
-INI;
-// Keep this line
+<?php
+// Local configuration
+
+// If you're unsure about what any of the config keys below do, please check the config/defaults.config.php for detailed
+// documentation of their data type and behavior.
+
+return [
+ 'database' => [
+ 'hostname' => '',
+ 'username' => '',
+ 'password' => '',
+ 'database' => '',
+ 'charset' => 'utf8mb4',
+ ],
+
+ // ****************************************************************
+ // The configuration below will be overruled by the admin panel.
+ // Changes made below will only have an effect if the database does
+ // not contain any configuration for the friendica system.
+ // ****************************************************************
+
+ 'config' => [
+ 'admin_email' => '',
+ 'sitename' => 'Friendica Social Network',
+ 'register_policy' => \Friendica\Module\Register::OPEN,
+ 'register_text' => '',
+ ],
+ 'system' => [
+ 'default_timezone' => 'UTC',
+ 'language' => 'en',
+ ],
+];
CONF;
- vfsStream::newFile('prepared.ini.php')
+ vfsStream::newFile('prepared.config.php')
->at($this->root)
->setContent($config);
$console = new AutomaticInstallation($this->consoleArgv);
- $console->setOption('f', 'prepared.ini.php');
+ $console->setOption('f', 'prepared.config.php');
$txt = $this->dumpExecute($console);
$this->assertFinished($txt, false, true);
- $this->assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.ini.php'));
+ $this->assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php'));
}
/**
$this->mockConnect(true, 1);
$this->mockConnected(true, 1);
$this->mockExistsTable('user', false, 1);
- $this->mockUpdate([false, true, true], null, 1);
+ $this->mockUpdate([$this->root->url(), false, true, true], null, 1);
- $this->mockGetMarkupTemplate('local.ini.tpl', 'testTemplate', 1);
+ $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1);
$this->mockReplaceMacros('testTemplate', $this->createArgumentsForMacro(true), '', 1);
$this->assertTrue(putenv('FRIENDICA_ADMIN_MAIL=admin@friendica.local'));
$this->mockConnect(true, 1);
$this->mockConnected(true, 1);
$this->mockExistsTable('user', false, 1);
- $this->mockUpdate([false, true, true], null, 1);
+ $this->mockUpdate([$this->root->url(), false, true, true], null, 1);
- $this->mockGetMarkupTemplate('local.ini.tpl', 'testTemplate', 1);
+ $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1);
$this->mockReplaceMacros('testTemplate', $this->createArgumentsForMacro(false), '', 1);
$this->assertTrue(putenv('FRIENDICA_ADMIN_MAIL=admin@friendica.local'));
$this->mockConnect(true, 1);
$this->mockConnected(true, 1);
$this->mockExistsTable('user', false, 1);
- $this->mockUpdate([false, true, true], null, 1);
+ $this->mockUpdate([$this->root->url(), false, true, true], null, 1);
- $this->mockGetMarkupTemplate('local.ini.tpl', 'testTemplate', 1);
+ $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1);
$this->mockReplaceMacros('testTemplate', $this->createArgumentsForMacro(true), '', 1);
$console = new AutomaticInstallation($this->consoleArgv);
{
$this->mockConnect(false, 1);
- $this->mockGetMarkupTemplate('local.ini.tpl', 'testTemplate', 1);
+ $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1);
$this->mockReplaceMacros('testTemplate', $this->createArgumentsForMacro(false), '', 1);
$this->assertTrue(putenv('FRIENDICA_ADMIN_MAIL=admin@friendica.local'));
bin/console autoinstall [-h|--help|-?] [-v] [-a] [-f]
Description
- Installs Friendica with data based on the local.ini.php file or environment variables
+ Installs Friendica with data based on the local.config.php file or environment variables
Notes
Not checking .htaccess/URL-Rewrite during CLI installation.
-h|--help|-? Show help information
-v Show more debug information.
-a All setup checks are required (except .htaccess)
- -f|--file <config> prepared config file (e.g. "config/local.ini.php" itself) which will override every other config option - except the environment variables)
+ -f|--file <config> prepared config file (e.g. "config/local.config.php" itself) which will override every other config option - except the environment variables)
-s|--savedb Save the DB credentials to the file (if environment variables is used)
-H|--dbhost <host> The host of the mysql/mariadb database (env MYSQL_HOST)
-p|--dbport <port> The port of the mysql/mariadb database (env MYSQL_PORT)
FRIENDICA_LANG The langauge of Friendica
Examples
- bin/console autoinstall -f 'input.ini.php
- Installs Friendica with the prepared 'input.ini.php' file
+ bin/console autoinstall -f 'input.config.php
+ Installs Friendica with the prepared 'input.config.php' file
bin/console autoinstall --savedb
- Installs Friendica with environment variables and saves them to the 'config/local.ini.php' file
+ Installs Friendica with environment variables and saves them to the 'config/local.config.php' file
bin/console autoinstall -h localhost -p 3365 -U user -P passwort1234 -d friendica
Installs Friendica with a local mysql database with credentials