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 () ->
@@ -27,42 +29,77 @@ groups() ->
2729 no_ssl_options_triggers_verify_peer ,
2830 peer_verification_verify_none ,
2931 peer_verification_verify_peer_with_cacertfile
32+ ]},
33+ {get_expiration_time , [], [
34+ access_token_response_without_expiration_time ,
35+ access_token_response_with_expires_in ,
36+ access_token_response_with_exp_in_access_token
3037 ]}
3138].
3239
40+
3341no_ssl_options_triggers_verify_peer (_ ) ->
34- ? assertMatch ( [
42+ [
3543 {verify , verify_peer },
3644 {depth , 10 },
3745 {crl_check ,false },
3846 {fail_if_no_peer_cert ,false },
3947 {cacerts , _CaCerts }
40- ], oauth2_client :extract_ssl_options_as_list (#{}) ).
48+ ] = oauth2_client :extract_ssl_options_as_list (#{ } ).
4149
4250peer_verification_verify_none (_ ) ->
43- Expected1 = [
51+ [
4452 {verify , verify_none }
45- ],
46- ? assertEqual (Expected1 , oauth2_client :extract_ssl_options_as_list (#{peer_verification => verify_none })),
47-
48- Expected2 = [
53+ ] = oauth2_client :extract_ssl_options_as_list (#{ peer_verification => verify_none }),
54+ [
4955 {verify , verify_none }
50- ],
51- ? assertEqual (Expected2 , oauth2_client :extract_ssl_options_as_list (#{
56+ ] = oauth2_client :extract_ssl_options_as_list (#{
5257 peer_verification => verify_none ,
5358 cacertfile => " /tmp"
54- })) .
59+ }).
5560
5661
5762peer_verification_verify_peer_with_cacertfile (_ ) ->
58- Expected = [
63+ [
5964 {verify , verify_peer },
6065 {depth , 10 },
6166 {crl_check ,false },
6267 {fail_if_no_peer_cert ,false },
6368 {cacertfile , " /tmp" }
64- ],
65- ? assertEqual (Expected , oauth2_client :extract_ssl_options_as_list (#{
69+ ] = oauth2_client :extract_ssl_options_as_list (#{
6670 cacertfile => " /tmp" ,
6771 peer_verification => verify_peer
68- })).
72+ }).
73+
74+
75+ access_token_response_with_expires_in (_ ) ->
76+ Jwk = ? UTIL_MOD :fixture_jwk (),
77+ ExpiresIn = os :system_time (seconds ),
78+ AccessToken = ? UTIL_MOD :expirable_token_with_expiration_time (ExpiresIn ),
79+ {_ , EncodedToken } = ? UTIL_MOD :sign_token_hs (AccessToken , Jwk ),
80+ AccessTokenResponse = # successful_access_token_response {
81+ access_token = EncodedToken ,
82+ expires_in = ExpiresIn
83+ },
84+ ? assertEqual ({ok , ExpiresIn }, oauth2_client :get_expiration_time (AccessTokenResponse )).
85+
86+ access_token_response_with_exp_in_access_token (_ ) ->
87+ Jwk = ? UTIL_MOD :fixture_jwk (),
88+ ExpiresIn = os :system_time (seconds ),
89+ AccessToken = ? UTIL_MOD :expirable_token_with_expiration_time (ExpiresIn ),
90+ {_ , EncodedToken } = ? UTIL_MOD :sign_token_hs (AccessToken , Jwk ),
91+ AccessTokenResponse = # successful_access_token_response {
92+ access_token = EncodedToken
93+ },
94+ ? assertEqual ({ok , ExpiresIn }, oauth2_client :get_expiration_time (AccessTokenResponse )).
95+
96+ access_token_response_without_expiration_time (_ ) ->
97+ Jwk = ? UTIL_MOD :fixture_jwk (),
98+ AccessToken = maps :remove (<<" exp" >>, ? UTIL_MOD :fixture_token ()),
99+ ct :log (" AccesToken ~p " , [AccessToken ]),
100+ {_ , EncodedToken } = ? UTIL_MOD :sign_token_hs (AccessToken , Jwk ),
101+ AccessTokenResponse = # successful_access_token_response {
102+ access_token = EncodedToken
103+ },
104+ ct :log (" AccessTokenResponse ~p " , [AccessTokenResponse ]),
105+ ? assertEqual ({error , missing_exp_field }, oauth2_client :get_expiration_time (AccessTokenResponse )).
0 commit comments