LoginCest.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace frontend\tests\functional;
  3. use frontend\tests\FunctionalTester;
  4. use common\fixtures\UserFixture;
  5. class LoginCest
  6. {
  7. /**
  8. * Load fixtures before db transaction begin
  9. * Called in _before()
  10. * @see \Codeception\Module\Yii2::_before()
  11. * @see \Codeception\Module\Yii2::loadFixtures()
  12. * @return array
  13. */
  14. public function _fixtures()
  15. {
  16. return [
  17. 'user' => [
  18. 'class' => UserFixture::className(),
  19. 'dataFile' => codecept_data_dir() . 'login_data.php'
  20. ]
  21. ];
  22. }
  23. public function _before(FunctionalTester $I)
  24. {
  25. $I->amOnRoute('site/login');
  26. }
  27. protected function formParams($login, $password)
  28. {
  29. return [
  30. 'LoginForm[username]' => $login,
  31. 'LoginForm[password]' => $password,
  32. ];
  33. }
  34. public function checkEmpty(FunctionalTester $I)
  35. {
  36. $I->submitForm('#form-login', $this->formParams('', ''));
  37. $I->seeValidationError('用户名不能为空');
  38. $I->seeValidationError('密码不能为空');
  39. }
  40. public function checkWrongPassword(FunctionalTester $I)
  41. {
  42. $I->submitForm('#form-login', $this->formParams('admin', 'wrong'));
  43. $I->seeValidationError('用户名');
  44. }
  45. public function checkValidLogin(FunctionalTester $I)
  46. {
  47. $I->submitForm('#form-login', $this->formParams('erau', 'password_0'));
  48. $I->see('退出登录');
  49. $I->dontSeeLink('Login');
  50. $I->dontSeeLink('Signup');
  51. }
  52. }