diff options
| author | Tristan Darricau <tristan.darricau@sensiolabs.com> | 2015-07-27 11:24:43 +0200 |
|---|---|---|
| committer | Tristan Darricau <tristan.darricau@sensiolabs.com> | 2015-07-27 11:24:43 +0200 |
| commit | a0258ae25ce31101241f0873b21e4582cd47a368 (patch) | |
| tree | a828a84d8d57cf1b817e0f5adee83ea6cc288b5d /tests/installer/database_helper_test.php | |
| parent | 0e3b7e2de6e152960026a6533a1150e5fb1135aa (diff) | |
| parent | 11dfe503aac699b88a333967a1d0e594998414ae (diff) | |
| download | forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.gz forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.bz2 forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.xz forums-a0258ae25ce31101241f0873b21e4582cd47a368.zip | |
Merge pull request #3514 from CHItA/ticket/13740
[ticket/13740] Refactoring installer
* CHItA/ticket/13740: (75 commits)
[ticket/13740] Reduce number of references in nav provider
[ticket/13740] Move handle_language_select calls to the controllers
[ticket/13740] Fix infinite config.php check loop
[ticket/13740] Move default data settings out of constructors
[ticket/13740] Deduplicate container builder's checks
[ticket/13740] Use JSON for installer config
[ticket/13740] Fix comment
[ticket/13740] Use language service in console application
[ticket/13740] Fix CS in compatibilty_globals.php
[ticket/13740] Fix message element creation in JS
[ticket/13740] Replace more spaces with tabs
[ticket/13740] Fix CS
[ticket/13740] Filter basic directory change attempts in lang change
[ticket/13740] Use tabs instead of spaces in JS file
[ticket/13740] Add success message when install finished
[ticket/13740] Fix $script_path in obtain_data
[ticket/13740] Fix is_phpbb_installed() method
[ticket/13740] Login admin when install finished
[ticket/13740] Enhance server output buffer bypass
[ticket/13740] Secure installer config against corrupted config data
...
Diffstat (limited to 'tests/installer/database_helper_test.php')
| -rw-r--r-- | tests/installer/database_helper_test.php | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/tests/installer/database_helper_test.php b/tests/installer/database_helper_test.php new file mode 100644 index 0000000000..d2ebe76ad5 --- /dev/null +++ b/tests/installer/database_helper_test.php @@ -0,0 +1,141 @@ +<?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; + + 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('sqlite3', $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' => array('INST_ERR_PREFIX_TOO_LONG', 200)), + ), + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', + ), + array( + array( + array('title' => 'INST_ERR_DB_INVALID_PREFIX'), + array('title' => array('INST_ERR_PREFIX_TOO_LONG', 200)), + ), + '_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', + ), + ); + } +} |
