@ -25,6 +25,7 @@ namespace Test\Authentication\Token;
use OC\Authentication\Exceptions\ExpiredTokenException ;
use OC\Authentication\Exceptions\InvalidTokenException ;
use OC\Authentication\Exceptions\PasswordlessTokenException ;
use OC\Authentication\Token\IToken ;
use OC\Authentication\Token\PublicKeyToken ;
use OC\Authentication\Token\PublicKeyTokenMapper ;
@ -83,6 +84,10 @@ class PublicKeyTokenProviderTest extends TestCase {
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
$this -> assertInstanceOf ( PublicKeyToken :: class , $actual );
@ -93,6 +98,48 @@ class PublicKeyTokenProviderTest extends TestCase {
$this -> assertSame ( $password , $this -> tokenProvider -> getPassword ( $actual , $token ));
}
public function testGenerateTokenNoPassword () {
$token = 'token' ;
$uid = 'user' ;
$user = 'User' ;
$password = 'passme' ;
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , false ],
]);
$this -> expectException ( PasswordlessTokenException :: class );
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
$this -> assertInstanceOf ( PublicKeyToken :: class , $actual );
$this -> assertSame ( $uid , $actual -> getUID ());
$this -> assertSame ( $user , $actual -> getLoginName ());
$this -> assertSame ( $name , $actual -> getName ());
$this -> assertSame ( IToken :: DO_NOT_REMEMBER , $actual -> getRemember ());
$this -> tokenProvider -> getPassword ( $actual , $token );
}
public function testGenerateTokenLongPassword () {
$token = 'token' ;
$uid = 'user' ;
$user = 'User' ;
$password = '' ;
for ( $i = 0 ; $i < 500 ; $i ++ ) {
$password .= 'e' ;
}
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$this -> expectException ( \RuntimeException :: class );
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
}
public function testGenerateTokenInvalidName () {
$token = 'token' ;
$uid = 'user' ;
@ -103,6 +150,10 @@ class PublicKeyTokenProviderTest extends TestCase {
. 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12'
. 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
@ -157,6 +208,10 @@ class PublicKeyTokenProviderTest extends TestCase {
$password = 'passme' ;
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
@ -185,6 +240,10 @@ class PublicKeyTokenProviderTest extends TestCase {
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
$this -> tokenProvider -> getPassword ( $actual , 'wrongtoken' );
@ -197,6 +256,10 @@ class PublicKeyTokenProviderTest extends TestCase {
$password = 'passme' ;
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
@ -301,7 +364,7 @@ class PublicKeyTokenProviderTest extends TestCase {
$this -> tokenProvider -> renewSessionToken ( 'oldId' , 'newId' );
}
public function testRenewSessionTokenWithPassword () {
public function testRenewSessionTokenWithPassword () : void {
$token = 'oldId' ;
$uid = 'user' ;
$user = 'User' ;
@ -309,6 +372,10 @@ class PublicKeyTokenProviderTest extends TestCase {
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$oldToken = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
$this -> mapper
@ -319,7 +386,7 @@ class PublicKeyTokenProviderTest extends TestCase {
$this -> mapper
-> expects ( $this -> once ())
-> method ( 'insert' )
-> with ( $this -> callback ( function ( PublicKeyToken $token ) use ( $user , $uid , $name ) {
-> with ( $this -> callback ( function ( PublicKeyToken $token ) use ( $user , $uid , $name ) : bool {
return $token -> getUID () === $uid &&
$token -> getLoginName () === $user &&
$token -> getName () === $name &&
@ -331,14 +398,14 @@ class PublicKeyTokenProviderTest extends TestCase {
$this -> mapper
-> expects ( $this -> once ())
-> method ( 'delete' )
-> with ( $this -> callback ( function ( $token ) use ( $oldToken ) {
-> with ( $this -> callback ( function ( $token ) use ( $oldToken ) : bool {
return $token === $oldToken ;
}));
$this -> tokenProvider -> renewSessionToken ( 'oldId' , 'newId' );
}
public function testGetToken () {
public function testGetToken () : void {
$token = new PublicKeyToken ();
$this -> config -> method ( 'getSystemValue' )
@ -441,6 +508,10 @@ class PublicKeyTokenProviderTest extends TestCase {
$name = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' ;
$type = IToken :: PERMANENT_TOKEN ;
$this -> config -> method ( 'getSystemValueBool' )
-> willReturnMap ([
[ 'auth.storeCryptedPassword' , true , true ],
]);
$actual = $this -> tokenProvider -> generateToken ( $token , $uid , $user , $password , $name , $type , IToken :: DO_NOT_REMEMBER );
$new = $this -> tokenProvider -> rotate ( $actual , 'oldtoken' , 'newtoken' );