1515
1616-compile (export_all ).
1717
18+ -define (UTIL_MOD , oauth2_client_test_util ).
1819
1920all () ->
2021[
21- {group , ssl_options }
22+ {group , ssl_options },
23+ {group , get_expiration_time }
2224].
2325
2426groups () ->
@@ -30,6 +32,11 @@ groups() ->
3032 peer_verification_set_to_verify_none ,
3133 peer_verification_set_to_verify_peer_with_cacertfile ,
3234 verify_set_to_verify_peer_with_cacertfile
35+ ]},
36+ {get_expiration_time , [], [
37+ access_token_response_without_expiration_time ,
38+ access_token_response_with_expires_in ,
39+ access_token_response_with_exp_in_access_token
3340 ]}
3441].
3542
@@ -105,3 +112,36 @@ verify_set_to_verify_peer_with_cacertfile(_) ->
105112 cacertfile => " /tmp" ,
106113 verify => verify_peer
107114 })).
115+
116+ access_token_response_with_expires_in (_ ) ->
117+ Jwk = ? UTIL_MOD :fixture_jwk (),
118+ ExpiresIn = os :system_time (seconds ),
119+ AccessToken = ? UTIL_MOD :expirable_token_with_expiration_time (ExpiresIn ),
120+ {_ , EncodedToken } = ? UTIL_MOD :sign_token_hs (AccessToken , Jwk ),
121+ AccessTokenResponse = # successful_access_token_response {
122+ access_token = EncodedToken ,
123+ expires_in = ExpiresIn
124+ },
125+ ? assertEqual ({ok , ExpiresIn }, oauth2_client :get_expiration_time (AccessTokenResponse )).
126+
127+ access_token_response_with_exp_in_access_token (_ ) ->
128+ Jwk = ? UTIL_MOD :fixture_jwk (),
129+ ExpiresIn = os :system_time (seconds ),
130+ AccessToken = ? UTIL_MOD :expirable_token_with_expiration_time (ExpiresIn ),
131+ {_ , EncodedToken } = ? UTIL_MOD :sign_token_hs (AccessToken , Jwk ),
132+ AccessTokenResponse = # successful_access_token_response {
133+ access_token = EncodedToken
134+ },
135+ ? assertEqual ({ok , ExpiresIn }, oauth2_client :get_expiration_time (AccessTokenResponse )).
136+
137+ access_token_response_without_expiration_time (_ ) ->
138+ Jwk = ? UTIL_MOD :fixture_jwk (),
139+ AccessToken = maps :remove (<<" exp" >>, ? UTIL_MOD :fixture_token ()),
140+ ct :log (" AccesToken ~p " , [AccessToken ]),
141+ {_ , EncodedToken } = ? UTIL_MOD :sign_token_hs (AccessToken , Jwk ),
142+ AccessTokenResponse = # successful_access_token_response {
143+ access_token = EncodedToken
144+ },
145+ ct :log (" AccessTokenResponse ~p " , [AccessTokenResponse ]),
146+ ? assertEqual ({error , missing_exp_field }, oauth2_client :get_expiration_time (AccessTokenResponse )).
147+
0 commit comments