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.
		
		
		
		
		
			
		
			
				
					
					
						
							83 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							83 lines
						
					
					
						
							2.3 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace yiiunit\extensions\bootstrap; | 
						|
 | 
						|
use yii\di\Container; | 
						|
use yii\helpers\ArrayHelper; | 
						|
use Yii; | 
						|
 | 
						|
/** | 
						|
 * This is the base class for all yii framework unit tests. | 
						|
 */ | 
						|
abstract class TestCase extends \PHPUnit_Framework_TestCase | 
						|
{ | 
						|
    protected function setUp() | 
						|
    { | 
						|
        parent::setUp(); | 
						|
        $this->mockWebApplication(); | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * Clean up after test. | 
						|
     * By default the application created with [[mockApplication]] will be destroyed. | 
						|
     */ | 
						|
    protected function tearDown() | 
						|
    { | 
						|
        parent::tearDown(); | 
						|
        $this->destroyApplication(); | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * Populates Yii::$app with a new application | 
						|
     * The application will be destroyed on tearDown() automatically. | 
						|
     * @param array $config The application configuration, if needed | 
						|
     * @param string $appClass name of the application class to create | 
						|
     */ | 
						|
    protected function mockApplication($config = [], $appClass = '\yii\console\Application') | 
						|
    { | 
						|
        new $appClass(ArrayHelper::merge([ | 
						|
            'id' => 'testapp', | 
						|
            'basePath' => __DIR__, | 
						|
            'vendorPath' => dirname(__DIR__) . '/vendor', | 
						|
        ], $config)); | 
						|
    } | 
						|
 | 
						|
    protected function mockWebApplication($config = [], $appClass = '\yii\web\Application') | 
						|
    { | 
						|
        new $appClass(ArrayHelper::merge([ | 
						|
            'id' => 'testapp', | 
						|
            'basePath' => __DIR__, | 
						|
            'vendorPath' => dirname(__DIR__) . '/vendor', | 
						|
            'components' => [ | 
						|
                'request' => [ | 
						|
                    'cookieValidationKey' => 'wefJDF8sfdsfSDefwqdxj9oq', | 
						|
                    'scriptFile' => __DIR__ .'/index.php', | 
						|
                    'scriptUrl' => '/index.php', | 
						|
                ], | 
						|
            ] | 
						|
        ], $config)); | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * Destroys application in Yii::$app by setting it to null. | 
						|
     */ | 
						|
    protected function destroyApplication() | 
						|
    { | 
						|
        Yii::$app = null; | 
						|
        Yii::$container = new Container(); | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * Asserting two strings equality ignoring line endings | 
						|
     * | 
						|
     * @param string $expected | 
						|
     * @param string $actual | 
						|
     */ | 
						|
    public function assertEqualsWithoutLE($expected, $actual) | 
						|
    { | 
						|
        $expected = str_replace("\r\n", "\n", $expected); | 
						|
        $actual = str_replace("\r\n", "\n", $actual); | 
						|
 | 
						|
        $this->assertEquals($expected, $actual); | 
						|
    } | 
						|
}
 | 
						|
 |