@@ -97,6 +97,23 @@ describe('Service', function() {
9797 assert . equal ( properties . counter , propertiesStart ) ;
9898 } ) ;
9999
100+ it ( 'should skip the local memory cache when desired' , function ( ) {
101+ var properties = new MockProperties ( ) ;
102+ var service = OAuth2 . createService ( 'test' )
103+ . setPropertyStore ( properties ) ;
104+ var token = {
105+ access_token : 'foo'
106+ } ;
107+ service . saveToken_ ( token ) ;
108+
109+ var newToken = {
110+ access_token : 'bar'
111+ } ;
112+ properties . setProperty ( 'oauth2.test' , JSON . stringify ( newToken ) ) ;
113+
114+ assert . deepEqual ( service . getToken ( true ) , newToken ) ;
115+ } ) ;
116+
100117 it ( 'should load null tokens from the cache' ,
101118 function ( ) {
102119 var cache = new MockCache ( ) ;
@@ -212,6 +229,47 @@ describe('Service', function() {
212229 done ( ) ;
213230 } ) ;
214231 } ) ;
232+
233+ it ( 'should not acquire a lock when the token is not expired' , function ( ) {
234+ var token = {
235+ granted_time : ( new Date ( ) ) . getTime ( ) ,
236+ expires_in : 1000 ,
237+ access_token : 'foo' ,
238+ refresh_token : 'bar'
239+ } ;
240+ var lock = new MockLock ( ) ;
241+ var properties = new MockProperties ( {
242+ 'oauth2.test' : JSON . stringify ( token )
243+ } ) ;
244+ var service = OAuth2 . createService ( 'test' )
245+ . setClientId ( 'abc' )
246+ . setClientSecret ( 'def' )
247+ . setTokenUrl ( 'http://www.example.com' )
248+ . setPropertyStore ( properties )
249+ . setLock ( lock ) ;
250+ service . hasAccess ( ) ;
251+ assert . equal ( lock . counter , 0 ) ;
252+ } ) ;
253+
254+ it ( 'should not acquire a lock when there is no refresh token' , function ( ) {
255+ var token = {
256+ granted_time : 100 ,
257+ expires_in : 100 ,
258+ access_token : 'foo' ,
259+ } ;
260+ var lock = new MockLock ( ) ;
261+ var properties = new MockProperties ( {
262+ 'oauth2.test' : JSON . stringify ( token )
263+ } ) ;
264+ var service = OAuth2 . createService ( 'test' )
265+ . setClientId ( 'abc' )
266+ . setClientSecret ( 'def' )
267+ . setTokenUrl ( 'http://www.example.com' )
268+ . setPropertyStore ( properties )
269+ . setLock ( lock ) ;
270+ service . hasAccess ( ) ;
271+ assert . equal ( lock . counter , 0 ) ;
272+ } ) ;
215273 } ) ;
216274
217275 describe ( '#refresh()' , function ( ) {
0 commit comments