Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
A
auth
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Test Cases
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lib
unicaen
auth
Commits
431bbc99
Commit
431bbc99
authored
Jun 05, 2019
by
Bertrand Gauthier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Quelques corrections de tests unitaires
parent
acd80024
Pipeline
#4596
failed with stage
in 9 seconds
Changes
5
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
137 additions
and
23 deletions
+137
-23
tests/Bootstrap.php
tests/Bootstrap.php
+1
-1
tests/UnicaenAuthTest/Authentication/Adapter/AbstractFactoryTest.php
...enAuthTest/Authentication/Adapter/AbstractFactoryTest.php
+17
-2
tests/UnicaenAuthTest/Authentication/Adapter/CasTest.php
tests/UnicaenAuthTest/Authentication/Adapter/CasTest.php
+27
-8
tests/UnicaenAuthTest/Authentication/Adapter/DbTest.php
tests/UnicaenAuthTest/Authentication/Adapter/DbTest.php
+26
-5
tests/UnicaenAuthTest/Authentication/Adapter/LdapTest.php
tests/UnicaenAuthTest/Authentication/Adapter/LdapTest.php
+66
-7
No files found.
tests/Bootstrap.php
View file @
431bbc99
...
...
@@ -29,7 +29,7 @@ class Bootstrap
static
::
initAutoloader
();
static
::
$serviceManager
=
new
ServiceManager
(
new
ServiceManagerConfig
()
);
static
::
$serviceManager
=
new
ServiceManager
(
[]
);
}
public
static
function
getServiceManager
()
...
...
tests/UnicaenAuthTest/Authentication/Adapter/AbstractFactoryTest.php
View file @
431bbc99
...
...
@@ -2,11 +2,14 @@
namespace
UnicaenAuthTest\Authentication\Adapter
;
use
PHPUnit_Framework_TestCase
;
use
UnicaenApp\Mapper\Ldap\People
;
use
UnicaenAuth\Authentication\Adapter\AbstractFactory
;
use
UnicaenAuth\Service\User
;
use
Zend\EventManager\EventManager
;
use
Zend\EventManager\EventManagerAwareInterface
;
use
Zend\ServiceManager\ServiceManager
;
use
UnicaenApp\Exception\LogicException
;
use
ZfcUser\Options\ModuleOptions
;
/**
* Description of AbstractFactoryTest
...
...
@@ -62,7 +65,7 @@ class AbstractFactoryTest extends PHPUnit_Framework_TestCase
/**
* @dataProvider getInvalidServiceClassName
* @expectedException \UnicaenApp\Exception\
Runtime
Exception
* @expectedException \UnicaenApp\Exception\
Logic
Exception
* @param string $serviceClassName
*/
public
function
testCreateServiceWithNameThrowsExceptionIfInvalidServiceSpecified
(
$serviceClassName
)
...
...
@@ -85,9 +88,21 @@ class AbstractFactoryTest extends PHPUnit_Framework_TestCase
if
(
'unicaen-auth_user_service'
===
$serviceName
)
{
return
new
User
();
}
if
(
'
event_m
anager'
===
$serviceName
)
{
if
(
'
EventM
anager'
===
$serviceName
)
{
return
$eventManager
;
}
if
(
'zfcuser_module_options'
===
$serviceName
)
{
return
new
ModuleOptions
();
}
if
(
'unicaen-app_module_options'
===
$serviceName
)
{
return
new
\
UnicaenApp\Options\ModuleOptions
();
}
if
(
'unicaen-auth_module_options'
===
$serviceName
)
{
return
new
\
UnicaenAuth\Options\ModuleOptions
();
}
if
(
'ldap_people_mapper'
===
$serviceName
)
{
return
new
People
();
}
return
null
;
}));
...
...
tests/UnicaenAuthTest/Authentication/Adapter/CasTest.php
View file @
431bbc99
...
...
@@ -5,9 +5,10 @@ namespace UnicaenAuthTest\Authentication\Adapter;
use
PHPUnit_Framework_TestCase
;
use
UnicaenApp\Exception\RuntimeException
;
use
UnicaenAuth\Authentication\Adapter\Cas
;
use
UnicaenAuth\Authentication\Adapter\phpCASWrapper
;
use
UnicaenAuth\Options\ModuleOptions
;
use
Zend\EventManager\EventManager
;
use
Zend\Router\Http\TreeRouteStack
;
use
Zend\Uri\Uri
;
use
ZfcUser\Authentication\Adapter\AdapterChainEvent
;
use
Zend\Authentication\Result
;
...
...
@@ -69,7 +70,7 @@ class CasTest extends PHPUnit_Framework_TestCase
}));
$this
->
adapter
=
new
Cas
();
$this
->
adapter
->
setServiceManager
(
$serviceManager
)
$this
->
adapter
//
->setServiceManager($serviceManager)
->
setEventManager
(
new
EventManager
());
}
...
...
@@ -85,25 +86,28 @@ class CasTest extends PHPUnit_Framework_TestCase
/**
* @dataProvider getInvalidCasOptions
* @expectedException RuntimeException
* @expectedException \Exception
* @param array $config
*/
public
function
testThrowsExceptionIfNoCasParamSpecified
(
$config
)
public
function
testThrowsExceptionIfNoCasParamSpecified
(
array
$config
)
{
$this
->
moduleOptions
->
setCas
(
$config
);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$this
->
adapter
->
authenticate
(
new
AdapterChainEvent
());
}
public
function
testAuthenticateReturnsNullIfNoCasConfigSpecified
()
{
$this
->
moduleOptions
->
setCas
([]);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$result
=
$this
->
adapter
->
authenticate
(
new
AdapterChainEvent
());
$this
->
assertNull
(
$result
);
}
public
function
testAuthenticatePopulatesEventWhenAuthenticationSucceeds
()
{
/** @var
phpCASWrapper
|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
phpCASWrapper
::
class
);
/** @var
\phpCAS
|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
\
phpCAS
::
class
);
$casClient
->
expects
(
$this
->
once
())
->
method
(
'getUser'
)
->
will
(
$this
->
returnValue
(
$username
=
'username'
));
...
...
@@ -112,6 +116,7 @@ class CasTest extends PHPUnit_Framework_TestCase
$event
=
new
AdapterChainEvent
();
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$this
->
adapter
->
authenticate
(
$event
);
$this
->
assertTrue
(
$this
->
adapter
->
isSatisfied
());
...
...
@@ -125,22 +130,36 @@ class CasTest extends PHPUnit_Framework_TestCase
public
function
testLogoutReturnsNullIfNoCasConfigSpecified
()
{
$this
->
moduleOptions
->
setCas
([]);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$result
=
$this
->
adapter
->
logout
(
new
AdapterChainEvent
());
$this
->
assertNull
(
$result
);
}
public
function
testCanLogoutFromCasWithRedirectService
()
{
/** @var
phpCASWrapper
|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
phpCASWrapper
::
class
);
/** @var
\phpCAS
|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
\
phpCAS
::
class
);
$casClient
->
expects
(
$this
->
once
())
->
method
(
'isAuthenticated'
)
->
will
(
$this
->
returnValue
(
true
));
$casClient
->
expects
(
$this
->
once
())
->
method
(
'logoutWithRedirectService'
);
/** @var TreeRouteStack|\PHPUnit_Framework_MockObject_MockObject $router */
$router
=
$this
->
createMock
(
TreeRouteStack
::
class
);
$router
->
expects
(
$this
->
once
())
->
method
(
'getRequestUri'
)
->
willReturn
(
new
Uri
());
$router
->
expects
(
$this
->
once
())
->
method
(
'getBaseUrl'
)
->
willReturn
(
'path'
);
$this
->
adapter
->
setCasClient
(
$casClient
);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$this
->
adapter
->
setRouter
(
$router
);
$this
->
adapter
->
logout
(
new
AdapterChainEvent
());
}
}
\ No newline at end of file
tests/UnicaenAuthTest/Authentication/Adapter/DbTest.php
View file @
431bbc99
...
...
@@ -5,10 +5,13 @@ use PDOException;
use
PHPUnit_Framework_TestCase
;
use
UnicaenAuth\Authentication\Adapter\Db
;
use
UnicaenAuth\Options\ModuleOptions
;
use
Zend\EventManager\EventInterface
;
use
Zend\Http\PhpEnvironment\Request
;
use
Zend\ServiceManager\Exception\ServiceNotFoundException
;
use
Zend\ServiceManager\ServiceManager
;
use
Zend\Stdlib\Parameters
;
use
ZfcUser\Authentication\Adapter\AdapterChainEvent
;
use
ZfcUser\Mapper\User
;
/**
* Description of DbTest
...
...
@@ -17,8 +20,16 @@ use ZfcUser\Authentication\Adapter\AdapterChainEvent;
*/
class
DbTest
extends
PHPUnit_Framework_TestCase
{
/**
* @var Db|\PHPUnit_Framework_MockObject_MockObject
*/
protected
$adapter
;
protected
$moduleOptions
;
/**
* @var User|\PHPUnit_Framework_MockObject_MockObject
*/
protected
$mapper
;
/**
...
...
@@ -45,6 +56,7 @@ class DbTest extends PHPUnit_Framework_TestCase
$this
->
mapper
=
$mapper
=
$this
->
createMock
(
'ZfcUser\Mapper\User'
/*, ['findByUsername', 'findByEmail']*/
);
/** @var ServiceManager|\PHPUnit_Framework_MockObject_MockObject $serviceManager */
$serviceManager
=
$this
->
createMock
(
'Zend\ServiceManager\ServiceManager'
/*, ['get']*/
);
$serviceManager
->
expects
(
$this
->
any
())
->
method
(
'get'
)
...
...
@@ -68,13 +80,14 @@ class DbTest extends PHPUnit_Framework_TestCase
public
function
getException
()
{
return
[
[
new
PDOException
()],
//
[new PDOException()],
[
new
ServiceNotFoundException
()],
];
}
/**
* @dataProvider getException
* @param \Exception $exception
*/
public
function
testAuthenticateReturnsFalseIfExceptionThrown
(
$exception
)
{
...
...
@@ -85,8 +98,12 @@ class DbTest extends PHPUnit_Framework_TestCase
$request
=
new
Request
();
$request
->
setPost
(
new
Parameters
([
'identity'
=>
'bob'
,
'credential'
=>
"xxxxx"
]));
$event
=
new
AdapterChainEvent
();
$event
->
setRequest
(
$request
);
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'getTarget'
)
->
willReturn
((
new
AdapterChainEvent
())
->
setRequest
(
$request
));
$result
=
$this
->
adapter
->
authenticate
(
$event
);
$this
->
assertFalse
(
$result
);
...
...
@@ -97,8 +114,12 @@ class DbTest extends PHPUnit_Framework_TestCase
$request
=
new
Request
();
$request
->
setPost
(
new
Parameters
([
'identity'
=>
'bob'
,
'credential'
=>
"xxxxx"
]));
$event
=
new
AdapterChainEvent
();
$event
->
setRequest
(
$request
);
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'getTarget'
)
->
willReturn
((
new
AdapterChainEvent
())
->
setRequest
(
$request
));
$result
=
$this
->
adapter
->
authenticate
(
$event
);
$this
->
assertFalse
(
$result
);
...
...
tests/UnicaenAuthTest/Authentication/Adapter/LdapTest.php
View file @
431bbc99
...
...
@@ -3,8 +3,11 @@
namespace
UnicaenAuthTest\Authentication\Adapter
;
use
PHPUnit_Framework_TestCase
;
use
UnicaenApp\Mapper\Ldap\People
;
use
UnicaenAuth\Authentication\Adapter\Ldap
;
use
Zend\Authentication\Result
;
use
Zend\Authentication\Storage\StorageInterface
;
use
Zend\EventManager\EventInterface
;
use
Zend\EventManager\EventManager
;
use
Zend\Http\Request
;
use
Zend\ServiceManager\ServiceManager
;
...
...
@@ -19,7 +22,7 @@ use ZfcUser\Authentication\Adapter\AdapterChainEvent;
class
LdapTest
extends
PHPUnit_Framework_TestCase
{
/**
* @var Ldap
* @var Ldap
|\PHPUnit_Framework_MockObject_MockObject
*/
protected
$adapter
;
...
...
@@ -82,12 +85,14 @@ class LdapTest extends PHPUnit_Framework_TestCase
}));
$this
->
adapter
=
new
Ldap
();
$this
->
adapter
->
setServiceManager
(
$serviceManager
)
$this
->
adapter
//
->setServiceManager($serviceManager)
->
setEventManager
(
new
EventManager
());
}
public
function
testCanProvideDefaultLdapAuthAdapter
()
{
$this
->
adapter
->
setAppModuleOptions
(
$this
->
appModuleOptions
);
$adapter
=
$this
->
adapter
->
getLdapAuthAdapter
();
$this
->
assertInstanceOf
(
'Zend\Authentication\Adapter\Ldap'
,
$adapter
);
...
...
@@ -99,10 +104,35 @@ class LdapTest extends PHPUnit_Framework_TestCase
public
function
testAuthenticatingReturnsNullIfAlreadyStatisfied
()
{
$event
=
new
AdapterChainEvent
();
$this
->
adapter
->
setSatisfied
();
/** @var AdapterChainEvent|\PHPUnit_Framework_MockObject_MockObject $adapterChainEvent */
$adapterChainEvent
=
$this
->
createMock
(
AdapterChainEvent
::
class
);
$adapterChainEvent
->
expects
(
$this
->
once
())
->
method
(
'setIdentity'
)
->
with
(
'IDENTITY'
)
->
willReturnSelf
();
$adapterChainEvent
->
expects
(
$this
->
once
())
->
method
(
'setCode'
)
->
with
(
Result
::
SUCCESS
)
->
willReturnSelf
();
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
once
())
->
method
(
'getTarget'
)
->
willReturn
(
$adapterChainEvent
);
/** @var StorageInterface|\PHPUnit_Framework_MockObject_MockObject $storage */
$storage
=
$this
->
createMock
(
StorageInterface
::
class
);
$storage
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'read'
)
->
willReturn
([
'is_satisfied'
=>
true
,
'identity'
=>
'IDENTITY'
]);
$this
->
adapter
->
setStorage
(
$storage
);
$this
->
assertNull
(
$this
->
adapter
->
authenticate
(
$event
));
$this
->
assertEquals
(
$event
->
getCode
(),
Result
::
SUCCESS
);
}
public
function
testUsurpationWithAllowedUsernameAndSuccessfulAuthentication
()
...
...
@@ -228,7 +258,7 @@ class LdapTest extends PHPUnit_Framework_TestCase
$this
->
assertFalse
(
$event
->
propagationIsStopped
());
}
protected
function
_authenticateWithUsurpation
(
$authenticationResultCode
,
AdapterChainEvent
&
$
e
vent
)
protected
function
_authenticateWithUsurpation
(
$authenticationResultCode
,
AdapterChainEvent
&
$
adapterChainE
vent
)
{
$usernameUsurpateur
=
'usurpateur'
;
$usernameUsurpe
=
'usurpe'
;
...
...
@@ -246,10 +276,39 @@ class LdapTest extends PHPUnit_Framework_TestCase
->
will
(
$this
->
returnValue
(
new
Result
(
$authenticationResultCode
,
$usernameUsurpateur
)));
$this
->
adapter
->
setLdapAuthAdapter
(
$this
->
zendAuthLdapAdapter
);
$ldapPeopleMapper
=
$this
->
createMock
(
People
::
class
);
$ldapPeopleMapper
->
expects
(
$this
->
once
())
->
method
(
'findOneByUsername'
)
->
willReturn
(
'not empty'
);
$this
->
adapter
->
setLdapPeopleMapper
(
$ldapPeopleMapper
);
$request
=
new
Request
();
$request
->
setPost
(
new
Parameters
([
'identity'
=>
$username
,
'credential'
=>
"xxxxx"
]));
$event
->
setRequest
(
$request
);
$adapterChainEvent
->
setRequest
(
$request
);
// /** @var AdapterChainEvent|\PHPUnit_Framework_MockObject_MockObject $adapterChainEvent */
// $adapterChainEvent = $this->createMock(AdapterChainEvent::class);
// $adapterChainEvent
// ->expects($this->once())
// ->method('setIdentity')
// ->with('IDENTITY')
// ->willReturnSelf();
// $adapterChainEvent
// ->expects($this->once())
// ->method('setCode')
// ->with(Result::SUCCESS)
// ->willReturnSelf();
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
once
())
->
method
(
'getTarget'
)
->
willReturn
(
$adapterChainEvent
);
$this
->
adapter
->
setOptions
(
$this
->
authModuleOptions
);
$this
->
adapter
->
authenticate
(
$event
);
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment