summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruckelman <uckelman@nomic.net>2010-04-11 13:55:10 +0000
committeruckelman <uckelman@nomic.net>2010-04-11 13:55:10 +0000
commit386872f4367e9dedb5664839d451f956626d6a80 (patch)
tree43bbc8e5c842686e77de5365d077535e84cd224b
parenteec95b8ff65316efd6b294898cf752fbfeb81e79 (diff)
Refactoring to make PhpBB object.
git-svn-id: https://vassalengine.svn.sourceforge.net/svnroot/vassalengine/site-src/trunk@6645 67b53d14-2c14-4ace-a08f-0dab2b34000c
-rw-r--r--src/PhpBB3.php74
-rw-r--r--src/PhpBB3Lib.php70
-rw-r--r--test/PhpBB3Test.php (renamed from test/PhpBB3LibTest.php)35
3 files changed, 92 insertions, 87 deletions
diff --git a/src/PhpBB3.php b/src/PhpBB3.php
new file mode 100644
index 0000000..d8b9ba4
--- /dev/null
+++ b/src/PhpBB3.php
@@ -0,0 +1,74 @@
+<?php
+
+# phpBB setup
+define('IN_PHPBB', true);
+require_once(__DIR__ . '/PhpBB3Conf.php');
+$phpEx = substr(strrchr(__FILE__, '.'), 1);
+require_once($phpbb_root_path . 'common.' . $phpEx);
+require_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
+require_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+
+class PhpBB3 {
+ public function __construct() {
+ }
+
+ public function getUserId($from) {
+ global $db;
+
+ $sql = 'SELECT user_id FROM ' . USERS_TABLE .
+ ' WHERE user_email = "' . $db->sql_escape($from) . '"';
+
+ $row = $this->get_exactly_one_row($sql);
+ return $row['user_id'];
+ }
+
+ public function getUserName($id) {
+ # NB: user_get_id_name is pass-by-reference; we copy $id to prevent
+ # it from being modified, as we might need it for error messages
+ $ids = array($id);
+ $err = user_get_id_name($ids, $names);
+ if ($err) {
+ trigger_error("Could not resolve user id $id: $err", E_USER_ERROR);
+ }
+
+ if (!array_key_exists($id, $names)) {
+ trigger_error("Unknown user id: $id", E_USER_ERROR);
+ }
+
+ return $names[$id];
+ }
+
+ public function getTopicAndForumIds($post_id) {
+ global $db;
+
+ $sql = 'SELECT topic_id, forum_id FROM ' . POSTS_TABLE .
+ ' WHERE post_id = "' . $db->sql_escape($post_id) . '"';
+
+ $row = get_exactly_one_row($sql);
+ return $row;
+ }
+
+ protected function get_exactly_one_row($sql) {
+ global $db;
+
+ $result = $db->sql_query($sql);
+
+ $rows = $db->sql_fetchrowset($result);
+ $db->sql_freeresult($result);
+
+ switch (count($rows)) {
+ case 0:
+ trigger_error("No rows returned: $sql", E_USER_ERROR);
+ break;
+
+ case 1:
+ return $rows[0];
+
+ default:
+ trigger_error("Too many rows returned: $sql", E_USER_ERROR);
+ break;
+ }
+ }
+}
+
+?>
diff --git a/src/PhpBB3Lib.php b/src/PhpBB3Lib.php
deleted file mode 100644
index 5d39ae0..0000000
--- a/src/PhpBB3Lib.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-# phpBB setup
-define('IN_PHPBB', true);
-require_once(__DIR__ . '/PhpBB3Conf.php');
-$phpEx = substr(strrchr(__FILE__, '.'), 1);
-require_once($phpbb_root_path . 'common.' . $phpEx);
-require_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
-require_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
-
-
-function get_user_id($from) {
- global $db;
-
- $sql = 'SELECT user_id FROM ' . USERS_TABLE .
- ' WHERE user_email = "' . $db->sql_escape($from) . '"';
-
- $row = get_exactly_one_row($sql);
- return $row['user_id'];
-}
-
-function get_user_name($id) {
- # NB: user_get_id_name is pass-by-reference; we copy $id to prevent
- # it from being modified, as we might need it for error messages
- $ids = array($id);
- $err = user_get_id_name($ids, $names);
- if ($err) {
- trigger_error("Could not resolve user id $id: $err", E_USER_ERROR);
- }
-
- if (!array_key_exists($id, $names)) {
- trigger_error("Unknown user id: $id", E_USER_ERROR);
- }
-
- return $names[$id];
-}
-
-function get_topic_and_forum_ids($post_id) {
- global $db;
-
- $sql = 'SELECT topic_id, forum_id FROM ' . POSTS_TABLE .
- ' WHERE post_id = "' . $db->sql_escape($post_id) . '"';
-
- $row = get_exactly_one_row($sql);
- return $row;
-}
-
-function get_exactly_one_row($sql) {
- global $db;
-
- $result = $db->sql_query($sql);
-
- $rows = $db->sql_fetchrowset($result);
- $db->sql_freeresult($result);
-
- switch (count($rows)) {
- case 0:
- trigger_error("No rows returned: $sql", E_USER_ERROR);
- break;
-
- case 1:
- return $rows[0];
-
- default:
- trigger_error("Too many rows returned: $sql", E_USER_ERROR);
- break;
- }
-}
-
-?>
diff --git a/test/PhpBB3LibTest.php b/test/PhpBB3Test.php
index 21fe862..8f06170 100644
--- a/test/PhpBB3LibTest.php
+++ b/test/PhpBB3Test.php
@@ -2,7 +2,7 @@
require_once('PHPUnit/Framework.php');
-class PhpBB3LibTest extends PHPUnit_Framework_TestCase {
+class PhpBB3Test extends PHPUnit_Framework_TestCase {
/**
* phpBB3 uses many globals; due to the way tests are run, we cannot
@@ -13,8 +13,9 @@ class PhpBB3LibTest extends PHPUnit_Framework_TestCase {
protected function exec_kludge($run) {
$prog = <<<EOF
try {
- require_once("src/PhpBB3Lib.php");
- \$result = serialize($run);
+ require_once("src/PhpBB3.php");
+ \$phpBB = new PhpBB3();
+ \$result = serialize(\$phpBB->$run);
}
catch (Exception \$e) {
\$result = serialize(\$e);
@@ -33,47 +34,47 @@ EOF;
}
/**
- * @dataProvider provider_get_user_id
+ * @dataProvider provider_GetUserId
*/
- public function test_get_user_id($from, $expected, $ex) {
+ public function testGetUserId($from, $expected, $ex) {
if ($ex) $this->setExpectedException($ex);
- $run = 'get_user_id("' . $from . '")';
+ $run = 'getUserId("' . $from . '")';
$this->assertEquals($expected, $this->exec_kludge($run));
}
- public function provider_get_user_id() {
+ public function providerGetUserId() {
return array(
- array('bogus', null, 'PHPUnit_Framework_Error'),
+ array('bogus', null, 'PHPUnit_Framework_Error'),
array('uckelman@nomic.net', 2, null)
);
}
/**
- * @dataProvider provider_get_user_name
+ * @dataProvider providerGetUserName
*/
- public function test_get_user_name($id, $expected, $ex) {
+ public function testGetUserName($id, $expected, $ex) {
if ($ex) $this->setExpectedException($ex);
- $run = 'get_user_name(' . $id . ')';
+ $run = 'getUserName(' . $id . ')';
$this->assertEquals($expected, $this->exec_kludge($run));
}
- public function provider_get_user_name() {
+ public function providerGetUserName() {
return array(
- array(0, null, 'PHPUnit_Framework_Error'),
+ array(0, null, 'PHPUnit_Framework_Error'),
array(2, 'admin', null )
);
}
/**
- * @dataProvider provider_get_topic_id
+ * @dataProvider providerGetTopicAndForumIds
*/
- public function test_get_topic_and_forum_ids($post_id, $expected, $ex) {
+ public function testGetTopicAndForumIds($post_id, $expected, $ex) {
if ($ex) $this->setExpectedException($ex);
- $run = 'get_topic_and_forum_ids(' . $post_id . ')';
+ $run = 'getTopicAndForumIds(' . $post_id . ')';
$this->assertEquals($expected, $this->exec_kludge($run));
}
- public function provider_get_topic_id() {
+ public function providerGetTopicAndForumIds() {
return array(
array(0, null, 'PHPUnit_Framework_Error'),
array(2, array('topic_id' => 2, 'forum_id' => 2), null)