mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
636 lines
14 KiB
PHP
636 lines
14 KiB
PHP
<?php
|
|
/**
|
|
*
|
|
* This file is part of the phpBB Forum Software package.
|
|
*
|
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
|
*
|
|
* For full copyright and license information, please see
|
|
* the docs/CREDITS.txt file.
|
|
*
|
|
*/
|
|
|
|
require_once __DIR__ . '/../../phpBB/includes/functions_acp.php';
|
|
|
|
class phpbb_functions_acp_build_cfg_template_test extends phpbb_test_case
|
|
{
|
|
public function build_cfg_template_text_data()
|
|
{
|
|
return array(
|
|
array(
|
|
array('text', 20, 255),
|
|
'key_name',
|
|
array('config_key_name' => '1'),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'input',
|
|
'id' => 'key_name',
|
|
'type' => 'text',
|
|
'name' => 'config[config_key_name]',
|
|
'size' => 20,
|
|
'maxlength' => 255,
|
|
'value' => '1',
|
|
],
|
|
),
|
|
array(
|
|
array('password', 20, 128),
|
|
'key_name',
|
|
array('config_key_name' => '2'),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'input',
|
|
'id' => 'key_name',
|
|
'type' => 'password',
|
|
'name' => 'config[config_key_name]',
|
|
'size' => 20,
|
|
'maxlength' => 128,
|
|
'value' => '********',
|
|
],
|
|
),
|
|
array(
|
|
array('text', 0, 255),
|
|
'key_name',
|
|
array('config_key_name' => '3'),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'input',
|
|
'id' => 'key_name',
|
|
'type' => 'text',
|
|
'name' => 'config[config_key_name]',
|
|
'maxlength' => 255,
|
|
'value' => '3',
|
|
'size' => '',
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider build_cfg_template_text_data
|
|
*/
|
|
public function test_build_cfg_template_text($tpl_type, $key, $new, $config_key, $vars, $expected)
|
|
{
|
|
global $user, $phpbb_dispatcher, $language;
|
|
|
|
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
|
$user = new phpbb_mock_user();
|
|
$language = new phpbb_mock_lang();
|
|
$user->lang = $language;
|
|
|
|
$this->assertEquals($expected, phpbb_build_cfg_template($tpl_type, $key, $new, $config_key, $vars));
|
|
}
|
|
|
|
public function build_cfg_template_dimension_data()
|
|
{
|
|
return array(
|
|
array(
|
|
array('dimension', 5, 15),
|
|
'number_key_name',
|
|
array('config_key_name_width' => 10, 'config_key_name_height' => 20),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'dimension',
|
|
'width' => [
|
|
'id' => 'number_key_name',
|
|
'type' => 'number',
|
|
'name' => 'config[config_key_name_width]',
|
|
'min' => 5,
|
|
'max' => 15,
|
|
'value' => 10,
|
|
],
|
|
'height' => [
|
|
'type' => 'number',
|
|
'name' => 'config[config_key_name_height]',
|
|
'min' => 5,
|
|
'max' => 15,
|
|
'value' => 20,
|
|
],
|
|
],
|
|
),
|
|
array(
|
|
array('dimension', 0, 15),
|
|
'number_key_name',
|
|
array('config_key_name_width' => 10, 'config_key_name_height' => 20),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'dimension',
|
|
'width' => [
|
|
'id' => 'number_key_name',
|
|
'type' => 'number',
|
|
'name' => 'config[config_key_name_width]',
|
|
'min' => 0,
|
|
'max' => 15,
|
|
'value' => 10,
|
|
],
|
|
'height' => [
|
|
'type' => 'number',
|
|
'name' => 'config[config_key_name_height]',
|
|
'min' => 0,
|
|
'max' => 15,
|
|
'value' => 20,
|
|
],
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider build_cfg_template_dimension_data
|
|
*/
|
|
public function test_build_cfg_template_dimension($tpl_type, $key, $new, $config_key, $vars, $expected)
|
|
{
|
|
global $user, $phpbb_dispatcher;
|
|
|
|
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
|
$user = new phpbb_mock_user();
|
|
$user->lang = new phpbb_mock_lang();
|
|
|
|
$this->assertEquals($expected, phpbb_build_cfg_template($tpl_type, $key, $new, $config_key, $vars));
|
|
}
|
|
|
|
public function build_cfg_template_number_data()
|
|
{
|
|
return array(
|
|
array(
|
|
array('number', 5, 15),
|
|
'number_key_name',
|
|
array('config_key_name' => 10),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'input',
|
|
'id' => 'number_key_name',
|
|
'type' => 'number',
|
|
'name' => 'config[config_key_name]',
|
|
'min' => 5,
|
|
'max' => 15,
|
|
'value' => 10,
|
|
],
|
|
),
|
|
array(
|
|
array('number', -1, 9999),
|
|
'number_key_name',
|
|
array('config_key_name' => 10),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'input',
|
|
'id' => 'number_key_name',
|
|
'type' => 'number',
|
|
'name' => 'config[config_key_name]',
|
|
'min' => -1,
|
|
'max' => 9999,
|
|
'value' => 10,
|
|
],
|
|
),
|
|
array(
|
|
array('number', 0, 9999),
|
|
'number_key_name',
|
|
array('config_key_name' => 10),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'input',
|
|
'id' => 'number_key_name',
|
|
'type' => 'number',
|
|
'name' => 'config[config_key_name]',
|
|
'min' => 0,
|
|
'max' => 9999,
|
|
'value' => 10,
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider build_cfg_template_number_data
|
|
*/
|
|
public function test_build_cfg_template_number($tpl_type, $key, $new, $config_key, $vars, $expected)
|
|
{
|
|
global $user, $phpbb_dispatcher;
|
|
|
|
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
|
$user = new phpbb_mock_user();
|
|
$user->lang = new phpbb_mock_lang();
|
|
|
|
$this->assertEquals($expected, phpbb_build_cfg_template($tpl_type, $key, $new, $config_key, $vars));
|
|
}
|
|
|
|
public function build_cfg_template_textarea_data()
|
|
{
|
|
return array(
|
|
array(
|
|
array('textarea', 5, 30),
|
|
'key_name',
|
|
array('config_key_name' => 'phpBB'),
|
|
'config_key_name',
|
|
array(),
|
|
[
|
|
'tag' => 'textarea',
|
|
'id' => 'key_name',
|
|
'name' => 'config[config_key_name]',
|
|
'rows' => 5,
|
|
'cols' => 30,
|
|
'content' => 'phpBB',
|
|
]
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider build_cfg_template_textarea_data
|
|
*/
|
|
public function test_build_cfg_template_textarea($tpl_type, $key, $new, $config_key, $vars, $expected)
|
|
{
|
|
global $user, $phpbb_dispatcher;
|
|
|
|
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
|
$user = new phpbb_mock_user();
|
|
$user->lang = new phpbb_mock_lang();
|
|
|
|
$this->assertEquals($expected, phpbb_build_cfg_template($tpl_type, $key, $new, $config_key, $vars));
|
|
}
|
|
|
|
public function build_cfg_template_radio_data()
|
|
{
|
|
return [
|
|
[
|
|
['radio', 'enabled_disabled'],
|
|
'key_name',
|
|
['config_key_name' => '0'],
|
|
'config_key_name',
|
|
[],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'ENABLED',
|
|
'checked' => false,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => true,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'DISABLED',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
['radio'],
|
|
'key_name',
|
|
['config_key_name' => '0'],
|
|
'config_key_name',
|
|
['function' => 'phpbb_build_radio', 'params' => ['{CONFIG_VALUE}', '{KEY}', [1 => 'ENABLED', 0 => 'DISABLED']]],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'ENABLED',
|
|
'checked' => false,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => true,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'DISABLED',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
['radio', 'enabled_disabled'],
|
|
'key_name',
|
|
['config_key_name' => '1'],
|
|
'config_key_name',
|
|
[],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'ENABLED',
|
|
'checked' => true,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => false,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'DISABLED',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
['radio'],
|
|
'key_name',
|
|
['config_key_name' => '1'],
|
|
'config_key_name',
|
|
['function' => 'phpbb_build_radio', 'params' => ['{CONFIG_VALUE}', '{KEY}', [1 => 'ENABLED', 0 => 'DISABLED']]],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'ENABLED',
|
|
'checked' => true,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => false,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'DISABLED',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
['radio', 'yes_no'],
|
|
'key_name',
|
|
['config_key_name' => '0'],
|
|
'config_key_name',
|
|
[],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'YES',
|
|
'checked' => false,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => true,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'NO',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
['radio'],
|
|
'key_name',
|
|
['config_key_name' => '0'],
|
|
'config_key_name',
|
|
['function' => 'phpbb_build_radio', 'params' => ['{CONFIG_VALUE}', '{KEY}', [1 => 'YES', 0 => 'NO']]],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'YES',
|
|
'checked' => false,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => true,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'NO',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
['radio', 'yes_no'],
|
|
'key_name',
|
|
['config_key_name' => '1'],
|
|
'config_key_name',
|
|
[],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'YES',
|
|
'checked' => true,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => false,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'NO',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
['radio'],
|
|
'key_name',
|
|
['config_key_name' => '1'],
|
|
'config_key_name',
|
|
['function' => 'phpbb_build_radio', 'params' => ['{CONFIG_VALUE}', '{KEY}', [1 => 'YES', 0 => 'NO']]],
|
|
[
|
|
'tag' => 'radio',
|
|
'buttons' => [
|
|
[
|
|
'id' => 'key_name',
|
|
'type' => 'radio',
|
|
'value' => 1,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'YES',
|
|
'checked' => true,
|
|
],
|
|
[
|
|
'type' => 'radio',
|
|
'value' => 0,
|
|
'checked' => false,
|
|
'name' => 'config[config_key_name]',
|
|
'label' => 'NO',
|
|
],
|
|
],
|
|
],
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider build_cfg_template_radio_data
|
|
*/
|
|
public function test_build_cfg_template_radio($tpl_type, $key, $new, $config_key, $vars, $expected)
|
|
{
|
|
global $language, $phpbb_dispatcher;
|
|
|
|
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
|
$language = new \phpbb_mock_lang();
|
|
|
|
$this->assertEquals($expected, phpbb_build_cfg_template($tpl_type, $key, $new, $config_key, $vars));
|
|
}
|
|
|
|
public function build_cfg_template_append_data()
|
|
{
|
|
return array(
|
|
array(
|
|
array('textarea', 5, 30),
|
|
'key_name',
|
|
array('config_key_name' => 'phpBB'),
|
|
'config_key_name',
|
|
array('append' => 'Bertie is cool!'),
|
|
[
|
|
'tag' => 'textarea',
|
|
'id' => 'key_name',
|
|
'name' => 'config[config_key_name]',
|
|
'rows' => 5,
|
|
'cols' => 30,
|
|
'content' => 'phpBB',
|
|
'append' => 'Bertie is cool!',
|
|
]
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider build_cfg_template_append_data
|
|
*/
|
|
public function test_build_cfg_template_append($tpl_type, $key, $new, $config_key, $vars, $expected)
|
|
{
|
|
global $user, $phpbb_dispatcher;
|
|
|
|
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
|
$user = new phpbb_mock_user();
|
|
$user->lang = new phpbb_mock_lang();
|
|
|
|
$this->assertEquals($expected, phpbb_build_cfg_template($tpl_type, $key, $new, $config_key, $vars));
|
|
}
|
|
|
|
public function build_cfg_template_select_data()
|
|
{
|
|
return [
|
|
[
|
|
['select'],
|
|
'key_name',
|
|
['config_key_name' => '0'],
|
|
'config_key_name',
|
|
['method' => 'select_helper'],
|
|
[
|
|
'tag' => 'select',
|
|
'class' => false,
|
|
'id' => 'key_name',
|
|
'data' => [],
|
|
'name' => 'config[config_key_name]',
|
|
'toggleable' => false,
|
|
'options' => [
|
|
[
|
|
'value' => 1,
|
|
'label' => 'First_Option',
|
|
'selected' => false,
|
|
],
|
|
[
|
|
'value' => 2,
|
|
'label' => 'Second_Option',
|
|
'selected' => true,
|
|
],
|
|
[
|
|
'value' => 3,
|
|
'label' => 'Third_Option',
|
|
'selected' => false,
|
|
]
|
|
],
|
|
'group_only' => false,
|
|
'size' => 1,
|
|
'multiple' => false,
|
|
],
|
|
],
|
|
[
|
|
['select', 8],
|
|
'key_name',
|
|
['config_key_name' => '1'],
|
|
'config_key_name',
|
|
['method' => 'select_helper'],
|
|
[
|
|
'tag' => 'select',
|
|
'class' => false,
|
|
'id' => 'key_name',
|
|
'data' => [],
|
|
'name' => 'config[config_key_name]',
|
|
'toggleable' => false,
|
|
'options' => [
|
|
[
|
|
'value' => 1,
|
|
'label' => 'First_Option',
|
|
'selected' => false,
|
|
],
|
|
[
|
|
'value' => 2,
|
|
'label' => 'Second_Option',
|
|
'selected' => true,
|
|
],
|
|
[
|
|
'value' => 3,
|
|
'label' => 'Third_Option',
|
|
'selected' => false,
|
|
]
|
|
],
|
|
'group_only' => false,
|
|
'size' => 8,
|
|
'multiple' => false,
|
|
],
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider build_cfg_template_select_data
|
|
*/
|
|
public function test_build_cfg_template_select($tpl_type, $key, $new, $config_key, $vars, $expected)
|
|
{
|
|
global $module, $user, $phpbb_dispatcher, $language;
|
|
|
|
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
|
$user = new phpbb_mock_user();
|
|
$language = new phpbb_mock_lang();
|
|
$user->lang = $language;
|
|
$user->module = $this;
|
|
$module = $user;
|
|
|
|
$this->assertEquals($expected, phpbb_build_cfg_template($tpl_type, $key, $new, $config_key, $vars));
|
|
}
|
|
|
|
public function select_helper()
|
|
{
|
|
return [
|
|
'options' => build_select(
|
|
[
|
|
'1' => 'First_Option',
|
|
'2' => 'Second_Option',
|
|
'3' => 'Third_Option',
|
|
],
|
|
'2'),
|
|
];
|
|
}
|
|
}
|