Context.php 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace Muzich\CoreBundle\Tests\lib\Security;
  3. use Muzich\CoreBundle\lib\Test\Client;
  4. use Muzich\CoreBundle\Entity\User;
  5. use Muzich\CoreBundle\Security\Context as SecurityContext;
  6. use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
  7. use Muzich\CoreBundle\Tests\lib\Security\ContextTestCases as SecurityContextTestCases;
  8. class Context
  9. {
  10. protected $test;
  11. protected $security_context_tests;
  12. public function __construct(Client $client, WebTestCase $test)
  13. {
  14. $this->test = $test;
  15. $this->security_context_tests = new SecurityContextTestCases($client, $test);
  16. }
  17. public function userIsInConditionEmailNotConfirmed(User $user)
  18. {
  19. return $this->userIsInCondition($user, SecurityContext::CONDITION_USER_EMAIL_NOT_CONFIRMED);
  20. }
  21. public function userIsNotInConditionEmailNotConfirmed(User $user)
  22. {
  23. return !$this->userIsInCondition($user, SecurityContext::CONDITION_USER_EMAIL_NOT_CONFIRMED);
  24. }
  25. protected function userIsInCondition(User $user, $condition)
  26. {
  27. $security_context = new SecurityContext($user);
  28. return $security_context->userIsInThisCondition($condition);
  29. }
  30. public function testUserCantMakeActionStatus($action, $condition, $match)
  31. {
  32. $this->test->assertEquals($match, $this->testActionResponseInPratice($action, $condition, false));
  33. }
  34. private function testActionResponseInPratice($action, $condition, $success)
  35. {
  36. switch ($action)
  37. {
  38. case SecurityContext::ACTION_ELEMENT_ADD:
  39. return $this->security_context_tests->addElementResponseIs($success, $condition);
  40. break;
  41. case SecurityContext::ACTION_ELEMENT_NOTE:
  42. return $this->security_context_tests->noteElementResponseIs($success, $condition);
  43. break;
  44. case SecurityContext::ACTION_COMMENT_ALERT:
  45. return $this->security_context_tests->alertCommentResponseIs($success, $condition);
  46. break;
  47. case SecurityContext::ACTION_ELEMENT_ALERT:
  48. return $this->security_context_tests->alertElementResponseIs($success, $condition);
  49. break;
  50. case SecurityContext::ACTION_TAG_ADD:
  51. return $this->security_context_tests->addTagResponseIs($success, $condition);
  52. break;
  53. case SecurityContext::ACTION_ELEMENT_TAGS_PROPOSITION:
  54. return $this->security_context_tests->proposeElementTagsResponseIs($success, $condition);
  55. break;
  56. case SecurityContext::ACTION_GROUP_ADD:
  57. return $this->security_context_tests->addGroupResponseIs($success, $condition);
  58. break;
  59. case SecurityContext::ACTION_COMMENT_ADD:
  60. return $this->security_context_tests->addCommentResponseIs($success, $condition);
  61. break;
  62. case SecurityContext::ACTION_ELEMENT_ADD_TO_FAVORITES:
  63. return $this->security_context_tests->addElementToFavoriteResponseIs($success, $condition);
  64. break;
  65. case SecurityContext::ACTION_USER_FOLLOW:
  66. return $this->security_context_tests->followUserResponseIs($success, $condition);
  67. break;
  68. case SecurityContext::ACTION_GET_FAVORITES_TAGS:
  69. return $this->security_context_tests->getFavoritesTagsResponseIs($success, $condition);
  70. break;
  71. case SecurityContext::ACTION_PLAYLIST_ADD_ELEMENT:
  72. return $this->security_context_tests->playlistAddElementResponseIs($success, $condition);
  73. break;
  74. case SecurityContext::ACTION_PLAYLIST_UPDATE_ORDER:
  75. return $this->security_context_tests->playlistUpdateOrderResponseIs($success, $condition);
  76. break;
  77. case SecurityContext::ACTION_PLAYLIST_REMOVE_ELEMENT:
  78. return $this->security_context_tests->playlistRemoveElementResponseIs($success, $condition);
  79. break;
  80. case SecurityContext::ACTION_PLAYLIST_CREATE:
  81. return $this->security_context_tests->playlistCreateResponseIs($success, $condition);
  82. break;
  83. case SecurityContext::ACTION_PLAYLIST_COPY:
  84. return $this->security_context_tests->playlistCopyResponseIs($success, $condition);
  85. break;
  86. case SecurityContext::ACTION_PLAYLIST_DELETE:
  87. return $this->security_context_tests->playlistDeleteResponseIs($success, $condition);
  88. break;
  89. case SecurityContext::ACTION_PLAYLIST_UNPICK:
  90. return $this->security_context_tests->playlistUnpickResponseIs($success, $condition);
  91. break;
  92. case SecurityContext::ACTION_PLAYLIST_PICK:
  93. return $this->security_context_tests->playlistPickResponseIs($success, $condition);
  94. break;
  95. case SecurityContext::ACTION_PLAYLIST_SHOW:
  96. return $this->security_context_tests->playlistShowResponseIs($success, $condition);
  97. break;
  98. case SecurityContext::ACTION_PLAYLIST_DATA_AUTOPLAY:
  99. return $this->security_context_tests->playlistAutoplayResponseIs($success, $condition);
  100. break;
  101. case SecurityContext::ACTION_PLAYLIST_ADD_PROMPT:
  102. return $this->security_context_tests->playlistPromptResponseIs($success, $condition);
  103. break;
  104. default:
  105. throw new \Exception('Action unknow');
  106. }
  107. }
  108. }