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¶m2=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¶m2=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);