webrtc_get_ice_transport_policy
webrtc_create_offer
webrtc_create_answer
+webrtc_create_offer_async
+webrtc_create_answer_async
webrtc_set_local_description
webrtc_set_remote_description
webrtc_add_ice_candidate
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_create_offer_async_p(void);
+extern int utc_media_webrtc_create_offer_async_n1(void);
+extern int utc_media_webrtc_create_offer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_p(void);
+extern int utc_media_webrtc_create_answer_async_n1(void);
+extern int utc_media_webrtc_create_answer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_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);
{"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_create_offer_async_p",utc_media_webrtc_create_offer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n1",utc_media_webrtc_create_offer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n2",utc_media_webrtc_create_offer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_p",utc_media_webrtc_create_answer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n1",utc_media_webrtc_create_answer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n2",utc_media_webrtc_create_answer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n3",utc_media_webrtc_create_answer_async_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},
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_create_offer_async_p(void);
+extern int utc_media_webrtc_create_offer_async_n1(void);
+extern int utc_media_webrtc_create_offer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_p(void);
+extern int utc_media_webrtc_create_answer_async_n1(void);
+extern int utc_media_webrtc_create_answer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_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);
{"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_create_offer_async_p",utc_media_webrtc_create_offer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n1",utc_media_webrtc_create_offer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n2",utc_media_webrtc_create_offer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_p",utc_media_webrtc_create_answer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n1",utc_media_webrtc_create_answer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n2",utc_media_webrtc_create_answer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n3",utc_media_webrtc_create_answer_async_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},
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_create_offer_async_p(void);
+extern int utc_media_webrtc_create_offer_async_n1(void);
+extern int utc_media_webrtc_create_offer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_p(void);
+extern int utc_media_webrtc_create_answer_async_n1(void);
+extern int utc_media_webrtc_create_answer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_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);
{"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_create_offer_async_p",utc_media_webrtc_create_offer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n1",utc_media_webrtc_create_offer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n2",utc_media_webrtc_create_offer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_p",utc_media_webrtc_create_answer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n1",utc_media_webrtc_create_answer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n2",utc_media_webrtc_create_answer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n3",utc_media_webrtc_create_answer_async_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},
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_create_offer_async_p(void);
+extern int utc_media_webrtc_create_offer_async_n1(void);
+extern int utc_media_webrtc_create_offer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_p(void);
+extern int utc_media_webrtc_create_answer_async_n1(void);
+extern int utc_media_webrtc_create_answer_async_n2(void);
+extern int utc_media_webrtc_create_answer_async_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);
{"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_create_offer_async_p",utc_media_webrtc_create_offer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n1",utc_media_webrtc_create_offer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_offer_async_n2",utc_media_webrtc_create_offer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_p",utc_media_webrtc_create_answer_async_p,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n1",utc_media_webrtc_create_answer_async_n1,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n2",utc_media_webrtc_create_answer_async_n2,NULL,NULL},
+ {"utc_media_webrtc_create_answer_async_n3",utc_media_webrtc_create_answer_async_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},
return true;
}
+static void __webrtc_session_description_created_cb(webrtc_h webrtc, const char *description, void *user_data)
+{
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s:%d] description[%s]", __FUNCTION__, __LINE__, description);
+
+ __quit_mainloop();
+}
+
/**
* @function utc_media_webrtc_startup_create_win
* @description Should be called before a test using a window
ret = webrtc_create(&webrtc);
assert_eq(ret, WEBRTC_ERROR_NONE);
- ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_SCREEN, &id);
+ ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_VIDEOTEST, &id);
assert_eq(ret, WEBRTC_ERROR_NONE);
ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL);
return 0;
}
+/**
+ * @testcase utc_media_webrtc_create_offer_async_p
+ * @since_tizen 6.5
+ * @description Creates an offer message asynchronously\n
+ * - Create a webrtc handle\n
+ * - Add a media source\n
+ * - Start the webrtc handle\n
+ * - Create an offer message asynchronously
+ */
+int utc_media_webrtc_create_offer_async_p(void)
+{
+ int ret;
+ webrtc_h webrtc;
+ unsigned int id;
+
+ 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_async(webrtc, NULL, __webrtc_session_description_created_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ webrtc_stop(webrtc);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_offer_async_n1
+ * @since_tizen 6.5
+ * @description Creates an offer message asynchronously\n
+ * - Create a webrtc handle\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_create_offer_async_n1(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_create_offer_async(webrtc, NULL, NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_offer_async_n2
+ * @since_tizen 6.5
+ * @description Creates an offer message asynchronously\n
+ * - Create a webrtc handle\n
+ * - Create an offer in IDLE state to get negative result
+ */
+int utc_media_webrtc_create_offer_async_n2(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_create_offer_async(webrtc, NULL, __webrtc_session_description_created_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_async_p
+ * @since_tizen 6.5
+ * @description Creates an answer message asynchronously\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 asynchronously
+ */
+int utc_media_webrtc_create_answer_async_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_VIDEOTEST, &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_async(webrtc2, NULL, __webrtc_session_description_created_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ __run_mainloop();
+
+ free(offer);
+
+ webrtc_stop(webrtc);
+ webrtc_destroy(webrtc);
+
+ webrtc_stop(webrtc2);
+ webrtc_destroy(webrtc2);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_async_n1
+ * @since_tizen 6.5
+ * @description Creates an answer message asynchronously\n
+ * - Create a webrtc handle\n
+ * - Pass invalid parameter to get negative result
+ */
+int utc_media_webrtc_create_answer_async_n1(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_create_answer_async(webrtc, NULL, NULL, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_async_n2
+ * @since_tizen 6.5
+ * @description Creates an answer message asynchronously\n
+ * - Create a webrtc handle\n
+ * - Create an answer in IDLE state to get negative result
+ */
+int utc_media_webrtc_create_answer_async_n2(void)
+{
+ int ret;
+ webrtc_h webrtc;
+
+ ret = webrtc_create(&webrtc);
+ assert_eq(ret, WEBRTC_ERROR_NONE);
+
+ ret = webrtc_create_answer_async(webrtc, NULL, __webrtc_session_description_created_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_media_webrtc_create_answer_async_n3
+ * @since_tizen 6.5
+ * @description Creates an answer message asynchronously\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_async_n3(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_create_answer_async(webrtc, NULL, __webrtc_session_description_created_cb, NULL);
+ assert_eq(ret, WEBRTC_ERROR_INVALID_STATE);
+
+ webrtc_destroy(webrtc);
+
+ return 0;
+}
+
/**
* @testcase utc_media_webrtc_set_local_description_p
* @since_tizen 6.5