diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/TestBase.php | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/tests/TestBase.php b/tests/TestBase.php index 3e2e213..b85c189 100644 --- a/tests/TestBase.php +++ b/tests/TestBase.php @@ -23,6 +23,18 @@ class TestBase extends PHPUnit_Framework_TestCase { /** + * Clean up after test + */ + public function tearDown() + { + if (file_exists($GLOBALS['datadir'] . '/config.unittest.php')) { + unlink($GLOBALS['datadir'] . '/config.unittest.php'); + } + } + + + + /** * Create a new bookmark. * * @param integer $user User ID the bookmark shall belong @@ -80,9 +92,26 @@ class TestBase extends PHPUnit_Framework_TestCase * @param string $password Password * * @return integer ID of user + * + * @uses addUserData() */ protected function addUser($username = null, $password = null) { + return reset($this->addUserData($username, $password)); + } + + + + /** + * Creates a new user in the database and returns id, username and password. + * + * @param string $username Username + * @param string $password Password + * + * @return array ID of user, Name of user, password of user + */ + protected function addUserData($username = null, $password = null) + { $us = SemanticScuttle_Service_Factory::get('User'); $rand = rand(); @@ -98,7 +127,7 @@ class TestBase extends PHPUnit_Framework_TestCase $password, 'unittest-' . $rand . '@example.org' ); - return $uid; + return array($uid, $username, $password); } @@ -129,6 +158,38 @@ class TestBase extends PHPUnit_Framework_TestCase return $uid; } + + + /** + * Writes a special unittest configuration file. + * The unittest config file is read when a GET request with unittestMode=1 + * is sent, and the user allowed unittestmode in config.php. + * + * @param array $arConfig Array with config names as key and their value as + * value + * + * @return void + */ + protected function setUnittestConfig($arConfig) + { + $str = '<' . "?php\r\n"; + foreach ($arConfig as $name => $value) { + $str .= '$' . $name . ' = ' + . var_export($value, true) . ";\n"; + } + + if (!is_dir($GLOBALS['datadir'])) { + $this->fail( + 'datadir not set or not a directory: ' . $GLOBALS['datadir'] + ); + } + + $this->assertInternalType( + 'integer', + file_put_contents($GLOBALS['datadir'] . '/config.unittest.php', $str), + 'Writing config.unittest.php failed' + ); + } } ?>
\ No newline at end of file |