From 80160f0dd9dbd551e6466d7c664362c56500d249 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Wed, 23 Jun 2021 16:23:43 +0200 Subject: tests: Remove quvi dependency in tests Replace the quvi "videosite" script as used in tests by a mock script that mimicks the behaviour of quvi. This allows us to test the videosite code rather than scripts which we don't ship anyway. --- plparse/tests/parser.c | 16 +--------- plparse/tests/videosite-tester.sh | 63 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 15 deletions(-) create mode 100755 plparse/tests/videosite-tester.sh diff --git a/plparse/tests/parser.c b/plparse/tests/parser.c index 3c95973..b98ad1d 100644 --- a/plparse/tests/parser.c +++ b/plparse/tests/parser.c @@ -200,7 +200,6 @@ test_data_get_data (const char *uri, guint *len) return buffer; } -#ifdef HAVE_QUVI static void test_videosite (void) { @@ -209,7 +208,6 @@ test_videosite (void) g_test_message ("Testing data parsing \"%s\"...", uri); g_assert_true (totem_pl_parser_can_parse_from_uri (uri, TRUE)); } -#endif static void test_parsability (void) @@ -508,35 +506,28 @@ parser_test_get_playlist_field (const char *uri, static void test_image_link (void) { -#ifdef HAVE_QUVI char *uri; /* From http://www.101greatgoals.com/feed/ */ uri = get_relative_uri (TEST_SRCDIR "empty-feed.xml"); g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_URI), ==, NULL); g_free (uri); -#endif } static void test_no_url_podcast (void) { -#ifdef HAVE_QUVI char *uri; /* From http://feeds.guardian.co.uk/theguardian/football/rss */ uri = get_relative_uri (TEST_SRCDIR "no-url-podcast.xml"); g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_URI), ==, "http://www.guardian.co.uk/sport/video/2012/jul/26/london-2012-north-korea-flag-video"); g_free (uri); -#endif } -#ifdef HAVE_QUVI static void test_youtube_starttime (void) { -/* Those do not work with quvi */ -#if 0 const char *uri; /* old type of direct link */ @@ -550,9 +541,7 @@ test_youtube_starttime (void) /* new type of direct link */ uri = "http://www.youtube.com/watch?v=Fk2bUvrv-Uc&t=2m30s"; g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_STARTTIME), ==, "150"); -#endif } -#endif /* HAVE_QUVI */ static void test_itms_parsing (void) @@ -1279,7 +1268,6 @@ test_parsing_m3u_streaming (void) g_free (uri); } -#ifdef HAVE_QUVI static void test_parsing_rss_id (void) { @@ -1297,7 +1285,6 @@ test_parsing_rss_link (void) g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_URI), ==, "http://www.guardian.co.uk/technology/audio/2011/may/03/tech-weekly-art-love-bin-laden"); g_free (uri); } -#endif /* HAVE_QUVI */ static void test_parsing_not_asx_playlist (void) @@ -1795,6 +1782,7 @@ main (int argc, char *argv[]) /* If we've been given no URIs, run the static tests */ if (uris == NULL) { check_http (); + g_setenv ("TOTEM_PL_PARSER_VIDEOSITE_SCRIPT", TEST_SRCDIR "/videosite-tester.sh", TRUE); option_debug = TRUE; @@ -1840,12 +1828,10 @@ main (int argc, char *argv[]) g_test_add_func ("/parser/parsing/xml_mixed_cdata", test_parsing_xml_mixed_cdata); g_test_add_func ("/parser/parsing/m3u_streaming", test_parsing_m3u_streaming); g_test_add_func ("/parser/parsing/xml_cdata", test_parsing_xml_cdata); -#ifdef HAVE_QUVI g_test_add_func ("/parser/videosite", test_videosite); g_test_add_func ("/parser/parsing/rss_id", test_parsing_rss_id); g_test_add_func ("/parser/parsing/rss_link", test_parsing_rss_link); g_test_add_func ("/parser/parsing/youtube_starttime", test_youtube_starttime); -#endif /* HAVE_QUVI */ g_test_add_func ("/parser/parsing/not_asx_playlist", test_parsing_not_asx_playlist); g_test_add_func ("/parser/parsing/not_really_php", test_parsing_not_really_php); g_test_add_func ("/parser/parsing/not_really_php_but_html_instead", test_parsing_not_really_php_but_html_instead); diff --git a/plparse/tests/videosite-tester.sh b/plparse/tests/videosite-tester.sh new file mode 100755 index 0000000..c10fac1 --- /dev/null +++ b/plparse/tests/videosite-tester.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +# Options: +# -u, --url URL of the video site page +# -c, --check Check whether this URL is supported +# -d, --debug Turn on debug mode + +# test_videosite +if [ $1 = "--check" ] && [ $2 = "--url" ] && [ $3 = "http://www.youtube.com/watch?v=oMLCrzy9TEs" ]; then + echo -n "TRUE" + exit 0 +fi + +# test_no_url_podcast +if [ $1 = "--check" ] && [ $2 = "--url" ] && [ $3 = "http://www.guardian.co.uk/sport/video/2012/jul/26/london-2012-north-korea-flag-video" ]; then + echo -n "TRUE" + exit 0 +fi + +# test_youtube_starttime +if [ $1 = "--check" ] && [ $2 = "--url" ]; then + if [ $3 = "http://www.youtube.com/watch?v=Fk2bUvrv-Uc#t=2m30s" ] || + [ $3 = "http://www.youtube.com/watch?v=Fk2bUvrv-Uc&t=2m30s" ] || + [ $3 = "http://www.youtube.com/embed/Nc9xq-TVyHI?start=110" ]; then + echo -n "TRUE" + exit 0 + fi +fi + +if [ $1 = "--url" ]; then + if [ $2 = "http://www.youtube.com/watch?v=Fk2bUvrv-Uc#t=2m30s" ] || + [ $2 = "http://www.youtube.com/watch?v=Fk2bUvrv-Uc&t=2m30s" ]; then + cat << EOF +title=Детали дня 15 мая 2013 +id=Fk2bUvrv-Uc +moreinfo=https://www.youtube.com/watch?v=Fk2bUvrv-Uc +url=https://r4---sn-4gxx-hgnz.googlevideo.com/videoplayback?expire=1624480251&ei=m0XTYOy1MIf7xN8P8eGL-A8&ip=78.199.60.242&id=o-AHm5-Kr0vPm3aaUFOdJVR3a4a28rFE6PMp3m-UzA5O8l&itag=18&source=youtube&requiressl=yes&mh=JH&mm=31%2C29&mn=sn-4gxx-hgnz%2Csn-25ge7nzs&ms=au%2Crdu&mv=m&mvi=4&pcm2cms=yes&pl=24&initcwndbps=687500&vprv=1&mime=video%2Fmp4&ns=BS_4OZW99xYPjOn5hUrsTnsF&gir=yes&clen=41441520&ratebypass=yes&dur=593.757&lmt=1368698245994886&mt=1624458288&fvip=4&fexp=24001373%2C24007246&c=WEB&n=GCz7aGVUQRKUef7Y7&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRAIgMl2RdtX_oijbGgBoO1LMLTg25BHFaMa3geXUZ3X8TJ4CIFb3WpEyX17LFh4w3HyNkUThezAOO4EvcQ3lFlr8oWM8&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpcm2cms%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgTpoU6K-20qh5fpDnARiIdMOoEp1bjoDAD7m6YfNMFjwCICZNusZWy0anXfFRZLYi50iHKuY_94JCiGZarRj3DmSq +image-url=https://i.ytimg.com/vi/Fk2bUvrv-Uc/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAtxwMtc56DhhCiuIfaskTWi3An-A +duration=594000.0 +starttime=150 +EOF + exit 0 + fi +fi + +if [ $1 = "--url" ] && [ $2 = "http://www.youtube.com/embed/Nc9xq-TVyHI?start=110" ]; then + cat << EOF +title=Dancing Merengue Dog +id=Nc9xq-TVyHI +moreinfo=https://www.youtube.com/watch?v=Nc9xq-TVyHI +url=https://r1---sn-4gxx-hgnz.googlevideo.com/videoplayback?expire=1624480475&ei=e0bTYPCKF9fVxN8PpualuAQ&ip=78.199.60.242&id=o-ANN2xJr5y0bATbNQwj38NxybB9whllIXj1veBPdvQnMS&itag=18&source=youtube&requiressl=yes&mh=G8&mm=31%2C29&mn=sn-4gxx-hgnz%2Csn-25glenez&ms=au%2Crdu&mv=m&mvi=1&pl=24&initcwndbps=687500&vprv=1&mime=video%2Fmp4&ns=mjBmS5MHdz-VZYBb48anQo8F&gir=yes&clen=16852474&ratebypass=yes&dur=188.731&lmt=1428059415664773&mt=1624458529&fvip=1&fexp=24001373%2C24007246&c=WEB&n=Qc6zgOM92Rh10MSvR&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgENlVNj6YAwT_AiEf5P6ryxmmvI0VYCFWDsZl5Eb7_zsCIGQtqzxmcf0tt9JI69hnwVvDdiZ_DhcBG5mZcU4vreEB&sig=AOq0QJ8wRgIhAKldrkc_5cidkcIdrsrSnHtS5_XPhYOIG1FYi39RO2aYAiEAq7SZbtK9yjK-8dOp90Nc0UwOjQnRcKiuPck9q16UzRw= +image-url=https://i.ytimg.com/vi/Nc9xq-TVyHI/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDpYfSmD8FyLDFNdw7eOKuhzuiFuA +duration=189000.0 +starttime=110 +EOF + exit 0 +fi + +# test_parsing_rss_link +if [ $1 = "--check" ] && [ $2 = "--url" ] && [ $3 = "http://www.guardian.co.uk/technology/audio/2011/may/03/tech-weekly-art-love-bin-laden" ]; then + echo -n "TRUE" + exit 0 +fi -- cgit v1.2.1