@@ -134,6 +134,22 @@ void test_pc_list_add_smartcard(void **state)
134134 pc_list_free (pc_list );
135135}
136136
137+ void test_pc_list_add_oauth2 (void * * state )
138+ {
139+ int ret ;
140+ struct prompt_config * * pc_list = NULL ;
141+
142+ ret = pc_list_add_oauth2 (& pc_list , "inter" );
143+ assert_int_equal (ret , EOK );
144+ assert_non_null (pc_list );
145+ assert_non_null (pc_list [0 ]);
146+ assert_int_equal (PC_TYPE_OAUTH2 , pc_get_type (pc_list [0 ]));
147+ assert_string_equal ("inter" , pc_get_oauth2_inter_prompt (pc_list [0 ]));
148+ assert_null (pc_list [1 ]);
149+
150+ pc_list_free (pc_list );
151+ }
152+
137153void test_pam_get_response_prompt_config (void * * state )
138154{
139155 int ret ;
@@ -156,21 +172,26 @@ void test_pam_get_response_prompt_config(void **state)
156172 ret = pc_list_add_smartcard (& pc_list , "init" , "PIN" );
157173 assert_int_equal (ret , EOK );
158174
175+ ret = pc_list_add_oauth2 (& pc_list , "inter" );
176+ assert_int_equal (ret , EOK );
177+
159178 ret = pam_get_response_prompt_config (pc_list , & len , & data );
160179 pc_list_free (pc_list );
161180 assert_int_equal (ret , EOK );
162- assert_int_equal (len , 96 );
181+ assert_int_equal (len , 109 );
163182
164183#if __BYTE_ORDER == __LITTLE_ENDIAN
165- assert_memory_equal (data , "\5 \0\0\0\1\0\0\0\10\0\0\0" "password\2\0\0\0\5\0\0\0"
184+ assert_memory_equal (data , "\6 \0\0\0\1\0\0\0\10\0\0\0" "password\2\0\0\0\5\0\0\0"
166185 "first\6\0\0\0" "second\3\0\0\0\6\0\0\0" "single\6\0\0\0\4\0\0\0"
167186 "init\4\0\0\0" "link\5\0\0\0\4\0\0\0"
168- "init\3\0\0\0" "PIN" , len );
187+ "init\3\0\0\0" "PIN\7\0\0\0\5\0\0\0"
188+ "inter" , len );
169189#else
170- assert_memory_equal (data , "\0\0\0\5 \0\0\0\1\0\0\0\10" "password\0\0\0\2\0\0\0\5"
190+ assert_memory_equal (data , "\0\0\0\6 \0\0\0\1\0\0\0\10" "password\0\0\0\2\0\0\0\5"
171191 "first\0\0\0\6" "second\0\0\0\3\0\0\0\6" "single\0\0\0\6\0\0\0\4"
172192 "init\0\0\0\4" "link\0\0\0\5\0\0\0\4"
173- "init\0\0\0\3" "PIN" , len );
193+ "init\0\0\0\3" "PIN\0\0\0\7\0\0\0\5"
194+ "inter" , len );
174195#endif
175196
176197 free (data );
@@ -198,10 +219,13 @@ void test_pc_list_from_response(void **state)
198219 ret = pc_list_add_smartcard (& pc_list , "init" , "PIN" );
199220 assert_int_equal (ret , EOK );
200221
222+ ret = pc_list_add_oauth2 (& pc_list , "inter" );
223+ assert_int_equal (ret , EOK );
224+
201225 ret = pam_get_response_prompt_config (pc_list , & len , & data );
202226 pc_list_free (pc_list );
203227 assert_int_equal (ret , EOK );
204- assert_int_equal (len , 96 );
228+ assert_int_equal (len , 109 );
205229
206230 pc_list = NULL ;
207231
@@ -233,7 +257,11 @@ void test_pc_list_from_response(void **state)
233257 assert_string_equal ("init" , pc_get_smartcard_init_prompt (pc_list [4 ]));
234258 assert_string_equal ("PIN" , pc_get_smartcard_pin_prompt (pc_list [4 ]));
235259
236- assert_null (pc_list [5 ]);
260+ assert_non_null (pc_list [5 ]);
261+ assert_int_equal (PC_TYPE_OAUTH2 , pc_get_type (pc_list [5 ]));
262+ assert_string_equal ("inter" , pc_get_oauth2_inter_prompt (pc_list [5 ]));
263+
264+ assert_null (pc_list [6 ]);
237265
238266 pc_list_free (pc_list );
239267}
@@ -254,6 +282,7 @@ int main(int argc, const char *argv[])
254282 cmocka_unit_test (test_pc_list_add_2fa ),
255283 cmocka_unit_test (test_pc_list_add_eidp ),
256284 cmocka_unit_test (test_pc_list_add_smartcard ),
285+ cmocka_unit_test (test_pc_list_add_oauth2 ),
257286 cmocka_unit_test (test_pam_get_response_prompt_config ),
258287 cmocka_unit_test (test_pc_list_from_response ),
259288 };
0 commit comments