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.
261 lines
11 KiB
261 lines
11 KiB
<?php |
|
|
|
namespace tests\unit\widgets; |
|
|
|
use app\widgets\Alert; |
|
use Yii; |
|
|
|
class AlertTest extends \Codeception\Test\Unit |
|
{ |
|
public function testSingleErrorMessage() |
|
{ |
|
$message = 'This is an error message'; |
|
|
|
Yii::$app->session->setFlash('error', $message); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($message); |
|
verify($renderingResult)->stringContainsString('alert-danger'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testMultipleErrorMessages() |
|
{ |
|
$firstMessage = 'This is the first error message'; |
|
$secondMessage = 'This is the second error message'; |
|
|
|
Yii::$app->session->setFlash('error', [$firstMessage, $secondMessage]); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($firstMessage); |
|
verify($renderingResult)->stringContainsString($secondMessage); |
|
verify($renderingResult)->stringContainsString('alert-danger'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testSingleDangerMessage() |
|
{ |
|
$message = 'This is a danger message'; |
|
|
|
Yii::$app->session->setFlash('danger', $message); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($message); |
|
verify($renderingResult)->stringContainsString('alert-danger'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testMultipleDangerMessages() |
|
{ |
|
$firstMessage = 'This is the first danger message'; |
|
$secondMessage = 'This is the second danger message'; |
|
|
|
Yii::$app->session->setFlash('danger', [$firstMessage, $secondMessage]); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($firstMessage); |
|
verify($renderingResult)->stringContainsString($secondMessage); |
|
verify($renderingResult)->stringContainsString('alert-danger'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testSingleSuccessMessage() |
|
{ |
|
$message = 'This is a success message'; |
|
|
|
Yii::$app->session->setFlash('success', $message); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($message); |
|
verify($renderingResult)->stringContainsString('alert-success'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-danger'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testMultipleSuccessMessages() |
|
{ |
|
$firstMessage = 'This is the first danger message'; |
|
$secondMessage = 'This is the second danger message'; |
|
|
|
Yii::$app->session->setFlash('success', [$firstMessage, $secondMessage]); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($firstMessage); |
|
verify($renderingResult)->stringContainsString($secondMessage); |
|
verify($renderingResult)->stringContainsString('alert-success'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-danger'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testSingleInfoMessage() |
|
{ |
|
$message = 'This is an info message'; |
|
|
|
Yii::$app->session->setFlash('info', $message); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($message); |
|
verify($renderingResult)->stringContainsString('alert-info'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-danger'); |
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testMultipleInfoMessages() |
|
{ |
|
$firstMessage = 'This is the first info message'; |
|
$secondMessage = 'This is the second info message'; |
|
|
|
Yii::$app->session->setFlash('info', [$firstMessage, $secondMessage]); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($firstMessage); |
|
verify($renderingResult)->stringContainsString($secondMessage); |
|
verify($renderingResult)->stringContainsString('alert-info'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-danger'); |
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-warning'); |
|
} |
|
|
|
public function testSingleWarningMessage() |
|
{ |
|
$message = 'This is a warning message'; |
|
|
|
Yii::$app->session->setFlash('warning', $message); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($message); |
|
verify($renderingResult)->stringContainsString('alert-warning'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-danger'); |
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
} |
|
|
|
public function testMultipleWarningMessages() |
|
{ |
|
$firstMessage = 'This is the first warning message'; |
|
$secondMessage = 'This is the second warning message'; |
|
|
|
Yii::$app->session->setFlash('warning', [$firstMessage, $secondMessage]); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($firstMessage); |
|
verify($renderingResult)->stringContainsString($secondMessage); |
|
verify($renderingResult)->stringContainsString('alert-warning'); |
|
|
|
verify($renderingResult)->stringNotContainsString('alert-danger'); |
|
verify($renderingResult)->stringNotContainsString('alert-success'); |
|
verify($renderingResult)->stringNotContainsString('alert-info'); |
|
} |
|
|
|
public function testSingleMixedMessages() { |
|
$errorMessage = 'This is an error message'; |
|
$dangerMessage = 'This is a danger message'; |
|
$successMessage = 'This is a success message'; |
|
$infoMessage = 'This is a info message'; |
|
$warningMessage = 'This is a warning message'; |
|
|
|
Yii::$app->session->setFlash('error', $errorMessage); |
|
Yii::$app->session->setFlash('danger', $dangerMessage); |
|
Yii::$app->session->setFlash('success', $successMessage); |
|
Yii::$app->session->setFlash('info', $infoMessage); |
|
Yii::$app->session->setFlash('warning', $warningMessage); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($errorMessage); |
|
verify($renderingResult)->stringContainsString($dangerMessage); |
|
verify($renderingResult)->stringContainsString($successMessage); |
|
verify($renderingResult)->stringContainsString($infoMessage); |
|
verify($renderingResult)->stringContainsString($warningMessage); |
|
|
|
verify($renderingResult)->stringContainsString('alert-danger'); |
|
verify($renderingResult)->stringContainsString('alert-success'); |
|
verify($renderingResult)->stringContainsString('alert-info'); |
|
verify($renderingResult)->stringContainsString('alert-warning'); |
|
} |
|
|
|
public function testMultipleMixedMessages() { |
|
$firstErrorMessage = 'This is the first error message'; |
|
$secondErrorMessage = 'This is the second error message'; |
|
$firstDangerMessage = 'This is the first danger message'; |
|
$secondDangerMessage = 'This is the second'; |
|
$firstSuccessMessage = 'This is the first success message'; |
|
$secondSuccessMessage = 'This is the second success message'; |
|
$firstInfoMessage = 'This is the first info message'; |
|
$secondInfoMessage = 'This is the second info message'; |
|
$firstWarningMessage = 'This is the first warning message'; |
|
$secondWarningMessage = 'This is the second warning message'; |
|
|
|
Yii::$app->session->setFlash('error', [$firstErrorMessage, $secondErrorMessage]); |
|
Yii::$app->session->setFlash('danger', [$firstDangerMessage, $secondDangerMessage]); |
|
Yii::$app->session->setFlash('success', [$firstSuccessMessage, $secondSuccessMessage]); |
|
Yii::$app->session->setFlash('info', [$firstInfoMessage, $secondInfoMessage]); |
|
Yii::$app->session->setFlash('warning', [$firstWarningMessage, $secondWarningMessage]); |
|
|
|
$renderingResult = Alert::widget(); |
|
|
|
verify($renderingResult)->stringContainsString($firstErrorMessage); |
|
verify($renderingResult)->stringContainsString($secondErrorMessage); |
|
verify($renderingResult)->stringContainsString($firstDangerMessage); |
|
verify($renderingResult)->stringContainsString($secondDangerMessage); |
|
verify($renderingResult)->stringContainsString($firstSuccessMessage); |
|
verify($renderingResult)->stringContainsString($secondSuccessMessage); |
|
verify($renderingResult)->stringContainsString($firstInfoMessage); |
|
verify($renderingResult)->stringContainsString($secondInfoMessage); |
|
verify($renderingResult)->stringContainsString($firstWarningMessage); |
|
verify($renderingResult)->stringContainsString($secondWarningMessage); |
|
|
|
verify($renderingResult)->stringContainsString('alert-danger'); |
|
verify($renderingResult)->stringContainsString('alert-success'); |
|
verify($renderingResult)->stringContainsString('alert-info'); |
|
verify($renderingResult)->stringContainsString('alert-warning'); |
|
} |
|
|
|
public function testFlashIntegrity() |
|
{ |
|
$errorMessage = 'This is an error message'; |
|
$unrelatedMessage = 'This is a message that is not related to the alert widget'; |
|
|
|
Yii::$app->session->setFlash('error', $errorMessage); |
|
Yii::$app->session->setFlash('unrelated', $unrelatedMessage); |
|
|
|
Alert::widget(); |
|
|
|
// Simulate redirect |
|
Yii::$app->session->close(); |
|
Yii::$app->session->open(); |
|
|
|
verify(Yii::$app->session->getFlash('error'))->empty(); |
|
verify(Yii::$app->session->getFlash('unrelated'))->equals($unrelatedMessage); |
|
} |
|
}
|
|
|