diff --git a/subprojects/gst-plugins-bad/tests/check/elements/dash_mpd.c b/subprojects/gst-plugins-bad/tests/check/elements/dash_mpd.c index c7adab8f34..1d347b0a54 100644 --- a/subprojects/gst-plugins-bad/tests/check/elements/dash_mpd.c +++ b/subprojects/gst-plugins-bad/tests/check/elements/dash_mpd.c @@ -4230,6 +4230,57 @@ GST_START_TEST (dash_mpdparser_get_baseURL8) GST_END_TEST; +/* + * Test getting baseURL with query + * + */ +GST_START_TEST (dash_mpdparser_get_baseURL_with_query) +{ + gboolean ret; + gchar *uri; + gint64 range_start, range_end; + const gchar *xml = + "" + "" + " " + " " + " " + " http://example.com/test?param1=value1&param2=value2" + " " + " " + " " + " "; + + GstMPDClient *mpdclient = setup_mpd_client (xml); + + /* get segment url and range from segment Initialization */ + ret = + gst_mpd_client_get_next_header (mpdclient, &uri, 0, &range_start, + &range_end); + assert_equals_int (ret, TRUE); + assert_equals_string (uri, + "http://example.com/test?param1=value1¶m2=value2"); + assert_equals_int64 (range_start, 0); + assert_equals_int64 (range_end, 100); + g_free (uri); + + /* get segment url and range from segment indexRange */ + ret = + gst_mpd_client_get_next_header_index (mpdclient, &uri, 0, &range_start, + &range_end); + assert_equals_int (ret, TRUE); + assert_equals_string (uri, + "http://example.com/test?param1=value1¶m2=value2"); + assert_equals_int64 (range_start, 100); + assert_equals_int64 (range_end, 200); + g_free (uri); + + gst_mpd_client_free (mpdclient); +} + +GST_END_TEST; + /* * Test getting mediaPresentationDuration * @@ -6631,6 +6682,7 @@ dash_suite (void) tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL6); tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL7); tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL8); + tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL_with_query); tcase_add_test (tc_complexMPD, dash_mpdparser_get_mediaPresentationDuration); tcase_add_test (tc_complexMPD, dash_mpdparser_get_streamPresentationOffset); tcase_add_test (tc_complexMPD, dash_mpdparser_segments); diff --git a/subprojects/gst-plugins-good/tests/check/elements/dash_mpd.c b/subprojects/gst-plugins-good/tests/check/elements/dash_mpd.c index d45ee7dedc..bda2787df9 100644 --- a/subprojects/gst-plugins-good/tests/check/elements/dash_mpd.c +++ b/subprojects/gst-plugins-good/tests/check/elements/dash_mpd.c @@ -4108,6 +4108,57 @@ GST_START_TEST (dash_mpdparser_get_baseURL8) GST_END_TEST; +/* + * Test getting baseURL with query + * + */ +GST_START_TEST (dash_mpdparser_get_baseURL_with_query) +{ + gboolean ret; + gchar *uri; + gint64 range_start, range_end; + const gchar *xml = + "" + "" + " " + " " + " " + " http://example.com/test?param1=value1&param2=value2" + " " + " " + " " + " "; + + GstMPDClient2 *mpdclient = setup_mpd_client (xml); + + /* get segment url and range from segment Initialization */ + ret = + gst_mpd_client2_get_next_header (mpdclient, &uri, 0, &range_start, + &range_end); + assert_equals_int (ret, TRUE); + assert_equals_string (uri, + "http://example.com/test?param1=value1¶m2=value2"); + assert_equals_int64 (range_start, 0); + assert_equals_int64 (range_end, 100); + g_free (uri); + + /* get segment url and range from segment indexRange */ + ret = + gst_mpd_client2_get_next_header_index (mpdclient, &uri, 0, &range_start, + &range_end); + assert_equals_int (ret, TRUE); + assert_equals_string (uri, + "http://example.com/test?param1=value1¶m2=value2"); + assert_equals_int64 (range_start, 100); + assert_equals_int64 (range_end, 200); + g_free (uri); + + gst_mpd_client2_free (mpdclient); +} + +GST_END_TEST; + /* * Test getting mediaPresentationDuration * @@ -6425,6 +6476,7 @@ dash_suite (void) tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL6); tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL7); tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL8); + tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL_with_query); tcase_add_test (tc_complexMPD, dash_mpdparser_get_mediaPresentationDuration); tcase_add_test (tc_complexMPD, dash_mpdparser_get_streamPresentationOffset); tcase_add_test (tc_complexMPD, dash_mpdparser_segments);