RbacCest.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. namespace backend\tests\functional;
  3. use common\models\AdminUser;
  4. use backend\tests\FunctionalTester;
  5. use backend\fixtures\UserFixture;
  6. use yii\helpers\Url;
  7. /**
  8. * Class RbacTest
  9. */
  10. class RbacCest
  11. {
  12. public function _fixtures()
  13. {
  14. return [
  15. 'user' => [
  16. 'class' => UserFixture::className(),
  17. 'dataFile' => codecept_data_dir() . 'login_data.php'
  18. ]
  19. ];
  20. }
  21. public function _before(FunctionalTester $I)
  22. {
  23. $I->amLoggedInAs(AdminUser::findIdentity(1));
  24. }
  25. public function checkPermissions(FunctionalTester $I)
  26. {
  27. $I->amOnPage(Url::toRoute('/rbac/permissions'));
  28. $I->see('路由');
  29. $I->see("描述");
  30. }
  31. public function checkCreatePermission(FunctionalTester $I)
  32. {
  33. $I->amOnPage(Url::toRoute('/rbac/permission-create'));
  34. $I->fillField("RBACPermissionForm[route]", '/test/index');
  35. $I->fillField("RBACPermissionForm[description]", 'test permission description');
  36. $I->fillField("RBACPermissionForm[group]", 'test group');
  37. $I->fillField("RBACPermissionForm[category]", 'test category');
  38. $I->submitForm("button[type=submit]", ["RBACPermissionForm[method]" => "POST"]);
  39. $I->see("/test/index");
  40. }
  41. public function checkUpdatePermission(FunctionalTester $I)
  42. {
  43. $I->amOnPage(Url::toRoute('/rbac/permissions'));
  44. $I->click("a[title=编辑]");
  45. $I->fillField("RBACPermissionForm[route]", '/test/index-update');
  46. $I->fillField("RBACPermissionForm[description]", 'test update permission description');
  47. $I->fillField("RBACPermissionForm[group]", 'test update group');
  48. $I->fillField("RBACPermissionForm[category]", 'test update category');
  49. $I->submitForm("button[type=submit]", ["RBACPermissionForm[method]" => "GET"]);
  50. $I->see("/test/index-update");
  51. }
  52. public function checkViewPermission(FunctionalTester $I)
  53. {
  54. $I->amOnPage(Url::toRoute('/rbac/permissions'));
  55. $urls = $I->grabMultiple("table a[title=查看]", "url");
  56. $I->amOnPage($urls[0]);
  57. $I->see('路由');
  58. }
  59. public function checkDeletePermission(FunctionalTester $I)
  60. {
  61. $I->amOnPage(Url::toRoute('/rbac/permissions'));
  62. $urls = $I->grabMultiple("table a[title=删除]", "href");
  63. $I->sendAjaxPostRequest($urls[0]);
  64. $I->see('success');
  65. }
  66. public function checkSortPermission(FunctionalTester $I)
  67. {
  68. $I->amOnPage(Url::toRoute('/rbac/permissions'));
  69. $urls = $I->grabMultiple("table a[title=查看]", "url");
  70. $data = \GuzzleHttp\Psr7\parse_query($urls[0]);
  71. $key = json_encode(["name" => $data['name']]);
  72. $I->sendAjaxPostRequest(Url::toRoute("/rbac/permission-sort"), [
  73. "sort[$key]" => 1,
  74. ]);
  75. $I->see('success');
  76. }
  77. public function checkRoles(FunctionalTester $I)
  78. {
  79. $I->amOnPage(Url::toRoute('/rbac/roles'));
  80. $I->see('角色');
  81. $I->see("描述");
  82. }
  83. public function checkCreateRole(FunctionalTester $I)
  84. {
  85. $I->amOnPage(Url::toRoute('/rbac/role-create'));
  86. $I->fillField("RBACRoleForm[name]", 'test role');
  87. $I->fillField("RBACRoleForm[description]", 'test role description');
  88. $I->submitForm("button[type=submit]", []);
  89. $I->see("test role");
  90. }
  91. public function checkUpdateRole(FunctionalTester $I)
  92. {
  93. $I->amOnPage(Url::toRoute('/rbac/role-create'));
  94. $I->fillField("RBACRoleForm[name]", 'test role');
  95. $I->fillField("RBACRoleForm[description]", 'test role description');
  96. $I->submitForm("button[type=submit]", []);
  97. $I->amOnPage(Url::toRoute('/rbac/roles'));
  98. $I->click("a[title=编辑]");
  99. $I->fillField("RBACRoleForm[name]", 'test update role');
  100. $I->fillField("RBACRoleForm[description]", 'test update role');
  101. $I->submitForm("button[type=submit]", []);
  102. $I->see("test update role");
  103. }
  104. public function checkViewRole(FunctionalTester $I)
  105. {
  106. $I->amOnPage(Url::toRoute('/rbac/role-create'));
  107. $I->fillField("RBACRoleForm[name]", 'test role');
  108. $I->fillField("RBACRoleForm[description]", 'test role description');
  109. $I->submitForm("button[type=submit]", []);
  110. $I->amOnPage(Url::toRoute('/rbac/roles'));
  111. $urls = $I->grabMultiple("table a[title=查看]", "url");
  112. $I->amOnPage($urls[0]);
  113. $I->see('角色');
  114. }
  115. public function checkDeleteRole(FunctionalTester $I)
  116. {
  117. $I->amOnPage(Url::toRoute('/rbac/role-create'));
  118. $I->fillField("RBACRoleForm[name]", 'test role');
  119. $I->fillField("RBACRoleForm[description]", 'test role description');
  120. $I->submitForm("button[type=submit]", []);
  121. $I->amOnPage(Url::toRoute('/rbac/roles'));
  122. $urls = $I->grabMultiple("table a[title=删除]", "href");
  123. $I->sendAjaxPostRequest($urls[0]);
  124. $I->see('success');
  125. }
  126. public function checkSortRole(FunctionalTester $I)
  127. {
  128. $I->amOnPage(Url::toRoute('/rbac/role-create'));
  129. $I->fillField("RBACRoleForm[name]", 'test role');
  130. $I->fillField("RBACRoleForm[description]", 'test role description');
  131. $I->submitForm("button[type=submit]", []);
  132. $I->amOnPage(Url::toRoute('/rbac/roles'));
  133. $urls = $I->grabMultiple("table a[title=查看]", "url");
  134. $data = \GuzzleHttp\Psr7\parse_query($urls[0]);
  135. $key = json_encode(["name" => $data['name']]);
  136. $I->sendAjaxPostRequest(Url::toRoute("/rbac/role-sort"), [
  137. "sort[$key]" => 1,
  138. ]);
  139. $I->see('success');
  140. }
  141. }