[Pkg-owncloud-commits] [owncloud] 24/199: unit tests for loginWithCookie()
David Prévot
taffit at moszumanska.debian.org
Sun Jun 1 18:53:06 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit c46fada6b3338b045d3104f71e4e43558eca5453
Author: Arthur Schiwon <blizzz at owncloud.com>
Date: Fri May 23 00:18:07 2014 +0200
unit tests for loginWithCookie()
---
tests/lib/user/session.php | 114 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 114 insertions(+)
diff --git a/tests/lib/user/session.php b/tests/lib/user/session.php
index 46b268b..7b9d241 100644
--- a/tests/lib/user/session.php
+++ b/tests/lib/user/session.php
@@ -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);
+
+
+ }
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list