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); } }