aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/dbal/connect_test.php44
-rw-r--r--tests/fixtures/empty.xml5
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/dbal/connect_test.php b/tests/dbal/connect_test.php
new file mode 100644
index 0000000000..4964f24ba2
--- /dev/null
+++ b/tests/dbal/connect_test.php
@@ -0,0 +1,44 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2012 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_dbal_connect_test extends phpbb_database_test_case
+{
+ public function getDataSet()
+ {
+ return $this->createXMLDataSet(dirname(__FILE__) . '/../fixtures/empty.xml');
+ }
+
+ public function test_failing_connect()
+ {
+ global $phpbb_root_path, $phpEx;
+
+ $config = $this->get_database_config();
+
+ require_once dirname(__FILE__) . '/../../phpBB/includes/db/' . $config['dbms'] . '.php';
+ $dbal = 'dbal_' . $config['dbms'];
+ $db = new $dbal();
+
+ // Failure to connect results in a trigger_error call in dbal.
+ // phpunit converts triggered errors to exceptions.
+ // In particular there should be no fatals here.
+ try
+ {
+ $db->sql_connect($config['dbhost'], 'phpbbogus', 'phpbbogus', 'phpbbogus', $config['dbport']);
+ $this->assertFalse(true);
+ } catch (Exception $e)
+ {
+ // should have a legitimate message
+ $this->assertNotEmpty($e->getMessage());
+ }
+
+ return $db;
+ }
+}
diff --git a/tests/fixtures/empty.xml b/tests/fixtures/empty.xml
new file mode 100644
index 0000000000..96eb1ab483
--- /dev/null
+++ b/tests/fixtures/empty.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<dataset>
+ <table name="phpbb_posts">
+ </table>
+</dataset>