AuthUserHelperTest.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <?php
  2. namespace Tools\Test\TestCase\View\Helper;
  3. use Cake\Network\Request;
  4. use Cake\View\View;
  5. use Tools\TestSuite\TestCase;
  6. use Tools\View\Helper\AuthUserHelper;
  7. /**
  8. * AuthUserHelper class
  9. */
  10. class AuthUserHelperTest extends TestCase {
  11. /**
  12. * Fixtures
  13. *
  14. * @var array
  15. */
  16. public $fixtures = ['core.sessions'];
  17. /**
  18. * @var \Tools\View\Helper\AuthUserHelper
  19. */
  20. public $AuthUser;
  21. /**
  22. * setUp method
  23. *
  24. * @return void
  25. */
  26. public function setUp() {
  27. parent::setUp();
  28. $this->request = $this->getMockBuilder(Request::class)->setMethods(['cookie'])->getMock();
  29. $this->view = new View($this->request);
  30. $this->AuthUser = new AuthUserHelper($this->view);
  31. }
  32. /**
  33. * tearDown method
  34. *
  35. * @return void
  36. */
  37. public function tearDown() {
  38. parent::tearDown();
  39. }
  40. /**
  41. * testSessionReadWrite method
  42. *
  43. * @return void
  44. * @expectedException \RuntimeException
  45. */
  46. public function testEmptyAuthSessionDueToMissing() {
  47. $this->AuthUser->id();
  48. }
  49. /**
  50. * AuthUserHelperTest::testEmptyAuthSession()
  51. *
  52. * @return void
  53. */
  54. public function testEmptyAuthSession() {
  55. $this->view->viewVars['authUser'] = [];
  56. $this->assertNull($this->AuthUser->id());
  57. $this->assertFalse($this->AuthUser->isMe(null));
  58. $this->assertFalse($this->AuthUser->isMe(''));
  59. $this->assertFalse($this->AuthUser->isMe(0));
  60. $this->assertFalse($this->AuthUser->isMe(1));
  61. }
  62. /**
  63. * AuthUserHelperTest::testId()
  64. *
  65. * @return void
  66. */
  67. public function testId() {
  68. $this->view->viewVars['authUser'] = ['id' => '1'];
  69. $this->assertSame('1', $this->AuthUser->id());
  70. }
  71. /**
  72. * AuthUserHelperTest::testId()
  73. *
  74. * @return void
  75. */
  76. public function testIsMe() {
  77. $this->view->viewVars['authUser'] = ['id' => '1'];
  78. $this->assertFalse($this->AuthUser->isMe(null));
  79. $this->assertFalse($this->AuthUser->isMe(''));
  80. $this->assertFalse($this->AuthUser->isMe(0));
  81. $this->assertTrue($this->AuthUser->isMe('1'));
  82. $this->assertTrue($this->AuthUser->isMe(1));
  83. }
  84. /**
  85. * AuthUserHelperTest::testUser()
  86. *
  87. * @return void
  88. */
  89. public function testUser() {
  90. $this->view->viewVars['authUser'] = ['id' => '1', 'username' => 'foo'];
  91. $this->assertSame(['id' => '1', 'username' => 'foo'], $this->AuthUser->user());
  92. $this->assertSame('foo', $this->AuthUser->user('username'));
  93. $this->assertNull($this->AuthUser->user('foofoo'));
  94. }
  95. /**
  96. * AuthUserHelperTest::testRoles()
  97. *
  98. * @return void
  99. */
  100. public function testRoles() {
  101. $this->view->viewVars['authUser'] = ['id' => '1', 'Roles' => ['1', '2']];
  102. $this->assertSame(['1', '2'], $this->AuthUser->roles());
  103. }
  104. /**
  105. * AuthUserHelperTest::testRolesDeep()
  106. *
  107. * @return void
  108. */
  109. public function testRolesDeep() {
  110. $this->view->viewVars['authUser'] = ['id' => '1', 'Roles' => [['id' => '1'], ['id' => '2']]];
  111. $this->assertSame(['1', '2'], $this->AuthUser->roles());
  112. }
  113. /**
  114. * AuthUserHelperTest::testHasRole()
  115. *
  116. * @return void
  117. */
  118. public function testHasRole() {
  119. $this->view->viewVars['authUser'] = ['id' => '1', 'Roles' => [['id' => '1'], ['id' => '2']]];
  120. $this->assertTrue($this->AuthUser->hasRole(2));
  121. $this->assertTrue($this->AuthUser->hasRole('2'));
  122. $this->assertFalse($this->AuthUser->hasRole(3));
  123. $this->assertTrue($this->AuthUser->hasRole(3, [1, 3]));
  124. $this->assertFalse($this->AuthUser->hasRole(3, [2, 4]));
  125. }
  126. /**
  127. * AuthUserHelperTest::testHasRoles()
  128. *
  129. * @return void
  130. */
  131. public function testHasRoles() {
  132. $this->view->viewVars['authUser'] = ['id' => '1', 'Roles' => [['id' => '1'], ['id' => '2']]];
  133. $this->assertTrue($this->AuthUser->hasRoles([2]));
  134. $this->assertTrue($this->AuthUser->hasRoles('2'));
  135. $this->assertFalse($this->AuthUser->hasRoles([3, 4]));
  136. $this->assertTrue($this->AuthUser->hasRoles([1, 2], false));
  137. $this->assertTrue($this->AuthUser->hasRoles([1, 6], [1, 3, 5]));
  138. $this->assertFalse($this->AuthUser->hasRoles([3, 4], [2, 4]));
  139. $this->assertFalse($this->AuthUser->hasRoles([1, 3, 5], false, [1, 3]));
  140. $this->assertTrue($this->AuthUser->hasRoles([1, 3, 5], false, [1, 3, 5]));
  141. }
  142. }