@@ -79,13 +79,21 @@ class TestOIDCProviderConfig:
7979 'issuer' : 'https://oidc.com/issuer' ,
8080 'display_name' : 'oidcProviderName' ,
8181 'enabled' : True ,
82+ 'id_token_response_type' : True ,
83+ 'code_response_type' : True ,
84+ 'client_secret' : 'CLIENT_SECRET' ,
8285 }
8386
8487 OIDC_CONFIG_REQUEST = {
8588 'displayName' : 'oidcProviderName' ,
8689 'enabled' : True ,
8790 'clientId' : 'CLIENT_ID' ,
91+ 'clientSecret' : 'CLIENT_SECRET' ,
8892 'issuer' : 'https://oidc.com/issuer' ,
93+ 'responseType' : {
94+ 'code' : True ,
95+ 'idToken' : True ,
96+ },
8997 }
9098
9199 @pytest .mark .parametrize ('provider_id' , INVALID_PROVIDER_IDS + ['saml.provider' ])
@@ -112,6 +120,11 @@ def test_get(self, user_mgt_app):
112120 {'issuer' : None }, {'issuer' : '' }, {'issuer' : 'not a url' },
113121 {'display_name' : True },
114122 {'enabled' : 'true' },
123+ {'id_token_response_type' : 'true' }, {'code_response_type' : 'true' },
124+ {'code_response_type' : True , 'client_secret' : '' },
125+ {'code_response_type' : True , 'client_secret' : True },
126+ {'code_response_type' : True , 'client_secret' : None },
127+ {'code_response_type' : False , 'id_token_response_type' : False },
115128 ])
116129 def test_create_invalid_args (self , user_mgt_app , invalid_opts ):
117130 options = dict (self .VALID_CREATE_OPTIONS )
@@ -139,9 +152,14 @@ def test_create_minimal(self, user_mgt_app):
139152 options = dict (self .VALID_CREATE_OPTIONS )
140153 del options ['display_name' ]
141154 del options ['enabled' ]
155+ del options ['client_secret' ]
156+ del options ['id_token_response_type' ]
157+ del options ['code_response_type' ]
142158 want = dict (self .OIDC_CONFIG_REQUEST )
143159 del want ['displayName' ]
144160 del want ['enabled' ]
161+ del want ['clientSecret' ]
162+ del want ['responseType' ]
145163
146164 provider_config = auth .create_oidc_provider_config (** options , app = user_mgt_app )
147165
@@ -159,9 +177,15 @@ def test_create_empty_values(self, user_mgt_app):
159177 options = dict (self .VALID_CREATE_OPTIONS )
160178 options ['display_name' ] = ''
161179 options ['enabled' ] = False
180+ options ['code_response_type' ] = False
162181 want = dict (self .OIDC_CONFIG_REQUEST )
163182 want ['displayName' ] = ''
164183 want ['enabled' ] = False
184+ want ['responseType' ] = {
185+ 'code' : False ,
186+ 'idToken' : True ,
187+ }
188+ del want ['clientSecret' ]
165189
166190 provider_config = auth .create_oidc_provider_config (** options , app = user_mgt_app )
167191
@@ -181,6 +205,11 @@ def test_create_empty_values(self, user_mgt_app):
181205 {'issuer' : '' }, {'issuer' : 'not a url' },
182206 {'display_name' : True },
183207 {'enabled' : 'true' },
208+ {'id_token_response_type' : 'true' }, {'code_response_type' : 'true' },
209+ {'code_response_type' : True , 'client_secret' : '' },
210+ {'code_response_type' : True , 'client_secret' : True },
211+ {'code_response_type' : True , 'client_secret' : None },
212+ {'code_response_type' : False , 'id_token_response_type' : False },
184213 ])
185214 def test_update_invalid_args (self , user_mgt_app , invalid_opts ):
186215 options = {'provider_id' : 'oidc.provider' }
@@ -198,7 +227,8 @@ def test_update(self, user_mgt_app):
198227 assert len (recorder ) == 1
199228 req = recorder [0 ]
200229 assert req .method == 'PATCH'
201- mask = ['clientId' , 'displayName' , 'enabled' , 'issuer' ]
230+ mask = ['clientId' , 'clientSecret' , 'displayName' , 'enabled' , 'issuer' ,
231+ 'responseType.code' , 'responseType.idToken' ]
202232 assert req .url == '{0}/oauthIdpConfigs/oidc.provider?updateMask={1}' .format (
203233 USER_MGT_URLS ['PREFIX' ], ',' .join (mask ))
204234 got = json .loads (req .body .decode ())
@@ -223,17 +253,18 @@ def test_update_empty_values(self, user_mgt_app):
223253 recorder = _instrument_provider_mgt (user_mgt_app , 200 , OIDC_PROVIDER_CONFIG_RESPONSE )
224254
225255 provider_config = auth .update_oidc_provider_config (
226- 'oidc.provider' , display_name = auth .DELETE_ATTRIBUTE , enabled = False , app = user_mgt_app )
256+ 'oidc.provider' , display_name = auth .DELETE_ATTRIBUTE , enabled = False ,
257+ id_token_response_type = False , app = user_mgt_app )
227258
228259 self ._assert_provider_config (provider_config )
229260 assert len (recorder ) == 1
230261 req = recorder [0 ]
231262 assert req .method == 'PATCH'
232- mask = ['displayName' , 'enabled' ]
263+ mask = ['displayName' , 'enabled' , 'responseType.idToken' ]
233264 assert req .url == '{0}/oauthIdpConfigs/oidc.provider?updateMask={1}' .format (
234265 USER_MGT_URLS ['PREFIX' ], ',' .join (mask ))
235266 got = json .loads (req .body .decode ())
236- assert got == {'displayName' : None , 'enabled' : False }
267+ assert got == {'displayName' : None , 'enabled' : False , 'responseType' : { 'idToken' : False } }
237268
238269 @pytest .mark .parametrize ('provider_id' , INVALID_PROVIDER_IDS + ['saml.provider' ])
239270 def test_delete_invalid_provider_id (self , user_mgt_app , provider_id ):
0 commit comments