]> source.dussan.org Git - nextcloud-server.git/commitdiff
test hooks also on login
authorArthur Schiwon <blizzz@owncloud.com>
Thu, 22 May 2014 22:59:26 +0000 (00:59 +0200)
committerArthur Schiwon <blizzz@owncloud.com>
Thu, 22 May 2014 22:59:26 +0000 (00:59 +0200)
tests/lib/user/session.php

index 447b3a661970f6a29390131e6e9d2bd4734495e2..5c58d82f5ba0d354f178eeb00d16f6cdadda3c30 100644 (file)
@@ -67,7 +67,17 @@ class Session extends \PHPUnit_Framework_TestCase {
                                        },
                                        'foo'));
 
-               $manager = $this->getMock('\OC\User\Manager');
+               $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');
 
@@ -78,6 +88,8 @@ class Session extends \PHPUnit_Framework_TestCase {
                $user->expects($this->any())
                        ->method('getUID')
                        ->will($this->returnValue('foo'));
+               $user->expects($this->once())
+                       ->method('updateLastLoginTimestamp');
 
                $manager->expects($this->once())
                        ->method('checkPassword')
@@ -94,7 +106,17 @@ class Session extends \PHPUnit_Framework_TestCase {
                $session->expects($this->never())
                        ->method('set');
 
-               $manager = $this->getMock('\OC\User\Manager');
+               $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');
 
@@ -102,6 +124,8 @@ class Session extends \PHPUnit_Framework_TestCase {
                $user->expects($this->once())
                        ->method('isEnabled')
                        ->will($this->returnValue(false));
+               $user->expects($this->never())
+                       ->method('updateLastLoginTimestamp');
 
                $manager->expects($this->once())
                        ->method('checkPassword')
@@ -117,13 +141,25 @@ class Session extends \PHPUnit_Framework_TestCase {
                $session->expects($this->never())
                        ->method('set');
 
-               $manager = $this->getMock('\OC\User\Manager');
+               $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->never())
                        ->method('isEnabled');
+               $user->expects($this->never())
+                       ->method('updateLastLoginTimestamp');
 
                $manager->expects($this->once())
                        ->method('checkPassword')