@@ -41,6 +41,10 @@ func TestManager(t *testing.T) {
4141 Convey ("Token test" , func () {
4242 testManager (tgr , manager )
4343 })
44+
45+ Convey ("Token zero expire refresh test" , func () {
46+ testZeroRefreshExpirationManager (tgr , manager )
47+ })
4448 })
4549}
4650
@@ -107,3 +111,38 @@ func testManager(tgr *oauth2.TokenGenerateRequest, manager oauth2.Manager) {
107111 _ , err = manager .LoadRefreshToken (refreshToken )
108112 So (err , ShouldNotBeNil )
109113}
114+
115+ func testZeroRefreshExpirationManager (tgr * oauth2.TokenGenerateRequest , manager oauth2.Manager ) {
116+ config := manage.Config {
117+ RefreshTokenExp : 0 , // Set explicitly as we're testing 0 (no) expiration
118+ IsGenerateRefresh : true ,
119+ }
120+ m , ok := manager .(* manage.Manager )
121+ So (ok , ShouldBeTrue )
122+ m .SetAuthorizeCodeTokenCfg (& config )
123+
124+ cti , err := manager .GenerateAuthToken (oauth2 .Code , tgr )
125+ So (err , ShouldBeNil )
126+
127+ code := cti .GetCode ()
128+ So (code , ShouldNotBeEmpty )
129+
130+ atParams := & oauth2.TokenGenerateRequest {
131+ ClientID : tgr .ClientID ,
132+ ClientSecret : "11" ,
133+ RedirectURI : tgr .RedirectURI ,
134+ Code : code ,
135+ }
136+ ati , err := manager .GenerateAccessToken (oauth2 .AuthorizationCode , atParams )
137+ So (err , ShouldBeNil )
138+
139+ accessToken , refreshToken := ati .GetAccess (), ati .GetRefresh ()
140+ So (accessToken , ShouldNotBeEmpty )
141+ So (refreshToken , ShouldNotBeEmpty )
142+
143+ tokenInfo , err := manager .LoadRefreshToken (refreshToken )
144+ So (err , ShouldBeNil )
145+ So (tokenInfo , ShouldNotBeNil )
146+ So (tokenInfo .GetRefresh (), ShouldEqual , refreshToken )
147+ So (tokenInfo .GetRefreshExpiresIn (), ShouldEqual , 0 )
148+ }
0 commit comments