summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/PhpBB3Lib.php17
-rw-r--r--test/PhpBB3LibTest.php16
2 files changed, 32 insertions, 1 deletions
diff --git a/src/PhpBB3Lib.php b/src/PhpBB3Lib.php
index f9f91d7..874591c 100644
--- a/src/PhpBB3Lib.php
+++ b/src/PhpBB3Lib.php
@@ -5,7 +5,7 @@ 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_user.' . $phpEx);
+require_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
function get_user_id($from) {
@@ -26,5 +26,20 @@ function get_user_id($from) {
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];
+}
?>
diff --git a/test/PhpBB3LibTest.php b/test/PhpBB3LibTest.php
index cfad41f..76e5bdc 100644
--- a/test/PhpBB3LibTest.php
+++ b/test/PhpBB3LibTest.php
@@ -47,4 +47,20 @@ EOF;
array('uckelman@nomic.net', 2, null)
);
}
+
+ /**
+ * @dataProvider provider_get_user_name
+ */
+ public function test_get_user_name($id, $expected, $ex) {
+ if ($ex) $this->setExpectedException($ex);
+ $run = 'get_user_name(' . $id . ')';
+ $this->assertEquals($expected, $this->exec_kludge($run));
+ }
+
+ public function provider_get_user_name() {
+ return array(
+ array(0, null, 'PHPUnit_Framework_Error'),
+ array(2, 'admin', null )
+ );
+ }
}