diff --git a/libavformat/tests/url.c b/libavformat/tests/url.c index 11ed5bb0b7..d99876f02c 100644 --- a/libavformat/tests/url.c +++ b/libavformat/tests/url.c @@ -19,6 +19,7 @@ */ #include "libavformat/url.h" +#include "libavformat/avformat.h" static void test(const char *base, const char *rel) { @@ -36,6 +37,18 @@ static void test(const char *base, const char *rel) } } +static void test2(const char *url) +{ + char proto[64]; + char auth[256]; + char host[256]; + char path[256]; + int port=-1; + + av_url_split(proto, sizeof(proto), auth, sizeof(auth), host, sizeof(host), &port, path, sizeof(path), url); + printf("%-60s => %-15s %-15s %-15s %5d %s\n", url, proto, auth, host, port, path); +} + int main(void) { printf("Testing ff_make_absolute_url:\n"); @@ -52,5 +65,16 @@ int main(void) test("http://server/foo/bar?param=value/with/slashes", "/baz"); test("http://server/foo/bar?param&otherparam", "?someparam"); test("http://server/foo/bar", "//other/url"); + + printf("\nTesting av_url_split:\n"); + test2("/foo/bar"); + test2("http://server/foo/"); + test2("http://example.com/foo/bar"); + test2("http://user:pass@localhost:8080/foo/bar/123"); + test2("http://server/foo/bar?param=value/with/slashes"); + test2("https://1l-lh.a.net/i/1LIVE_HDS@179577/master.m3u8"); + test2("ftp://u:p%2B%2F2@ftp.pbt.com/ExportHD.mpg"); + test2("https://key.dns.com?key_id=2&model_id=12345&&access_key="); + return 0; } diff --git a/tests/ref/fate/url b/tests/ref/fate/url index b5deba88ae..8212c1131b 100644 --- a/tests/ref/fate/url +++ b/tests/ref/fate/url @@ -12,3 +12,13 @@ Testing ff_make_absolute_url: http://server/foo/bar?param=value/with/slashes /baz => http://server/baz http://server/foo/bar?param&otherparam ?someparam => http://server/foo/bar?someparam http://server/foo/bar //other/url => http://other/url + +Testing av_url_split: +/foo/bar => -1 /foo/bar +http://server/foo/ => http server -1 /foo/ +http://example.com/foo/bar => http example.com -1 /foo/bar +http://user:pass@localhost:8080/foo/bar/123 => http user:pass localhost 8080 /foo/bar/123 +http://server/foo/bar?param=value/with/slashes => http server -1 /foo/bar?param=value/with/slashes +https://1l-lh.a.net/i/1LIVE_HDS@179577/master.m3u8 => https 1l-lh.a.net -1 /i/1LIVE_HDS@179577/master.m3u8 +ftp://u:p%2B%2F2@ftp.pbt.com/ExportHD.mpg => ftp u:p%2B%2F2 ftp.pbt.com -1 /ExportHD.mpg +https://key.dns.com?key_id=2&model_id=12345&&access_key= => https key.dns.com -1 ?key_id=2&model_id=12345&&access_key=