assertEquals($expected, $actual); } /** * Asserting two strings equality ignoring line endings * * @param string $needle * @param string $haystack */ public function assertContainsWithoutLE(string $needle, string $haystack) { $needle = str_replace("\r\n", "\n", $needle); $haystack = str_replace("\r\n", "\n", $haystack); $this->assertContains($needle, $haystack); } /** * {@inheritDoc} */ protected function setUp() { parent::setUp(); $this->mockWebApplication(); } /** * {@inheritDoc} */ protected function tearDown() { parent::tearDown(); $this->destroyApplication(); } /** * @param array $config * @param string $appClass */ protected function mockWebApplication(array $config = [], string $appClass = '\yii\web\Application') { new $appClass(ArrayHelper::merge([ 'id' => 'testapp', 'basePath' => __DIR__, 'vendorPath' => dirname(__DIR__) . '/vendor', 'aliases' => [ '@bower' => '@vendor/bower-asset', '@npm' => '@vendor/npm-asset', ], 'components' => [ 'request' => [ 'cookieValidationKey' => 'wefJDF8sfdsfSDefwqdxj9oq', 'scriptFile' => __DIR__ . '/index.php', 'scriptUrl' => '/index.php', ] ] ], $config)); } /** * Mocks controller action with parameters * * @param string $controllerId * @param string $actionID * @param string|null $moduleID * @param array $params */ protected function mockAction(string $controllerId, string $actionID, string $moduleID = null, array $params = []) { Yii::$app->controller = $controller = new Controller($controllerId, Yii::$app); $controller->actionParams = $params; $controller->action = new Action($actionID, $controller); if ($moduleID !== null) { $controller->module = new Module($moduleID); } } /** * Removes controller */ protected function removeMockedAction() { Yii::$app->controller = null; } /** * Destroys application in Yii::$app by setting it to null. */ protected function destroyApplication() { Yii::$app = null; Yii::$container = new Container(); } }