Context.php 3.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. default:
  69. throw new \Exception('Action unknow');
  70. }
  71. }
  72. }