aboutsummaryrefslogtreecommitdiffstats
path: root/tests/installer/database_helper_test.php
diff options
context:
space:
mode:
authorTristan Darricau <tristan.darricau@sensiolabs.com>2015-07-27 11:24:43 +0200
committerTristan Darricau <tristan.darricau@sensiolabs.com>2015-07-27 11:24:43 +0200
commita0258ae25ce31101241f0873b21e4582cd47a368 (patch)
treea828a84d8d57cf1b817e0f5adee83ea6cc288b5d /tests/installer/database_helper_test.php
parent0e3b7e2de6e152960026a6533a1150e5fb1135aa (diff)
parent11dfe503aac699b88a333967a1d0e594998414ae (diff)
downloadforums-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.php141
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',
+ ),
+ );
+ }
+}