diff options
author | uckelman <uckelman@nomic.net> | 2010-03-21 19:04:22 +0000 |
---|---|---|
committer | uckelman <uckelman@nomic.net> | 2010-03-21 19:04:22 +0000 |
commit | aab481efddce9501b125e995d82c50f03e08d6e7 (patch) | |
tree | 2a72b7f82efeaa1def82649af2e3f1a4e906c94a /test/PhpBB3LibTest.php | |
parent | 1b1bd4936c1df0a9a1248697065e39e6f589bbdd (diff) |
Building libs for Mailman and PhpBB3.
git-svn-id: https://vassalengine.svn.sourceforge.net/svnroot/vassalengine/site-src/trunk@6625 67b53d14-2c14-4ace-a08f-0dab2b34000c
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) + ); + } +} |