phpbb_ui_test_case::install_board PHP Method

install_board() protected static method

protected static install_board ( )
    protected static function install_board()
    {
        global $phpbb_root_path, $phpEx, $db;
        self::recreate_database(self::$config);
        $config_file = $phpbb_root_path . "config.{$phpEx}";
        $config_file_dev = $phpbb_root_path . "config_dev.{$phpEx}";
        $config_file_test = $phpbb_root_path . "config_test.{$phpEx}";
        if (file_exists($config_file)) {
            if (!file_exists($config_file_dev)) {
                rename($config_file, $config_file_dev);
            } else {
                unlink($config_file);
            }
        }
        $container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
        $container = $container_builder->with_environment('installer')->without_extensions()->without_cache()->with_custom_parameters(['core.disable_super_globals' => false, 'installer.create_config_file.options' => ['debug' => true, 'environment' => 'test'], 'cache.driver.class' => 'phpbb\\cache\\driver\\file'])->without_compiled_container()->get_container();
        $container->register('installer.install_finish.notify_user')->setSynthetic(true);
        $container->set('installer.install_finish.notify_user', new phpbb_mock_null_installer_task());
        $container->compile();
        $language = $container->get('language');
        $language->add_lang(array('common', 'acp/common', 'acp/board', 'install', 'posting'));
        $iohandler_factory = $container->get('installer.helper.iohandler_factory');
        $iohandler_factory->set_environment('cli');
        $iohandler = $iohandler_factory->get();
        $parseURL = parse_url(self::$config['phpbb_functional_url']);
        $output = new \Symfony\Component\Console\Output\NullOutput();
        $style = new \Symfony\Component\Console\Style\SymfonyStyle(new \Symfony\Component\Console\Input\ArrayInput(array()), $output);
        $iohandler->set_style($style, $output);
        $installer = $container->get('installer.installer.install');
        $installer->set_iohandler($iohandler);
        // Set data
        $iohandler->set_input('admin_name', 'admin');
        $iohandler->set_input('admin_pass1', 'adminadmin');
        $iohandler->set_input('admin_pass2', 'adminadmin');
        $iohandler->set_input('board_email', '[email protected]');
        $iohandler->set_input('submit_admin', 'submit');
        $iohandler->set_input('default_lang', 'en');
        $iohandler->set_input('board_name', 'yourdomain.com');
        $iohandler->set_input('board_description', 'A short text to describe your forum');
        $iohandler->set_input('submit_board', 'submit');
        $iohandler->set_input('dbms', str_replace('phpbb\\db\\driver\\', '', self::$config['dbms']));
        $iohandler->set_input('dbhost', self::$config['dbhost']);
        $iohandler->set_input('dbport', self::$config['dbport']);
        $iohandler->set_input('dbuser', self::$config['dbuser']);
        $iohandler->set_input('dbpasswd', self::$config['dbpasswd']);
        $iohandler->set_input('dbname', self::$config['dbname']);
        $iohandler->set_input('table_prefix', self::$config['table_prefix']);
        $iohandler->set_input('submit_database', 'submit');
        $iohandler->set_input('email_enable', true);
        $iohandler->set_input('smtp_delivery', '1');
        $iohandler->set_input('smtp_host', 'nxdomain.phpbb.com');
        $iohandler->set_input('smtp_auth', 'PLAIN');
        $iohandler->set_input('smtp_user', 'nxuser');
        $iohandler->set_input('smtp_pass', 'nxpass');
        $iohandler->set_input('submit_email', 'submit');
        $iohandler->set_input('cookie_secure', '0');
        $iohandler->set_input('server_protocol', '0');
        $iohandler->set_input('force_server_vars', $parseURL['scheme'] . '://');
        $iohandler->set_input('server_name', $parseURL['host']);
        $iohandler->set_input('server_port', isset($parseURL['port']) ? (int) $parseURL['port'] : 80);
        $iohandler->set_input('script_path', $parseURL['path']);
        $iohandler->set_input('submit_server', 'submit');
        $installer->run();
        copy($config_file, $config_file_test);
        self::$install_success = true;
        if (file_exists($phpbb_root_path . 'store/install_config.php')) {
            self::$install_success = false;
            @unlink($phpbb_root_path . 'store/install_config.php');
        }
        if (file_exists($phpbb_root_path . 'cache/install_lock')) {
            @unlink($phpbb_root_path . 'cache/install_lock');
        }
        global $phpbb_container;
        $phpbb_container->reset();
        $blacklist = ['phpbb_class_loader_mock', 'phpbb_class_loader_ext', 'phpbb_class_loader'];
        foreach (array_keys($GLOBALS) as $key) {
            if (is_object($GLOBALS[$key]) && !in_array($key, $blacklist, true)) {
                unset($GLOBALS[$key]);
            }
        }
    }