Beispiel #1
0
 public function testGetUser()
 {
     $token = new \OC\Authentication\Token\DefaultToken();
     $token->setLoginName('User123');
     $expectedUser = $this->getMock('\\OCP\\IUser');
     $expectedUser->expects($this->any())->method('getUID')->will($this->returnValue('user123'));
     $session = $this->getMock('\\OC\\Session\\Memory', array(), array(''));
     $session->expects($this->at(0))->method('get')->with('user_id')->will($this->returnValue($expectedUser->getUID()));
     $sessionId = 'abcdef12345';
     $manager = $this->getMockBuilder('\\OC\\User\\Manager')->disableOriginalConstructor()->getMock();
     $session->expects($this->once())->method('getId')->will($this->returnValue($sessionId));
     $this->tokenProvider->expects($this->once())->method('getToken')->will($this->returnValue($token));
     $session->expects($this->at(2))->method('get')->with('last_login_check')->will($this->returnValue(null));
     // No check has been run yet
     $this->tokenProvider->expects($this->once())->method('getPassword')->with($token, $sessionId)->will($this->returnValue('password123'));
     $manager->expects($this->once())->method('checkPassword')->with('User123', 'password123')->will($this->returnValue(true));
     $expectedUser->expects($this->once())->method('isEnabled')->will($this->returnValue(true));
     $session->expects($this->at(3))->method('set')->with('last_login_check', 10000);
     $session->expects($this->at(4))->method('get')->with('last_token_update')->will($this->returnValue(null));
     // No check run so far
     $this->tokenProvider->expects($this->once())->method('updateToken')->with($token);
     $session->expects($this->at(5))->method('set')->with('last_token_update', $this->equalTo(10000));
     $manager->expects($this->any())->method('get')->with($expectedUser->getUID())->will($this->returnValue($expectedUser));
     $userSession = new \OC\User\Session($manager, $session, $this->timeFactory, $this->tokenProvider, $this->config);
     $user = $userSession->getUser();
     $this->assertSame($expectedUser, $user);
 }
Beispiel #2
0
 public function testGetUser()
 {
     $token = new \OC\Authentication\Token\DefaultToken();
     $token->setLoginName('User123');
     $token->setLastCheck(200);
     $expectedUser = $this->getMock('\\OCP\\IUser');
     $expectedUser->expects($this->any())->method('getUID')->will($this->returnValue('user123'));
     $session = $this->getMock('\\OC\\Session\\Memory', array(), array(''));
     $session->expects($this->at(0))->method('get')->with('user_id')->will($this->returnValue($expectedUser->getUID()));
     $sessionId = 'abcdef12345';
     $manager = $this->getMockBuilder('\\OC\\User\\Manager')->disableOriginalConstructor()->getMock();
     $session->expects($this->at(1))->method('get')->with('app_password')->will($this->returnValue(null));
     // No password set -> browser session
     $session->expects($this->once())->method('getId')->will($this->returnValue($sessionId));
     $this->tokenProvider->expects($this->once())->method('getToken')->with($sessionId)->will($this->returnValue($token));
     $this->tokenProvider->expects($this->once())->method('getPassword')->with($token, $sessionId)->will($this->returnValue('passme'));
     $manager->expects($this->once())->method('checkPassword')->with('User123', 'passme')->will($this->returnValue(true));
     $expectedUser->expects($this->once())->method('isEnabled')->will($this->returnValue(true));
     $this->tokenProvider->expects($this->once())->method('updateTokenActivity')->with($token);
     $manager->expects($this->any())->method('get')->with($expectedUser->getUID())->will($this->returnValue($expectedUser));
     $userSession = new \OC\User\Session($manager, $session, $this->timeFactory, $this->tokenProvider, $this->config);
     $user = $userSession->getUser();
     $this->assertSame($expectedUser, $user);
     $this->assertSame(10000, $token->getLastCheck());
 }
Beispiel #3
0
 public function testLoginValidPasswordEnabled()
 {
     $session = $this->getMock('\\OC\\Session\\Memory', array(), array(''));
     $session->expects($this->exactly(2))->method('set')->with($this->callback(function ($key) {
         switch ($key) {
             case 'user_id':
             case 'loginname':
                 return true;
                 break;
             default:
                 return false;
                 break;
         }
     }, 'foo'));
     $managerMethods = get_class_methods('\\OC\\User\\Manager');
     //keep following methods intact in order to ensure hooks are
     //working
     $doNotMock = array('__construct', 'emit', 'listen');
     foreach ($doNotMock as $methodName) {
         $i = array_search($methodName, $managerMethods, true);
         if ($i !== false) {
             unset($managerMethods[$i]);
         }
     }
     $manager = $this->getMock('\\OC\\User\\Manager', $managerMethods, array());
     $backend = $this->getMock('OC_User_Dummy');
     $user = $this->getMock('\\OC\\User\\User', array(), array('foo', $backend));
     $user->expects($this->once())->method('isEnabled')->will($this->returnValue(true));
     $user->expects($this->any())->method('getUID')->will($this->returnValue('foo'));
     $user->expects($this->once())->method('updateLastLoginTimestamp');
     $manager->expects($this->once())->method('checkPassword')->with('foo', 'bar')->will($this->returnValue($user));
     $userSession = new \OC\User\Session($manager, $session);
     $userSession->login('foo', 'bar');
     $this->assertEquals($user, $userSession->getUser());
 }
Beispiel #4
0
 public function testActiveUserAfterSetSession()
 {
     $users = array('foo' => new User('foo', null), 'bar' => new User('bar', null));
     $manager = $this->getMockBuilder('\\OC\\User\\Manager')->disableOriginalConstructor()->getMock();
     $manager->expects($this->any())->method('get')->will($this->returnCallback(function ($uid) use($users) {
         return $users[$uid];
     }));
     $session = new Memory('');
     $session->set('user_id', 'foo');
     $userSession = new \OC\User\Session($manager, $session);
     $this->assertEquals($users['foo'], $userSession->getUser());
     $session2 = new Memory('');
     $session2->set('user_id', 'bar');
     $userSession->setSession($session2);
     $this->assertEquals($users['bar'], $userSession->getUser());
 }