LoginCest.php 1.6 KB

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