AuthUserComponentTest.php 4.5 KB

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