You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.2 KiB

13 years ago
<?php
namespace yiiunit;
13 years ago
class TestCase extends \yii\test\TestCase
{
public static $params;
13 years ago
protected function setUp() {
parent::setUp();
}
protected function tearDown()
{
parent::tearDown();
// If defined and set to true, destroy the app after each test.
// This will cause tests to fail, that rely on an existing app, but don't
// call requireApp() in their setUp().
if (defined('YII_DESTROY_APP_ON_TEARDOWN') && YII_DESTROY_APP_ON_TEARDOWN === true) {
$this->destroyApp();
}
}
public function getParam($name)
13 years ago
{
if (self::$params === null) {
self::$params = require(__DIR__ . '/data/config.php');
13 years ago
}
return isset(self::$params[$name]) ? self::$params[$name] : null;
13 years ago
}
protected function requireApp($requiredConfig=array())
{
static $usedConfig = array();
static $defaultConfig = array(
'id' => 'testapp',
'basePath' => __DIR__,
);
$newConfig = array_merge( $defaultConfig, $requiredConfig );
if (!(\yii::$app instanceof \yii\web\Application)) {
new \yii\web\Application( $newConfig );
$usedConfig = $newConfig;
} elseif ($newConfig !== $usedConfig) {
new \yii\web\Application( $newConfig );
$usedConfig = $newConfig;
}
}
protected function destroyApp()
{
\yii::$app = null;
}
}