webrtc_get_state
webrtc_add_media_source
webrtc_remove_media_source
+webrtc_set_stun_server
+webrtc_get_stun_server
+webrtc_add_turn_server
+webrtc_foreach_turn_server
+webrtc_create_offer
+webrtc_create_answer
+webrtc_set_local_description
+webrtc_set_remote_description
+webrtc_add_ice_candidate
webrtc_get_peer_connection_state
webrtc_get_signaling_state
webrtc_get_ice_gathering_state
webrtc_set_ice_gathering_state_change_cb
webrtc_unset_ice_gathering_state_change_cb
webrtc_set_ice_connection_state_change_cb
-webrtc_unset_ice_connection_state_change_cb
\ No newline at end of file
+webrtc_unset_ice_connection_state_change_cb
+webrtc_set_encoded_audio_frame_cb
+webrtc_unset_encoded_audio_frame_cb
+webrtc_set_encoded_video_frame_cb
+webrtc_unset_encoded_video_frame_cb
\ No newline at end of file
extern int utc_media_webrtc_remove_media_source_p(void);
extern int utc_media_webrtc_remove_media_source_n1(void);
extern int utc_media_webrtc_remove_media_source_n2(void);
+extern int utc_media_webrtc_set_stun_server_p(void);
+extern int utc_media_webrtc_set_stun_server_n1(void);
+extern int utc_media_webrtc_set_stun_server_n2(void);
+extern int utc_media_webrtc_get_stun_server_p(void);
+extern int utc_media_webrtc_get_stun_server_n(void);
+extern int utc_media_webrtc_add_turn_server_p(void);
+extern int utc_media_webrtc_add_turn_server_n1(void);
+extern int utc_media_webrtc_add_turn_server_n2(void);
+extern int utc_media_webrtc_create_offer_p(void);
+extern int utc_media_webrtc_create_offer_n1(void);
+extern int utc_media_webrtc_create_offer_n2(void);
+extern int utc_media_webrtc_create_answer_p(void);
+extern int utc_media_webrtc_create_answer_n1(void);
+extern int utc_media_webrtc_create_answer_n2(void);
+extern int utc_media_webrtc_create_answer_n3(void);
+extern int utc_media_webrtc_set_local_description_p(void);
+extern int utc_media_webrtc_set_local_description_n(void);
+extern int utc_media_webrtc_set_remote_description_p(void);
+extern int utc_media_webrtc_set_remote_description_n(void);
+extern int utc_media_webrtc_add_ice_candidate_p(void);
+extern int utc_media_webrtc_add_ice_candidate_n1(void);
+extern int utc_media_webrtc_add_ice_candidate_n2(void);
+extern int utc_media_webrtc_foreach_turn_server_p(void);
+extern int utc_media_webrtc_foreach_turn_server_n(void);
extern int utc_media_webrtc_get_peer_connection_state_p(void);
extern int utc_media_webrtc_get_peer_connection_state_n(void);
extern int utc_media_webrtc_get_signaling_state_p(void);
extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_n(void);
testcase tc_array[] = {
{"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_p",utc_media_webrtc_set_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n1",utc_media_webrtc_set_stun_server_n1,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n2",utc_media_webrtc_set_stun_server_n2,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_p",utc_media_webrtc_get_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_n",utc_media_webrtc_get_stun_server_n,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_p",utc_media_webrtc_add_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n1",utc_media_webrtc_add_turn_server_n1,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n2",utc_media_webrtc_add_turn_server_n2,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_p",utc_media_webrtc_foreach_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_n",utc_media_webrtc_foreach_turn_server_n,NULL,NULL},
+ {"utc_media_webrtc_create_offer_p",utc_media_webrtc_create_offer_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n1",utc_media_webrtc_create_offer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n2",utc_media_webrtc_create_offer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_p",utc_media_webrtc_create_answer_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n1",utc_media_webrtc_create_answer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n2",utc_media_webrtc_create_answer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n3",utc_media_webrtc_create_answer_n3,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_p",utc_media_webrtc_set_local_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_n",utc_media_webrtc_set_local_description_n,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_p",utc_media_webrtc_set_remote_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_n",utc_media_webrtc_set_remote_description_n,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_p",utc_media_webrtc_add_ice_candidate_p,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n1",utc_media_webrtc_add_ice_candidate_n1,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n2",utc_media_webrtc_add_ice_candidate_n2,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL},
{"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL},
{"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_p",utc_media_webrtc_set_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_n",utc_media_webrtc_set_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_p",utc_media_webrtc_unset_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_n",utc_media_webrtc_unset_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_p",utc_media_webrtc_set_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_n",utc_media_webrtc_set_encoded_video_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_p",utc_media_webrtc_unset_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_n",utc_media_webrtc_unset_encoded_video_frame_cb_n,NULL,NULL},
{NULL, NULL}
};
extern int utc_media_webrtc_remove_media_source_p(void);
extern int utc_media_webrtc_remove_media_source_n1(void);
extern int utc_media_webrtc_remove_media_source_n2(void);
+extern int utc_media_webrtc_set_stun_server_p(void);
+extern int utc_media_webrtc_set_stun_server_n1(void);
+extern int utc_media_webrtc_set_stun_server_n2(void);
+extern int utc_media_webrtc_get_stun_server_p(void);
+extern int utc_media_webrtc_get_stun_server_n(void);
+extern int utc_media_webrtc_add_turn_server_p(void);
+extern int utc_media_webrtc_add_turn_server_n1(void);
+extern int utc_media_webrtc_add_turn_server_n2(void);
+extern int utc_media_webrtc_create_offer_p(void);
+extern int utc_media_webrtc_create_offer_n1(void);
+extern int utc_media_webrtc_create_offer_n2(void);
+extern int utc_media_webrtc_create_answer_p(void);
+extern int utc_media_webrtc_create_answer_n1(void);
+extern int utc_media_webrtc_create_answer_n2(void);
+extern int utc_media_webrtc_create_answer_n3(void);
+extern int utc_media_webrtc_set_local_description_p(void);
+extern int utc_media_webrtc_set_local_description_n(void);
+extern int utc_media_webrtc_set_remote_description_p(void);
+extern int utc_media_webrtc_set_remote_description_n(void);
+extern int utc_media_webrtc_add_ice_candidate_p(void);
+extern int utc_media_webrtc_add_ice_candidate_n1(void);
+extern int utc_media_webrtc_add_ice_candidate_n2(void);
+extern int utc_media_webrtc_foreach_turn_server_p(void);
+extern int utc_media_webrtc_foreach_turn_server_n(void);
extern int utc_media_webrtc_get_peer_connection_state_p(void);
extern int utc_media_webrtc_get_peer_connection_state_n(void);
extern int utc_media_webrtc_get_signaling_state_p(void);
extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_n(void);
testcase tc_array[] = {
{"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_p",utc_media_webrtc_set_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n1",utc_media_webrtc_set_stun_server_n1,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n2",utc_media_webrtc_set_stun_server_n2,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_p",utc_media_webrtc_get_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_n",utc_media_webrtc_get_stun_server_n,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_p",utc_media_webrtc_add_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n1",utc_media_webrtc_add_turn_server_n1,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n2",utc_media_webrtc_add_turn_server_n2,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_p",utc_media_webrtc_foreach_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_n",utc_media_webrtc_foreach_turn_server_n,NULL,NULL},
+ {"utc_media_webrtc_create_offer_p",utc_media_webrtc_create_offer_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n1",utc_media_webrtc_create_offer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n2",utc_media_webrtc_create_offer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_p",utc_media_webrtc_create_answer_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n1",utc_media_webrtc_create_answer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n2",utc_media_webrtc_create_answer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n3",utc_media_webrtc_create_answer_n3,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_p",utc_media_webrtc_set_local_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_n",utc_media_webrtc_set_local_description_n,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_p",utc_media_webrtc_set_remote_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_n",utc_media_webrtc_set_remote_description_n,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_p",utc_media_webrtc_add_ice_candidate_p,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n1",utc_media_webrtc_add_ice_candidate_n1,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n2",utc_media_webrtc_add_ice_candidate_n2,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL},
{"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL},
{"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_p",utc_media_webrtc_set_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_n",utc_media_webrtc_set_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_p",utc_media_webrtc_unset_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_n",utc_media_webrtc_unset_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_p",utc_media_webrtc_set_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_n",utc_media_webrtc_set_encoded_video_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_p",utc_media_webrtc_unset_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_n",utc_media_webrtc_unset_encoded_video_frame_cb_n,NULL,NULL},
{NULL, NULL}
};
extern int utc_media_webrtc_remove_media_source_p(void);
extern int utc_media_webrtc_remove_media_source_n1(void);
extern int utc_media_webrtc_remove_media_source_n2(void);
+extern int utc_media_webrtc_set_stun_server_p(void);
+extern int utc_media_webrtc_set_stun_server_n1(void);
+extern int utc_media_webrtc_set_stun_server_n2(void);
+extern int utc_media_webrtc_get_stun_server_p(void);
+extern int utc_media_webrtc_get_stun_server_n(void);
+extern int utc_media_webrtc_add_turn_server_p(void);
+extern int utc_media_webrtc_add_turn_server_n1(void);
+extern int utc_media_webrtc_add_turn_server_n2(void);
+extern int utc_media_webrtc_create_offer_p(void);
+extern int utc_media_webrtc_create_offer_n1(void);
+extern int utc_media_webrtc_create_offer_n2(void);
+extern int utc_media_webrtc_create_answer_p(void);
+extern int utc_media_webrtc_create_answer_n1(void);
+extern int utc_media_webrtc_create_answer_n2(void);
+extern int utc_media_webrtc_create_answer_n3(void);
+extern int utc_media_webrtc_set_local_description_p(void);
+extern int utc_media_webrtc_set_local_description_n(void);
+extern int utc_media_webrtc_set_remote_description_p(void);
+extern int utc_media_webrtc_set_remote_description_n(void);
+extern int utc_media_webrtc_add_ice_candidate_p(void);
+extern int utc_media_webrtc_add_ice_candidate_n1(void);
+extern int utc_media_webrtc_add_ice_candidate_n2(void);
+extern int utc_media_webrtc_foreach_turn_server_p(void);
+extern int utc_media_webrtc_foreach_turn_server_n(void);
extern int utc_media_webrtc_get_peer_connection_state_p(void);
extern int utc_media_webrtc_get_peer_connection_state_n(void);
extern int utc_media_webrtc_get_signaling_state_p(void);
extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_n(void);
testcase tc_array[] = {
{"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_p",utc_media_webrtc_set_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n1",utc_media_webrtc_set_stun_server_n1,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n2",utc_media_webrtc_set_stun_server_n2,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_p",utc_media_webrtc_get_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_n",utc_media_webrtc_get_stun_server_n,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_p",utc_media_webrtc_add_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n1",utc_media_webrtc_add_turn_server_n1,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n2",utc_media_webrtc_add_turn_server_n2,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_p",utc_media_webrtc_foreach_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_n",utc_media_webrtc_foreach_turn_server_n,NULL,NULL},
+ {"utc_media_webrtc_create_offer_p",utc_media_webrtc_create_offer_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n1",utc_media_webrtc_create_offer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n2",utc_media_webrtc_create_offer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_p",utc_media_webrtc_create_answer_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n1",utc_media_webrtc_create_answer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n2",utc_media_webrtc_create_answer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n3",utc_media_webrtc_create_answer_n3,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_p",utc_media_webrtc_set_local_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_n",utc_media_webrtc_set_local_description_n,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_p",utc_media_webrtc_set_remote_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_n",utc_media_webrtc_set_remote_description_n,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_p",utc_media_webrtc_add_ice_candidate_p,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n1",utc_media_webrtc_add_ice_candidate_n1,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n2",utc_media_webrtc_add_ice_candidate_n2,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL},
{"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL},
{"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_p",utc_media_webrtc_set_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_n",utc_media_webrtc_set_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_p",utc_media_webrtc_unset_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_n",utc_media_webrtc_unset_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_p",utc_media_webrtc_set_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_n",utc_media_webrtc_set_encoded_video_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_p",utc_media_webrtc_unset_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_n",utc_media_webrtc_unset_encoded_video_frame_cb_n,NULL,NULL},
{NULL, NULL}
};
extern int utc_media_webrtc_remove_media_source_p(void);
extern int utc_media_webrtc_remove_media_source_n1(void);
extern int utc_media_webrtc_remove_media_source_n2(void);
+extern int utc_media_webrtc_set_stun_server_p(void);
+extern int utc_media_webrtc_set_stun_server_n1(void);
+extern int utc_media_webrtc_set_stun_server_n2(void);
+extern int utc_media_webrtc_get_stun_server_p(void);
+extern int utc_media_webrtc_get_stun_server_n(void);
+extern int utc_media_webrtc_add_turn_server_p(void);
+extern int utc_media_webrtc_add_turn_server_n1(void);
+extern int utc_media_webrtc_add_turn_server_n2(void);
+extern int utc_media_webrtc_create_offer_p(void);
+extern int utc_media_webrtc_create_offer_n1(void);
+extern int utc_media_webrtc_create_offer_n2(void);
+extern int utc_media_webrtc_create_answer_p(void);
+extern int utc_media_webrtc_create_answer_n1(void);
+extern int utc_media_webrtc_create_answer_n2(void);
+extern int utc_media_webrtc_create_answer_n3(void);
+extern int utc_media_webrtc_set_local_description_p(void);
+extern int utc_media_webrtc_set_local_description_n(void);
+extern int utc_media_webrtc_set_remote_description_p(void);
+extern int utc_media_webrtc_set_remote_description_n(void);
+extern int utc_media_webrtc_add_ice_candidate_p(void);
+extern int utc_media_webrtc_add_ice_candidate_n1(void);
+extern int utc_media_webrtc_add_ice_candidate_n2(void);
+extern int utc_media_webrtc_foreach_turn_server_p(void);
+extern int utc_media_webrtc_foreach_turn_server_n(void);
extern int utc_media_webrtc_get_peer_connection_state_p(void);
extern int utc_media_webrtc_get_peer_connection_state_n(void);
extern int utc_media_webrtc_get_signaling_state_p(void);
extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void);
extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_audio_frame_cb_n(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_set_encoded_video_frame_cb_n(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_p(void);
+extern int utc_media_webrtc_unset_encoded_video_frame_cb_n(void);
testcase tc_array[] = {
{"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL},
{"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_p",utc_media_webrtc_set_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n1",utc_media_webrtc_set_stun_server_n1,NULL,NULL},
+ {"utc_media_webrtc_set_stun_server_n2",utc_media_webrtc_set_stun_server_n2,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_p",utc_media_webrtc_get_stun_server_p,NULL,NULL},
+ {"utc_media_webrtc_get_stun_server_n",utc_media_webrtc_get_stun_server_n,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_p",utc_media_webrtc_add_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n1",utc_media_webrtc_add_turn_server_n1,NULL,NULL},
+ {"utc_media_webrtc_add_turn_server_n2",utc_media_webrtc_add_turn_server_n2,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_p",utc_media_webrtc_foreach_turn_server_p,NULL,NULL},
+ {"utc_media_webrtc_foreach_turn_server_n",utc_media_webrtc_foreach_turn_server_n,NULL,NULL},
+ {"utc_media_webrtc_create_offer_p",utc_media_webrtc_create_offer_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n1",utc_media_webrtc_create_offer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_n2",utc_media_webrtc_create_offer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_p",utc_media_webrtc_create_answer_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n1",utc_media_webrtc_create_answer_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n2",utc_media_webrtc_create_answer_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_n3",utc_media_webrtc_create_answer_n3,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_p",utc_media_webrtc_set_local_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_local_description_n",utc_media_webrtc_set_local_description_n,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_p",utc_media_webrtc_set_remote_description_p,NULL,NULL},
+ {"utc_media_webrtc_set_remote_description_n",utc_media_webrtc_set_remote_description_n,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_p",utc_media_webrtc_add_ice_candidate_p,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n1",utc_media_webrtc_add_ice_candidate_n1,NULL,NULL},
+ {"utc_media_webrtc_add_ice_candidate_n2",utc_media_webrtc_add_ice_candidate_n2,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL},
{"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL},
{"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL},
{"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL},
{"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_p",utc_media_webrtc_set_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_audio_frame_cb_n",utc_media_webrtc_set_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_p",utc_media_webrtc_unset_encoded_audio_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_audio_frame_cb_n",utc_media_webrtc_unset_encoded_audio_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_p",utc_media_webrtc_set_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_set_encoded_video_frame_cb_n",utc_media_webrtc_set_encoded_video_frame_cb_n,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_p",utc_media_webrtc_unset_encoded_video_frame_cb_p,NULL,NULL},
+ {"utc_media_webrtc_unset_encoded_video_frame_cb_n",utc_media_webrtc_unset_encoded_video_frame_cb_n,NULL,NULL},
{NULL, NULL}
};
{
}
+static void __webrtc_encoded_frame_cb(webrtc_h webrtc, webrtc_media_type_e type, unsigned int track_id, media_packet_h packet, void *user_data)
+{
+}
+
/**
* @testcase utc_media_webrtc_set_state_changed_cb_p
* @since_tizen 6.5
return 0;
}
+
+/**
+ * @testcase utc_media_webrtc_set_encoded_audio_frame_cb_p
+ * @since_tizen 6.5
+ * @description Sets an encoded audio frame callback
+ */
+int utc_media_webrtc_set_encoded_audio_frame_cb_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_encoded_audio_frame_cb(webrtc, __webrtc_encoded_frame_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_encoded_audio_frame_cb_n
+ * @since_tizen 6.5
+ * @description Sets an encoded audio frame callback
+ * - Sets the callback without callback function pointer to get negative result
+ */
+int utc_media_webrtc_set_encoded_audio_frame_cb_n(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_encoded_audio_frame_cb(webrtc, NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_unset_encoded_audio_frame_cb_p
+ * @since_tizen 6.5
+ * @description Unsets the encoded audio frame callback
+ */
+int utc_media_webrtc_unset_encoded_audio_frame_cb_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_encoded_audio_frame_cb(webrtc, __webrtc_encoded_frame_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_unset_encoded_audio_frame_cb(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_unset_encoded_audio_frame_cb_n
+ * @since_tizen 6.5
+ * @description Unsets the encoded audio frame callback
+ * - Unsets the callback without setting it to get negative result
+ */
+int utc_media_webrtc_unset_encoded_audio_frame_cb_n(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_unset_encoded_audio_frame_cb(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_OPERATION);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_encoded_video_frame_cb_p
+ * @since_tizen 6.5
+ * @description Sets an encoded video frame callback
+ */
+int utc_media_webrtc_set_encoded_video_frame_cb_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_encoded_video_frame_cb(webrtc, __webrtc_encoded_frame_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_encoded_video_frame_cb_n
+ * @since_tizen 6.5
+ * @description Sets an encoded video frame callback
+ * - Sets the callback without callback function pointer to get negative result
+ */
+int utc_media_webrtc_set_encoded_video_frame_cb_n(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_encoded_video_frame_cb(webrtc, NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_unset_encoded_video_frame_cb_p
+ * @since_tizen 6.5
+ * @description Unsets the encoded video frame callback
+ */
+int utc_media_webrtc_unset_encoded_video_frame_cb_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_encoded_video_frame_cb(webrtc, __webrtc_encoded_frame_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_unset_encoded_video_frame_cb(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_unset_encoded_video_frame_cb_n
+ * @since_tizen 6.5
+ * @description Unsets the encoded video frame callback
+ * - Unsets the callback without setting it to get negative result
+ */
+int utc_media_webrtc_unset_encoded_video_frame_cb_n(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_unset_encoded_video_frame_cb(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_OPERATION);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
#include <dlog.h>
#define TIMEOUT_MS 1000
+#define TEST_STUN_SERVER_URL "stun://stun.testurl.com:19302"
+#define TEST_TURN_SERVER_URL "turn://turn.testurl.com:19303"
+#define TEST_TURN_SERVER_URL2 "turn://turn2.testurl.com:19303"
+#define TEST_ICE_CANDIDATE "{'ice':{'candidate':'candidate:3600539631 1 tcp 1518149375 192.168.0.127 9 typ host tcptype active generation 0 ufrag l4kk network-id 3 network-cost 10','sdpMid':'video0','sdpMLineIndex':0}}"
static GMainLoop *g_mainloop = NULL;
static int g_timeout_id = 0;
__quit_mainloop();
}
+static void __webrtc_signaling_state_change_cb(webrtc_h webrtc, webrtc_signaling_state_e state, void *user_data)
+{
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s:%d] current state[%d]", __FUNCTION__, __LINE__, state);
+
+ __quit_mainloop();
+}
+
+static bool __webrtc_turn_server_cb(const char *turn_server, void *user_data)
+{
+ int *count = (int*)user_data;
+
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s:%d] turn_server[%s]", __FUNCTION__, __LINE__, turn_server);
+
+ (*count)--;
+
+ return true;
+}
+
/**
* @testcase utc_media_webrtc_create_p
* @since_tizen 6.5
return 0;
}
+/**
+ * @testcase utc_media_webrtc_set_stun_server_p
+ * @since_tizen 6.5
+ * @description Sets STUN server\n
+ * - Create a webrtc handle\n
+ * - Set STUN server
+ */
+int utc_media_webrtc_set_stun_server_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_stun_server(webrtc, TEST_STUN_SERVER_URL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_stun_server_n1
+ * @since_tizen 6.5
+ * @description Sets STUN server\n
+ * - Create a webrtc handle\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_set_stun_server_n1(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_stun_server(webrtc, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_stun_server_n2
+ * @since_tizen 6.5
+ * @description Sets STUN server\n
+ * - Create a webrtc handle\n
+ * - Start the webrtc handle and set it to get negative result
+ */
+int utc_media_webrtc_set_stun_server_n2(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_set_stun_server(webrtc, TEST_STUN_SERVER_URL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_get_stun_server_p
+ * @since_tizen 6.5
+ * @description Gets STUN server\n
+ * - Create a webrtc handle\n
+ * - Set STUN server
+ * - Get the server
+ */
+int utc_media_webrtc_get_stun_server_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ char *result = NULL;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_stun_server(webrtc, TEST_STUN_SERVER_URL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_get_stun_server(webrtc, &result);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] %s %s", __FUNCTION__, __LINE__, result, TEST_STUN_SERVER_URL);
+ if (strcmp(result, TEST_STUN_SERVER_URL))
+ return -1;
+
+ webrtc_destroy(webrtc);
+
+ free(result);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_get_stun_server_n
+ * @since_tizen 6.5
+ * @description Gets STUN server\n
+ * - Create a webrtc handle\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_get_stun_server_n(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_get_stun_server(webrtc, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+
+/**
+ * @testcase utc_media_webrtc_add_turn_server_p
+ * @since_tizen 6.5
+ * @description Adds TURN server\n
+ * - Create a webrtc handle\n
+ * - Add TURN server
+ */
+int utc_media_webrtc_add_turn_server_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_turn_server(webrtc, TEST_TURN_SERVER_URL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_add_turn_server_n1
+ * @since_tizen 6.5
+ * @description Adds TURN server\n
+ * - Create a webrtc handle\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_add_turn_server_n1(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_turn_server(webrtc, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_add_turn_server_n2
+ * @since_tizen 6.5
+ * @description Adds TURN server\n
+ * - Create a webrtc handle\n
+ * - Start the webrtc handle and set it to get negative result
+ */
+int utc_media_webrtc_add_turn_server_n2(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_add_turn_server(webrtc, TEST_TURN_SERVER_URL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_foreach_turn_server_p
+ * @since_tizen 6.5
+ * @description Retrieves TURN servers\n
+ * - Create a webrtc handle\n
+ * - Add TURN server\n
+ * - Foreach TURN server
+ */
+int utc_media_webrtc_foreach_turn_server_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ int count = 0;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_turn_server(webrtc, TEST_TURN_SERVER_URL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+ count++;
+
+ ret = webrtc_add_turn_server(webrtc, TEST_TURN_SERVER_URL2);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+ count++;
+
+ ret = webrtc_foreach_turn_server(webrtc, __webrtc_turn_server_cb, (void *)&count);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+ assert_eq(count, 0);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_foreach_turn_server_n
+ * @since_tizen 6.5
+ * @description Adds TURN server\n
+ * - Create a webrtc handle\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_foreach_turn_server_n(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_foreach_turn_server(webrtc, NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_offer_p
+ * @since_tizen 6.5
+ * @description Creates an offer message\n
+ * - Create a webrtc handle\n
+ * - Add a media source\n
+ * - Start the webrtc handle\n
+ * - Create an offer message
+ */
+int utc_media_webrtc_create_offer_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ unsigned int id;
+ char *offer;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_CAMERA, &id);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_create_offer(webrtc, NULL, &offer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ free(offer);
+
+ webrtc_stop(webrtc);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_offer_n1
+ * @since_tizen 6.5
+ * @description Creates an offer message\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_create_offer_n1(void)
+{
+ int ret = webrtc_create_offer(NULL, NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_offer_n2
+ * @since_tizen 6.5
+ * @description Creates an offer message\n
+ * - Create a webrtc handle\n
+ * - Create an offer in IDLE state to get negative result
+ */
+int utc_media_webrtc_create_offer_n2(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ char *offer;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_create_offer(webrtc, NULL, &offer);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_p
+ * @since_tizen 6.5
+ * @description Creates an answer message\n
+ * - handle1 : Create a webrtc handle\n
+ * - handle1 : Add a media source\n
+ * - handle1 : Start the webrtc handle\n
+ * - handle1 : Create an offer message\n
+ * - handle2 : Create a webrtc handle\n
+ * - handle2 : Start the webrtc handle\n
+ * - handle2 : Set the remote description\n
+ * - handle2 : Create an answer message
+ */
+int utc_media_webrtc_create_answer_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ webrtc_h webrtc2;
+ unsigned int id;
+ char *offer;
+ char *answer;
+
+ /* handle 1: offerer */
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_SCREEN, &id);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_create_offer(webrtc, NULL, &offer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] offer[%s]", __FUNCTION__, __LINE__, offer);
+
+ /* handle 2: answerer */
+ ret = webrtc_create(&webrtc2);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc2, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc2, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_signaling_state_change_cb(webrtc2, __webrtc_signaling_state_change_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc2);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_set_remote_description(webrtc2, offer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_create_answer(webrtc2, NULL, &answer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] answer[%s]", __FUNCTION__, __LINE__, answer);
+
+ free(offer);
+ free(answer);
+
+#if 0 /* FIXME: blocking issue */
+ webrtc_stop(webrtc);
+ webrtc_destroy(webrtc);
+
+ webrtc_stop(webrtc2);
+ webrtc_destroy(webrtc2);
+#endif
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_n1
+ * @since_tizen 6.5
+ * @description Creates an answer message\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_create_answer_n1(void)
+{
+ int ret = webrtc_create_answer(NULL, NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_n2
+ * @since_tizen 6.5
+ * @description Creates an answer message\n
+ * - Create a webrtc handle\n
+ * - Create an answer in IDLE state to get negative result
+ */
+int utc_media_webrtc_create_answer_n2(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ char *offer;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_create_answer(webrtc, NULL, &offer);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_n3
+ * @since_tizen 6.5
+ * @description Creates an answer message\n
+ * - Create a webrtc handle\n
+ * - Start the webrtc handle\n
+ * - Create an answer without setting a remote description to get negative result
+ */
+int utc_media_webrtc_create_answer_n3(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ char *offer;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_create_answer(webrtc, NULL, &offer);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_local_description_p
+ * @since_tizen 6.5
+ * @description Creates an offer message\n
+ * - Create a webrtc handle\n
+ * - Add a media source\n
+ * - Start the webrtc handle\n
+ * - Create an offer message\n
+ * - Set the offer message as local description
+ */
+int utc_media_webrtc_set_local_description_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ unsigned int id;
+ char *offer;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_CAMERA, &id);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_create_offer(webrtc, NULL, &offer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_local_description(webrtc, offer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ free(offer);
+
+ webrtc_stop(webrtc);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_local_description_n
+ * @since_tizen 6.5
+ * @description Sets a local description\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_set_local_description_n(void)
+{
+ int ret = webrtc_set_local_description(NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_remote_description_p
+ * @since_tizen 6.5
+ * @description Creates an answer message\n
+ * - handle1 : Create a webrtc handle\n
+ * - handle1 : Add a media source\n
+ * - handle1 : Start the webrtc handle\n
+ * - handle1 : Create an offer message\n
+ * - handle2 : Create a webrtc handle\n
+ * - handle2 : Start the webrtc handle\n
+ * - handle2 : Set the remote description
+ */
+int utc_media_webrtc_set_remote_description_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ webrtc_h webrtc2;
+ unsigned int id;
+ char *offer;
+
+ /* handle 1: offerer */
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_MIC, &id);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_create_offer(webrtc, NULL, &offer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] offer[%s]", __FUNCTION__, __LINE__, offer);
+
+ /* handle 2: answerer */
+ ret = webrtc_create(&webrtc2);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc2, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc2, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc2);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_set_remote_description(webrtc2, offer);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ free(offer);
+
+ webrtc_stop(webrtc);
+ webrtc_destroy(webrtc);
+
+ webrtc_stop(webrtc2);
+ webrtc_destroy(webrtc2);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_set_remote_description_n
+ * @since_tizen 6.5
+ * @description Sets a remote description\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_set_remote_description_n(void)
+{
+ int ret = webrtc_set_remote_description(NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_add_ice_candidate_p
+ * @since_tizen 6.5
+ * @description Adds an ICE candidate\n
+ * - Create a webrtc handle\n
+ * - Set ICE candidate callback\n
+ * - Start the handle\n
+ * - Add an ICE candidate
+ */
+int utc_media_webrtc_add_ice_candidate_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_start(webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ ret = webrtc_add_ice_candidate(webrtc, TEST_ICE_CANDIDATE);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ webrtc_stop(webrtc);
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_add_ice_candidate_n1
+ * @since_tizen 6.5
+ * @description Adds an ICE candidate\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_add_ice_candidate_n1(void)
+{
+ int ret = webrtc_add_ice_candidate(NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_add_ice_candidate_n2
+ * @since_tizen 6.5
+ * @description Adds an ICE candidate\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_add_ice_candidate_n2(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_add_ice_candidate(webrtc, TEST_ICE_CANDIDATE);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ return 0;
+}
+
/**
* @testcase utc_media_webrtc_get_peer_connection_state_p
* @since_tizen 6.5