2929
3030namespace OCA \Provisioning_API \Tests \Controller ;
3131
32+ use OC \Accounts \AccountManager ;
3233use OCA \Provisioning_API \Controller \UsersController ;
3334use OCP \AppFramework \Http \DataResponse ;
3435use OCP \IGroup ;
36+ use OCP \IRequest ;
3537use OCP \IUser ;
3638use OCP \IUserManager ;
3739use OCP \IConfig ;
4143use OCP \ILogger ;
4244
4345class UsersControllerTest extends OriginalTest {
44-
46+
4547 /** @var IUserManager | PHPUnit_Framework_MockObject_MockObject */
4648 protected $ userManager ;
4749 /** @var IConfig | PHPUnit_Framework_MockObject_MockObject */
@@ -54,6 +56,10 @@ class UsersControllerTest extends OriginalTest {
5456 protected $ logger ;
5557 /** @var UsersController | PHPUnit_Framework_MockObject_MockObject */
5658 protected $ api ;
59+ /** @var AccountManager | PHPUnit_Framework_MockObject_MockObject */
60+ protected $ accountManager ;
61+ /** @var IRequest | PHPUnit_Framework_MockObject_MockObject */
62+ protected $ request ;
5763
5864 protected function tearDown () {
5965 parent ::tearDown ();
@@ -77,17 +83,21 @@ protected function setUp() {
7783 $ this ->logger = $ this ->getMockBuilder ('OCP\ILogger ' )
7884 ->disableOriginalConstructor ()
7985 ->getMock ();
80- $ request = $ this ->getMockBuilder ('OCP\IRequest ' )
86+ $ this ->request = $ this ->getMockBuilder ('OCP\IRequest ' )
87+ ->disableOriginalConstructor ()
88+ ->getMock ();
89+ $ this ->accountManager = $ this ->getMockBuilder (AccountManager::class)
8190 ->disableOriginalConstructor ()
8291 ->getMock ();
8392 $ this ->api = $ this ->getMockBuilder ('OCA\Provisioning_API\Controller\UsersController ' )
8493 ->setConstructorArgs ([
8594 'provisioning_api ' ,
86- $ request ,
95+ $ this -> request ,
8796 $ this ->userManager ,
8897 $ this ->config ,
8998 $ this ->groupManager ,
9099 $ this ->userSession ,
100+ $ this ->accountManager ,
91101 $ this ->logger ,
92102 ])
93103 ->setMethods (['fillStorageInfo ' ])
@@ -652,6 +662,16 @@ public function testGetUserAsAdmin() {
652662 ->method ('isAdmin ' )
653663 ->with ('admin ' )
654664 ->will ($ this ->returnValue (true ));
665+ $ this ->accountManager ->expects ($ this ->any ())->method ('getUser ' )
666+ ->with ($ targetUser )
667+ ->willReturn (
668+ [
669+ AccountManager::PROPERTY_ADDRESS => ['value ' => 'address ' ],
670+ AccountManager::PROPERTY_PHONE => ['value ' => 'phone ' ],
671+ AccountManager::PROPERTY_TWITTER => ['value ' => 'twitter ' ],
672+ AccountManager::PROPERTY_WEBSITE => ['value ' => 'website ' ],
673+ ]
674+ );
655675 $ this ->config
656676 ->expects ($ this ->at (0 ))
657677 ->method ('getUserValue ' )
@@ -666,12 +686,21 @@ public function testGetUserAsAdmin() {
666686 ->expects ($ this ->once ())
667687 ->method ('getDisplayName ' )
668688 ->will ($ this ->returnValue ('Demo User ' ));
689+ $ targetUser
690+ ->expects ($ this ->once ())
691+ ->method ('getUID ' )
692+ ->will ($ this ->returnValue ('UID ' ));
669693
670694 $ expected = [
695+ 'id ' => 'UID ' ,
671696 'enabled ' => 'true ' ,
672697 'quota ' => ['DummyValue ' ],
673698 'email ' => 'demo@owncloud.org ' ,
674699 'displayname ' => 'Demo User ' ,
700+ 'phone ' => 'phone ' ,
701+ 'address ' => 'address ' ,
702+ 'webpage ' => 'website ' ,
703+ 'twitter ' => 'twitter '
675704 ];
676705 $ this ->assertEquals ($ expected , $ this ->api ->getUser ('UserToGet ' )->getData ());
677706 }
@@ -731,12 +760,31 @@ public function testGetUserAsSubAdminAndUserIsAccessible() {
731760 ->expects ($ this ->once ())
732761 ->method ('getDisplayName ' )
733762 ->will ($ this ->returnValue ('Demo User ' ));
763+ $ targetUser
764+ ->expects ($ this ->once ())
765+ ->method ('getUID ' )
766+ ->will ($ this ->returnValue ('UID ' ));
767+ $ this ->accountManager ->expects ($ this ->any ())->method ('getUser ' )
768+ ->with ($ targetUser )
769+ ->willReturn (
770+ [
771+ AccountManager::PROPERTY_ADDRESS => ['value ' => 'address ' ],
772+ AccountManager::PROPERTY_PHONE => ['value ' => 'phone ' ],
773+ AccountManager::PROPERTY_TWITTER => ['value ' => 'twitter ' ],
774+ AccountManager::PROPERTY_WEBSITE => ['value ' => 'website ' ],
775+ ]
776+ );
734777
735778 $ expected = [
779+ 'id ' => 'UID ' ,
736780 'enabled ' => 'true ' ,
737781 'quota ' => ['DummyValue ' ],
738782 'email ' => 'demo@owncloud.org ' ,
739783 'displayname ' => 'Demo User ' ,
784+ 'phone ' => 'phone ' ,
785+ 'address ' => 'address ' ,
786+ 'webpage ' => 'website ' ,
787+ 'twitter ' => 'twitter '
740788 ];
741789 $ this ->assertEquals ($ expected , $ this ->api ->getUser ('UserToGet ' )->getData ());
742790 }
@@ -837,11 +885,30 @@ public function testGetUserAsSubAdminSelfLookup() {
837885 ->expects ($ this ->once ())
838886 ->method ('getEMailAddress ' )
839887 ->will ($ this ->returnValue ('subadmin@owncloud.org ' ));
888+ $ targetUser
889+ ->expects ($ this ->once ())
890+ ->method ('getUID ' )
891+ ->will ($ this ->returnValue ('UID ' ));
892+ $ this ->accountManager ->expects ($ this ->any ())->method ('getUser ' )
893+ ->with ($ targetUser )
894+ ->willReturn (
895+ [
896+ AccountManager::PROPERTY_ADDRESS => ['value ' => 'address ' ],
897+ AccountManager::PROPERTY_PHONE => ['value ' => 'phone ' ],
898+ AccountManager::PROPERTY_TWITTER => ['value ' => 'twitter ' ],
899+ AccountManager::PROPERTY_WEBSITE => ['value ' => 'website ' ],
900+ ]
901+ );
840902
841903 $ expected = [
904+ 'id ' => 'UID ' ,
842905 'quota ' => ['DummyValue ' ],
843906 'email ' => 'subadmin@owncloud.org ' ,
844907 'displayname ' => 'Subadmin User ' ,
908+ 'phone ' => 'phone ' ,
909+ 'address ' => 'address ' ,
910+ 'webpage ' => 'website ' ,
911+ 'twitter ' => 'twitter '
845912 ];
846913 $ this ->assertEquals ($ expected , $ this ->api ->getUser ('subadmin ' )->getData ());
847914 }
@@ -2485,4 +2552,70 @@ public function testDisableUser() {
24852552
24862553 $ this ->assertEquals ([], $ this ->api ->disableUser ('RequestedUser ' )->getData ());
24872554 }
2555+
2556+ public function testGetCurrentUserLoggedIn () {
2557+
2558+ $ user = $ this ->getMock (IUser::class);
2559+ $ user ->expects ($ this ->once ())->method ('getUID ' )->willReturn ('UID ' );
2560+
2561+ $ this ->userSession ->expects ($ this ->once ())->method ('getUser ' )
2562+ ->willReturn ($ user );
2563+
2564+ /** @var UsersController | PHPUnit_Framework_MockObject_MockObject $api */
2565+ $ api = $ this ->getMockBuilder ('OCA\Provisioning_API\Controller\UsersController ' )
2566+ ->setConstructorArgs ([
2567+ 'provisioning_api ' ,
2568+ $ this ->request ,
2569+ $ this ->userManager ,
2570+ $ this ->config ,
2571+ $ this ->groupManager ,
2572+ $ this ->userSession ,
2573+ $ this ->accountManager ,
2574+ $ this ->logger ,
2575+ ])
2576+ ->setMethods (['getUser ' ])
2577+ ->getMock ();
2578+
2579+ $ api ->expects ($ this ->once ())->method ('getUser ' )->with ('UID ' )
2580+ ->willReturn (
2581+ [
2582+ 'id ' => 'UID ' ,
2583+ 'enabled ' => 'true ' ,
2584+ 'quota ' => ['DummyValue ' ],
2585+ 'email ' => 'demo@owncloud.org ' ,
2586+ 'displayname ' => 'Demo User ' ,
2587+ 'phone ' => 'phone ' ,
2588+ 'address ' => 'address ' ,
2589+ 'webpage ' => 'website ' ,
2590+ 'twitter ' => 'twitter '
2591+ ]
2592+ );
2593+
2594+ $ expected = [
2595+ 'id ' => 'UID ' ,
2596+ 'enabled ' => 'true ' ,
2597+ 'quota ' => ['DummyValue ' ],
2598+ 'email ' => 'demo@owncloud.org ' ,
2599+ 'phone ' => 'phone ' ,
2600+ 'address ' => 'address ' ,
2601+ 'webpage ' => 'website ' ,
2602+ 'twitter ' => 'twitter ' ,
2603+ 'display-name ' => 'Demo User '
2604+ ];
2605+
2606+ $ this ->assertSame ($ expected , $ api ->getCurrentUser ());
2607+ }
2608+
2609+ /**
2610+ * @expectedException \OCP\AppFramework\OCS\OCSException
2611+ */
2612+ public function testGetCurrentUserNotLoggedIn () {
2613+
2614+ $ this ->userSession ->expects ($ this ->once ())->method ('getUser ' )
2615+ ->willReturn (null );
2616+
2617+ $ this ->api ->getCurrentUser ();
2618+ }
2619+
2620+
24882621}
0 commit comments