diff options
Diffstat (limited to 'test/PhpBB3LibTest.php')
-rw-r--r-- | test/PhpBB3LibTest.php | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/PhpBB3LibTest.php b/test/PhpBB3LibTest.php new file mode 100644 index 0000000..cfad41f --- /dev/null +++ b/test/PhpBB3LibTest.php @@ -0,0 +1,50 @@ +<?php + +require_once('PHPUnit/Framework.php'); + +class PhpBB3LibTest extends PHPUnit_Framework_TestCase { + + /** + * phpBB3 uses many globals; due to the way tests are run, we cannot + * easily get these globals into the right scope so that the methods + * called by our tests can see them. Therefore, we use this function + * to run tests externally and report back on the results. + */ + protected function exec_kludge($run) { + $prog = <<<EOF +try { + require_once("src/PhpBB3Lib.php"); + \$result = serialize($run); +} +catch (Exception \$e) { + \$result = serialize(\$e); +} + +print \$result; +EOF; + + $result = unserialize(exec('php -r \'' . $prog . '\'')); + + if ($result instanceof Exception) { + throw $result; + } + + return $result; + } + + /** + * @dataProvider provider_get_user_id + */ + public function test_get_user_id($from, $expected, $ex) { + if ($ex) $this->setExpectedException($ex); + $run = 'get_user_id("' . $from . '")'; + $this->assertEquals($expected, $this->exec_kludge($run)); + } + + public function provider_get_user_id() { + return array( + array('bogus', null, 'PHPUnit_Framework_Error'), + array('uckelman@nomic.net', 2, null) + ); + } +} |