1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-06-03 13:05:44 +02:00
php-phpbb/tests/installer/database_helper_test.php
Mate Bartus 1c01252b5d [ticket/13740] Fix test stubs
PHPBB3-13740
2015-07-08 16:25:30 +02:00

140 lines
2.6 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.
*
*/
class phpbb_installer_database_helper_test extends phpbb_test_case
{
/**
* @var phpbb\install\helper\database
*/
private $database_helper;
/**
* @var phpbb\db\driver\driver_interface
*/
private $dbms_mock;
public function setUp()
{
$filesystem = new \phpbb\filesystem\filesystem();
$phpbb_root_path = '';
$this->database_helper = new \phpbb\install\helper\database($filesystem, $phpbb_root_path);
}
/**
* @param string $input
* @param string $expected
*
* @dataProvider comment_string_provider
*/
public function test_remove_comments($input, $expected)
{
$this->assertEquals($expected, $this->database_helper->remove_comments($input));
}
/**
* @param array $expected
* @param string $sql
* @param string $delimiter
*
* @dataProvider sql_file_string_provider
*/
public function test_split_sql($expected, $sql, $delimiter)
{
$this->assertEquals($expected, $this->database_helper->split_sql_file($sql, $delimiter));
}
/**
* @param bool|array $expected
* @param string $test_string
*
* @dataProvider prefix_test_case_provider
*/
public function test_validate_table_prefix($expected, $test_string)
{
$this->assertEquals($expected, $this->database_helper->validate_table_prefix('oracle', $test_string));
}
// Data provider for the remove comments function
public function comment_string_provider()
{
return array(
array(
'abc',
'abc',
),
array(
'abc /* asdf */',
"abc \n",
),
array(
'abc /* asdf */ f',
"abc \n f",
),
array(
'# abc',
"\n",
),
);
}
// Data provider for the sql file splitter function
public function sql_file_string_provider()
{
return array(
array(
array(
'abcd "efgh"' . "\n" . 'qwerty',
'SELECT * FROM table',
),
'abcd "efgh"' . "\n" .
'qwerty' . "\n" .
'SELECT * FROM table',
';',
),
);
}
// Test data for prefix test
public function prefix_test_case_provider()
{
return array(
array(
true,
'phpbb_',
),
array(
true,
'phpbb',
),
array(
array(
array('title' => 'INST_ERR_DB_INVALID_PREFIX'),
),
'1hpbb_',
),
array(
array(
array('title' => 'INST_ERR_DB_INVALID_PREFIX'),
),
'?hpbb_',
),
array(
array(
array('title' => 'INST_ERR_PREFIX_TOO_LONG'),
),
'php_bb_',
),
);
}
}