diff options
-rw-r--r-- | src/PhpBB3Lib.php | 17 | ||||
-rw-r--r-- | test/PhpBB3LibTest.php | 16 |
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 ) + ); + } } |