mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
Merge remote-tracking branch 'exreaction/ticket/12202' into develop-olympus
* exreaction/ticket/12202: [ticket/12202] Use an array in the data provider instead of exploding manually [ticket/12202] Can't call htmlspecialchars before checking for quotes [ticket/12202] Fix tests [ticket/12202] Test for parse_cfg_file [ticket/12202] Use copyright symbol in style.cfg files [ticket/12202] Apply htmlspecialchars to style.cfg data
This commit is contained in:
commit
943e4e35ee
4 changed files with 112 additions and 5 deletions
|
@ -3367,7 +3367,7 @@ function parse_cfg_file($filename, $lines = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine first occurrence, since in values the equal sign is allowed
|
// Determine first occurrence, since in values the equal sign is allowed
|
||||||
$key = strtolower(trim(substr($line, 0, $delim_pos)));
|
$key = htmlspecialchars(strtolower(trim(substr($line, 0, $delim_pos))));
|
||||||
$value = trim(substr($line, $delim_pos + 1));
|
$value = trim(substr($line, $delim_pos + 1));
|
||||||
|
|
||||||
if (in_array($value, array('off', 'false', '0')))
|
if (in_array($value, array('off', 'false', '0')))
|
||||||
|
@ -3384,7 +3384,11 @@ function parse_cfg_file($filename, $lines = false)
|
||||||
}
|
}
|
||||||
else if (($value[0] == "'" && $value[sizeof($value) - 1] == "'") || ($value[0] == '"' && $value[sizeof($value) - 1] == '"'))
|
else if (($value[0] == "'" && $value[sizeof($value) - 1] == "'") || ($value[0] == '"' && $value[sizeof($value) - 1] == '"'))
|
||||||
{
|
{
|
||||||
$value = substr($value, 1, sizeof($value)-2);
|
$value = htmlspecialchars(substr($value, 1, sizeof($value)-2));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$value = htmlspecialchars($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
$parsed_items[$key] = $value;
|
$parsed_items[$key] = $value;
|
||||||
|
|
|
@ -18,5 +18,5 @@
|
||||||
|
|
||||||
# General Information about this style
|
# General Information about this style
|
||||||
name = prosilver
|
name = prosilver
|
||||||
copyright = © phpBB Group, 2007
|
copyright = © phpBB Group, 2007
|
||||||
version = 3.0.12
|
version = 3.0.12
|
|
@ -18,5 +18,5 @@
|
||||||
|
|
||||||
# General Information about this style
|
# General Information about this style
|
||||||
name = subsilver2
|
name = subsilver2
|
||||||
copyright = © 2005 phpBB Group
|
copyright = © 2005 phpBB Group
|
||||||
version = 3.0.12
|
version = 3.0.12
|
||||||
|
|
103
tests/functions/parse_cfg_file_test.php
Normal file
103
tests/functions/parse_cfg_file_test.php
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) 2014 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
|
||||||
|
|
||||||
|
class phpbb_functions_parse_cfg_file extends phpbb_test_case
|
||||||
|
{
|
||||||
|
public function parse_cfg_file_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'#',
|
||||||
|
'# phpBB Style Configuration File',
|
||||||
|
'#',
|
||||||
|
'# @package phpBB3',
|
||||||
|
'# @copyright (c) 2005 phpBB Group',
|
||||||
|
'# @license http://opensource.org/licenses/gpl-license.php GNU Public License',
|
||||||
|
'#',
|
||||||
|
'#',
|
||||||
|
'# At the left is the name, please do not change this',
|
||||||
|
'# At the right the value is entered',
|
||||||
|
'# For on/off options the valid values are on, off, 1, 0, true and false',
|
||||||
|
'#',
|
||||||
|
'# Values get trimmed, if you want to add a space in front or at the end of',
|
||||||
|
'# the value, then enclose the value with single or double quotes.',
|
||||||
|
'# Single and double quotes do not need to be escaped.',
|
||||||
|
'#',
|
||||||
|
'',
|
||||||
|
'# General Information about this style',
|
||||||
|
'name = prosilver',
|
||||||
|
'copyright = © phpBB Group, 2007',
|
||||||
|
'version = 3.0.12',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'name' => 'prosilver',
|
||||||
|
'copyright' => '© phpBB Group, 2007',
|
||||||
|
'version' => '3.0.12',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'name = subsilver2',
|
||||||
|
'copyright = © 2005 phpBB Group',
|
||||||
|
'version = 3.0.12',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'name' => 'subsilver2',
|
||||||
|
'copyright' => '© 2005 phpBB Group',
|
||||||
|
'version' => '3.0.12',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'foo = on',
|
||||||
|
'foo1 = true',
|
||||||
|
'foo2 = 1',
|
||||||
|
'bar = off',
|
||||||
|
'bar1 = false',
|
||||||
|
'bar2 = 0',
|
||||||
|
'foobar =',
|
||||||
|
'foobar1 = "asdf"',
|
||||||
|
'foobar2 = \'qwer\'',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'foo' => true,
|
||||||
|
'foo1' => true,
|
||||||
|
'foo2' => true,
|
||||||
|
'bar' => false,
|
||||||
|
'bar1' => false,
|
||||||
|
'bar2' => false,
|
||||||
|
'foobar' => '',
|
||||||
|
'foobar1' => 'asdf',
|
||||||
|
'foobar2' => 'qwer',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'foo = & bar',
|
||||||
|
'bar = <a href="test">Test</a>',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'foo' => '&amp; bar',
|
||||||
|
'bar' => '<a href="test">Test</a>',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider parse_cfg_file_data
|
||||||
|
*/
|
||||||
|
public function test_parse_cfg_file($file_contents, $expected)
|
||||||
|
{
|
||||||
|
$this->assertEquals($expected, parse_cfg_file(false, $file_contents));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue