AuthUserComponentTest.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?php
  2. namespace Tools\Test\TestCase\Controller\Component;
  3. use Cake\Controller\ComponentRegistry;
  4. use Cake\Controller\Controller;
  5. use Cake\Core\Configure;
  6. use Cake\Network\Request;
  7. use Cake\Network\Session;
  8. use Tools\Controller\Component\AuthUserComponent;
  9. use Tools\TestSuite\TestCase;
  10. /**
  11. * AuthUserComponent class
  12. */
  13. class AuthUserComponentTest extends TestCase {
  14. /**
  15. * fixtures
  16. *
  17. * @var string
  18. */
  19. public $fixtures = ['core.sessions'];
  20. public $AuthUser;
  21. /**
  22. * setUp method
  23. *
  24. * @return void
  25. */
  26. public function setUp() {
  27. parent::setUp();
  28. $controller = new Controller(new Request());
  29. $this->ComponentRegistry = new ComponentRegistry($controller);
  30. $this->AuthUser = new AuthUserComponent($this->ComponentRegistry);
  31. $this->AuthUser->Auth = $this->getMock('Cake\Controller\Component\AuthComponent', ['user'], [$this->ComponentRegistry]);
  32. }
  33. /**
  34. * tearDown method
  35. *
  36. * @return void
  37. */
  38. public function tearDown() {
  39. parent::tearDown();
  40. }
  41. /**
  42. * testSessionReadWrite method
  43. *
  44. * @return void
  45. */
  46. public function testEmptyAuthSession() {
  47. $this->assertNull($this->AuthUser->id());
  48. $this->assertFalse($this->AuthUser->isMe(null));
  49. $this->assertFalse($this->AuthUser->isMe(''));
  50. $this->assertFalse($this->AuthUser->isMe(0));
  51. $this->assertFalse($this->AuthUser->isMe(1));
  52. }
  53. /**
  54. * AuthUserComponentTest::testId()
  55. *
  56. * @return void
  57. */
  58. public function testId() {
  59. $this->AuthUser->Auth->expects($this->once())
  60. ->method('user')
  61. ->with(null)
  62. ->will($this->returnValue(['id' => '1']));
  63. $this->assertSame('1', $this->AuthUser->id());
  64. }
  65. /**
  66. * AuthUserComponentTest::testId()
  67. *
  68. * @return void
  69. */
  70. public function testIsMe() {
  71. $this->AuthUser->Auth->expects($this->any())
  72. ->method('user')
  73. ->with(null)
  74. ->will($this->returnValue(['id' => '1']));
  75. $this->assertFalse($this->AuthUser->isMe(null));
  76. $this->assertFalse($this->AuthUser->isMe(''));
  77. $this->assertFalse($this->AuthUser->isMe(0));
  78. $this->assertTrue($this->AuthUser->isMe('1'));
  79. $this->assertTrue($this->AuthUser->isMe(1));
  80. }
  81. /**
  82. * AuthUserComponentTest::testUser()
  83. *
  84. * @return void
  85. */
  86. public function testUser() {
  87. $this->AuthUser->Auth->expects($this->any())
  88. ->method('user')
  89. ->with(null)
  90. ->will($this->returnValue(['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. * AuthUserComponentTest::testRoles()
  97. *
  98. * @return void
  99. */
  100. public function testRoles() {
  101. $this->AuthUser->Auth->expects($this->once())
  102. ->method('user')
  103. ->with(null)
  104. ->will($this->returnValue(['id' => '1', 'Roles' => ['1', '2']]));
  105. $this->assertSame(['1', '2'], $this->AuthUser->roles());
  106. }
  107. /**
  108. * AuthUserComponentTest::testRolesDeep()
  109. *
  110. * @return void
  111. */
  112. public function testRolesDeep() {
  113. $this->AuthUser->Auth->expects($this->once())
  114. ->method('user')
  115. ->with(null)
  116. ->will($this->returnValue(['id' => '1', 'Roles' => [['id' => '1'], ['id' => '2']]]));
  117. $this->assertSame(['1', '2'], $this->AuthUser->roles());
  118. }
  119. /**
  120. * AuthUserComponentTest::testHasRole()
  121. *
  122. * @return void
  123. */
  124. public function testHasRole() {
  125. $this->AuthUser->Auth->expects($this->exactly(3))
  126. ->method('user')
  127. ->with(null)
  128. ->will($this->returnValue(['id' => '1', 'Roles' => [['id' => '1'], ['id' => '2']]]));
  129. $this->assertTrue($this->AuthUser->hasRole(2));
  130. $this->assertTrue($this->AuthUser->hasRole('2'));
  131. $this->assertFalse($this->AuthUser->hasRole(3));
  132. $this->assertTrue($this->AuthUser->hasRole(3, [1, 3]));
  133. $this->assertFalse($this->AuthUser->hasRole(3, [2, 4]));
  134. }
  135. /**
  136. * AuthUserComponentTest::testHasRoles()
  137. *
  138. * @return void
  139. */
  140. public function testHasRoles() {
  141. $this->AuthUser->Auth->expects($this->exactly(6))
  142. ->method('user')
  143. ->with(null)
  144. ->will($this->returnValue(['id' => '1', 'Roles' => [['id' => '1'], ['id' => '2']]]));
  145. $this->assertTrue($this->AuthUser->hasRoles([2]));
  146. $this->assertTrue($this->AuthUser->hasRoles('2'));
  147. $this->assertFalse($this->AuthUser->hasRoles([3, 4]));
  148. $this->assertTrue($this->AuthUser->hasRoles([1, 2], false));
  149. $this->assertTrue($this->AuthUser->hasRoles([1, 6], [1, 3, 5]));
  150. $this->assertFalse($this->AuthUser->hasRoles([3, 4], [2, 4]));
  151. $this->assertFalse($this->AuthUser->hasRoles([1, 3, 5], false, [1, 3]));
  152. $this->assertTrue($this->AuthUser->hasRoles([1, 3, 5], false, [1, 3, 5]));
  153. }
  154. }