|
|
|
|
@ -151,4 +151,118 @@ class Session extends \PHPUnit_Framework_TestCase { |
|
|
|
|
$userSession = new \OC\User\Session($manager, $session); |
|
|
|
|
$userSession->login('foo', 'bar'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testRememberLoginValidToken() { |
|
|
|
|
$session = $this->getMock('\OC\Session\Memory', array(), array('')); |
|
|
|
|
$session->expects($this->exactly(1)) |
|
|
|
|
->method('set') |
|
|
|
|
->with($this->callback(function($key) { |
|
|
|
|
switch($key) { |
|
|
|
|
case 'user_id': |
|
|
|
|
return true; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
return false; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
'foo')); |
|
|
|
|
|
|
|
|
|
$manager = $this->getMock('\OC\User\Manager'); |
|
|
|
|
|
|
|
|
|
$backend = $this->getMock('OC_User_Dummy'); |
|
|
|
|
|
|
|
|
|
$user = $this->getMock('\OC\User\User', array(), array('foo', $backend)); |
|
|
|
|
|
|
|
|
|
$user->expects($this->any()) |
|
|
|
|
->method('getUID') |
|
|
|
|
->will($this->returnValue('foo')); |
|
|
|
|
|
|
|
|
|
$manager->expects($this->once()) |
|
|
|
|
->method('get') |
|
|
|
|
->with('foo') |
|
|
|
|
->will($this->returnValue($user)); |
|
|
|
|
|
|
|
|
|
//prepare login token |
|
|
|
|
$token = 'goodToken'; |
|
|
|
|
\OC_Preferences::setValue('foo', 'login_token', $token, time()); |
|
|
|
|
|
|
|
|
|
$userSession = $this->getMock( |
|
|
|
|
'\OC\User\Session', |
|
|
|
|
//override, otherwise tests will fail because of setcookie() |
|
|
|
|
array('setMagicInCookie'), |
|
|
|
|
//there are passed as parameters to the constructor |
|
|
|
|
array($manager, $session)); |
|
|
|
|
|
|
|
|
|
$granted = $userSession->loginWithCookie('foo', $token); |
|
|
|
|
//clean up token |
|
|
|
|
\OC_Preferences::deleteKey('foo', 'login_token', $token); |
|
|
|
|
|
|
|
|
|
$this->assertSame($granted, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testRememberLoginInvalidToken() { |
|
|
|
|
$session = $this->getMock('\OC\Session\Memory', array(), array('')); |
|
|
|
|
$session->expects($this->never()) |
|
|
|
|
->method('set'); |
|
|
|
|
|
|
|
|
|
$manager = $this->getMock('\OC\User\Manager'); |
|
|
|
|
|
|
|
|
|
$backend = $this->getMock('OC_User_Dummy'); |
|
|
|
|
|
|
|
|
|
$user = $this->getMock('\OC\User\User', array(), array('foo', $backend)); |
|
|
|
|
|
|
|
|
|
$user->expects($this->any()) |
|
|
|
|
->method('getUID') |
|
|
|
|
->will($this->returnValue('foo')); |
|
|
|
|
|
|
|
|
|
$manager->expects($this->once()) |
|
|
|
|
->method('get') |
|
|
|
|
->with('foo') |
|
|
|
|
->will($this->returnValue($user)); |
|
|
|
|
|
|
|
|
|
//prepare login token |
|
|
|
|
$token = 'goodToken'; |
|
|
|
|
\OC_Preferences::setValue('foo', 'login_token', $token, time()); |
|
|
|
|
|
|
|
|
|
$userSession = new \OC\User\Session($manager, $session); |
|
|
|
|
$granted = $userSession->loginWithCookie('foo', 'badToken'); |
|
|
|
|
//clean up token |
|
|
|
|
\OC_Preferences::deleteKey('foo', 'login_token', $token); |
|
|
|
|
|
|
|
|
|
$this->assertSame($granted, false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testRememberLoginInvalidUser() { |
|
|
|
|
$session = $this->getMock('\OC\Session\Memory', array(), array('')); |
|
|
|
|
$session->expects($this->never()) |
|
|
|
|
->method('set'); |
|
|
|
|
|
|
|
|
|
$manager = $this->getMock('\OC\User\Manager'); |
|
|
|
|
|
|
|
|
|
$backend = $this->getMock('OC_User_Dummy'); |
|
|
|
|
|
|
|
|
|
$user = $this->getMock('\OC\User\User', array(), array('foo', $backend)); |
|
|
|
|
|
|
|
|
|
$user->expects($this->never()) |
|
|
|
|
->method('getUID'); |
|
|
|
|
|
|
|
|
|
$manager->expects($this->once()) |
|
|
|
|
->method('get') |
|
|
|
|
->with('foo') |
|
|
|
|
->will($this->returnValue(null)); |
|
|
|
|
|
|
|
|
|
//prepare login token |
|
|
|
|
$token = 'goodToken'; |
|
|
|
|
\OC_Preferences::setValue('foo', 'login_token', $token, time()); |
|
|
|
|
|
|
|
|
|
$userSession = new \OC\User\Session($manager, $session); |
|
|
|
|
$granted = $userSession->loginWithCookie('foo', $token); |
|
|
|
|
//clean up token |
|
|
|
|
\OC_Preferences::deleteKey('foo', 'login_token', $token); |
|
|
|
|
|
|
|
|
|
$this->assertSame($granted, false); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|