tiny test for new types

pull/22/head
chris west 4 years ago
parent 81fcecb85d
commit 23c76e483b

@ -151,7 +151,7 @@ pub fn download_url(
}
}
}
Ok((filename.to_string(), bytes))
}
@ -341,97 +341,149 @@ mod tests {
"ssh://kiosk@bitreich.org",
"https://github.com/xvxx/phetch",
"telnet://bbs.impakt.net:6502/",
"gopher://some.url/9/file.mp4",
"gopher://some.url/;/file.mp4",
"mtv.com/s/best-of-britney-spears.mp3",
"gopher://microsoft.com:7070/x/developer/sitemap.xml",
"gopher://mtv.com/c/kriss-kross/tour-dates.ical",
"gopher://protonmail.com/M/mymail/inbox.eml",
];
let mut urls = urls.iter();
macro_rules! parse_next_url {
() => {
parse_url(urls.next().unwrap())
};
}
let url = parse_url(urls[0]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "gopher.club");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/phlogs/");
let url = parse_url(urls[1]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "sdf.org");
assert_eq!(url.port, "7777");
assert_eq!(url.sel, "/maps");
let url = parse_url(urls[2]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "gopher.floodgap.org");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "");
let url = parse_url(urls[3]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Text);
assert_eq!(url.host, "gopher.floodgap.com");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/gopher/relevance.txt");
let url = parse_url(urls[4]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Search);
assert_eq!(url.host, "gopherpedia.com");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/lookup?Gopher");
let url = parse_url(urls[5]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "dead:beef:1234:5678:9012:3456:feed:deed");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "");
let url = parse_url(urls[6]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "1234:2345:dead:4567:7890:1234:beef:1111");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/files");
let url = parse_url(urls[7]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "2001:cdba:0000:0000:0000:0000:3257:9121");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "");
let url = parse_url(urls[8]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "2001:cdba::3257:9652");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "");
let url = parse_url(urls[9]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "9999:aaaa::abab:baba:aaaa:9999");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "");
let url = parse_url(urls[10]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Error);
assert_eq!(url.host, "Unclosed ipv6 bracket");
assert_eq!(url.port, "");
assert_eq!(url.sel, "[2001:2099:dead:beef:0000");
let url = parse_url(urls[11]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Menu);
assert_eq!(url.host, "::1");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "");
let url = parse_url(urls[12]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::HTML);
assert_eq!(url.host, "");
assert_eq!(url.port, "");
assert_eq!(url.sel, "ssh://kiosk@bitreich.org");
let url = parse_url(urls[13]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::HTML);
assert_eq!(url.host, "");
assert_eq!(url.port, "");
assert_eq!(url.sel, "https://github.com/xvxx/phetch");
let url = parse_url(urls[14]);
let url = parse_next_url!();
assert_eq!(url.typ, Type::Telnet);
assert_eq!(url.host, "bbs.impakt.net");
assert_eq!(url.port, "6502");
assert_eq!(url.sel, "/");
let url = parse_next_url!();
assert_eq!(url.typ, Type::Binary);
assert_eq!(url.host, "some.url");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/file.mp4");
let url = parse_next_url!();
assert_eq!(url.typ, Type::Video);
assert_eq!(url.host, "some.url");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/file.mp4");
let url = parse_next_url!();
assert_eq!(url.typ, Type::Sound);
assert_eq!(url.host, "mtv.com");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/best-of-britney-spears.mp3");
let url = parse_next_url!();
assert_eq!(url.typ, Type::Xml);
assert_eq!(url.host, "microsoft.com");
assert_eq!(url.port, "7070");
assert_eq!(url.sel, "/developer/sitemap.xml");
let url = parse_next_url!();
assert_eq!(url.typ, Type::Calendar);
assert_eq!(url.host, "mtv.com");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/kriss-kross/tour-dates.ical");
let url = parse_next_url!();
assert_eq!(url.typ, Type::Mailbox);
assert_eq!(url.host, "protonmail.com");
assert_eq!(url.port, "70");
assert_eq!(url.sel, "/mymail/inbox.eml");
// make sure we got em all
assert_eq!(urls.next(), None);
}
#[test]

Loading…
Cancel
Save