mirror of
https://github.com/sile/hls_m3u8.git
synced 2024-11-22 07:10:59 +00:00
slight changes to tests
This commit is contained in:
parent
b2fb58559c
commit
02d363daa1
1 changed files with 282 additions and 283 deletions
|
@ -443,294 +443,293 @@ mod test {
|
|||
use super::*;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
#[test]
|
||||
fn test_display_and_parse() {
|
||||
macro_rules! generate_tests {
|
||||
( $( { $media:expr, $string:expr } ),* $(,)* ) => {
|
||||
macro_rules! generate_tests {
|
||||
( $( { $struct:expr, $str:expr } ),+ $(,)* ) => {
|
||||
#[test]
|
||||
fn test_display() {
|
||||
$(
|
||||
assert_eq!(
|
||||
$media.to_string(),
|
||||
$string.to_string()
|
||||
);
|
||||
assert_eq!($struct.to_string(), $str.to_string());
|
||||
)+
|
||||
}
|
||||
|
||||
assert_eq!(
|
||||
$media,
|
||||
$string.parse::<ExtXMedia>().unwrap(),
|
||||
);
|
||||
)*
|
||||
#[test]
|
||||
fn test_parser() {
|
||||
$(
|
||||
assert_eq!($struct, $str.parse().unwrap());
|
||||
)+
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
generate_tests! {
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio")
|
||||
.language("eng")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.uri("eng/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"eng/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio\",",
|
||||
"LANGUAGE=\"eng\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.uri("fre/prog_index.m3u8")
|
||||
.group_id("audio")
|
||||
.language("fre")
|
||||
.name("Français")
|
||||
.is_default(false)
|
||||
.is_autoselect(true)
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"fre/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio\",",
|
||||
"LANGUAGE=\"fre\",",
|
||||
"NAME=\"Français\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio")
|
||||
.language("sp")
|
||||
.name("Espanol")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("sp/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"sp/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio\",",
|
||||
"LANGUAGE=\"sp\",",
|
||||
"NAME=\"Espanol\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-lo")
|
||||
.language("eng")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.uri("englo/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"englo/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-lo\",",
|
||||
"LANGUAGE=\"eng\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-lo")
|
||||
.language("fre")
|
||||
.name("Français")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("frelo/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"frelo/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-lo\",",
|
||||
"LANGUAGE=\"fre\",",
|
||||
"NAME=\"Français\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-lo")
|
||||
.language("es")
|
||||
.name("Espanol")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("splo/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"splo/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-lo\",",
|
||||
"LANGUAGE=\"es\",",
|
||||
"NAME=\"Espanol\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-hi")
|
||||
.language("eng")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.uri("eng/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"eng/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-hi\",",
|
||||
"LANGUAGE=\"eng\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-hi")
|
||||
.language("fre")
|
||||
.name("Français")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("fre/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"fre/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-hi\",",
|
||||
"LANGUAGE=\"fre\",",
|
||||
"NAME=\"Français\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-hi")
|
||||
.language("es")
|
||||
.name("Espanol")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("sp/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"sp/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-hi\",",
|
||||
"LANGUAGE=\"es\",",
|
||||
"NAME=\"Espanol\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-aacl-312")
|
||||
.language("en")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.channels(Channels::new(2))
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"GROUP-ID=\"audio-aacl-312\",",
|
||||
"LANGUAGE=\"en\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES,",
|
||||
"CHANNELS=\"2\""
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Subtitles)
|
||||
.uri("french/ed.ttml")
|
||||
.group_id("subs")
|
||||
.language("fra")
|
||||
.assoc_language("fra")
|
||||
.name("French")
|
||||
.is_autoselect(true)
|
||||
.is_forced(true)
|
||||
.characteristics("public.accessibility.transcribes-spoken\
|
||||
-dialog,public.accessibility.describes-music-and-sound")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=SUBTITLES,",
|
||||
"URI=\"french/ed.ttml\",",
|
||||
"GROUP-ID=\"subs\",",
|
||||
"LANGUAGE=\"fra\",",
|
||||
"ASSOC-LANGUAGE=\"fra\",",
|
||||
"NAME=\"French\",",
|
||||
"AUTOSELECT=YES,",
|
||||
"FORCED=YES,",
|
||||
"CHARACTERISTICS=\"",
|
||||
"public.accessibility.transcribes-spoken-dialog,",
|
||||
"public.accessibility.describes-music-and-sound",
|
||||
"\""
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::ClosedCaptions)
|
||||
.group_id("cc")
|
||||
.language("sp")
|
||||
.name("CC2")
|
||||
.instream_id(InStreamId::Cc2)
|
||||
.is_autoselect(true)
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=CLOSED-CAPTIONS,",
|
||||
"GROUP-ID=\"cc\",",
|
||||
"LANGUAGE=\"sp\",",
|
||||
"NAME=\"CC2\",",
|
||||
"AUTOSELECT=YES,",
|
||||
"INSTREAM-ID=\"CC2\""
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::new(MediaType::Audio, "foo", "bar"),
|
||||
"#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=\"foo\",NAME=\"bar\""
|
||||
},
|
||||
};
|
||||
generate_tests! {
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio")
|
||||
.language("eng")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.uri("eng/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"eng/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio\",",
|
||||
"LANGUAGE=\"eng\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.uri("fre/prog_index.m3u8")
|
||||
.group_id("audio")
|
||||
.language("fre")
|
||||
.name("Français")
|
||||
.is_default(false)
|
||||
.is_autoselect(true)
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"fre/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio\",",
|
||||
"LANGUAGE=\"fre\",",
|
||||
"NAME=\"Français\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio")
|
||||
.language("sp")
|
||||
.name("Espanol")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("sp/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"sp/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio\",",
|
||||
"LANGUAGE=\"sp\",",
|
||||
"NAME=\"Espanol\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-lo")
|
||||
.language("eng")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.uri("englo/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"englo/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-lo\",",
|
||||
"LANGUAGE=\"eng\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-lo")
|
||||
.language("fre")
|
||||
.name("Français")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("frelo/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"frelo/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-lo\",",
|
||||
"LANGUAGE=\"fre\",",
|
||||
"NAME=\"Français\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-lo")
|
||||
.language("es")
|
||||
.name("Espanol")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("splo/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"splo/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-lo\",",
|
||||
"LANGUAGE=\"es\",",
|
||||
"NAME=\"Espanol\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-hi")
|
||||
.language("eng")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.uri("eng/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"eng/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-hi\",",
|
||||
"LANGUAGE=\"eng\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-hi")
|
||||
.language("fre")
|
||||
.name("Français")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("fre/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"fre/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-hi\",",
|
||||
"LANGUAGE=\"fre\",",
|
||||
"NAME=\"Français\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-hi")
|
||||
.language("es")
|
||||
.name("Espanol")
|
||||
.is_autoselect(true)
|
||||
.is_default(false)
|
||||
.uri("sp/prog_index.m3u8")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"URI=\"sp/prog_index.m3u8\",",
|
||||
"GROUP-ID=\"audio-hi\",",
|
||||
"LANGUAGE=\"es\",",
|
||||
"NAME=\"Espanol\",",
|
||||
"AUTOSELECT=YES"
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Audio)
|
||||
.group_id("audio-aacl-312")
|
||||
.language("en")
|
||||
.name("English")
|
||||
.is_autoselect(true)
|
||||
.is_default(true)
|
||||
.channels(Channels::new(2))
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=AUDIO,",
|
||||
"GROUP-ID=\"audio-aacl-312\",",
|
||||
"LANGUAGE=\"en\",",
|
||||
"NAME=\"English\",",
|
||||
"DEFAULT=YES,",
|
||||
"AUTOSELECT=YES,",
|
||||
"CHANNELS=\"2\""
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::Subtitles)
|
||||
.uri("french/ed.ttml")
|
||||
.group_id("subs")
|
||||
.language("fra")
|
||||
.assoc_language("fra")
|
||||
.name("French")
|
||||
.is_autoselect(true)
|
||||
.is_forced(true)
|
||||
.characteristics("public.accessibility.transcribes-spoken\
|
||||
-dialog,public.accessibility.describes-music-and-sound")
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=SUBTITLES,",
|
||||
"URI=\"french/ed.ttml\",",
|
||||
"GROUP-ID=\"subs\",",
|
||||
"LANGUAGE=\"fra\",",
|
||||
"ASSOC-LANGUAGE=\"fra\",",
|
||||
"NAME=\"French\",",
|
||||
"AUTOSELECT=YES,",
|
||||
"FORCED=YES,",
|
||||
"CHARACTERISTICS=\"",
|
||||
"public.accessibility.transcribes-spoken-dialog,",
|
||||
"public.accessibility.describes-music-and-sound",
|
||||
"\""
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::builder()
|
||||
.media_type(MediaType::ClosedCaptions)
|
||||
.group_id("cc")
|
||||
.language("sp")
|
||||
.name("CC2")
|
||||
.instream_id(InStreamId::Cc2)
|
||||
.is_autoselect(true)
|
||||
.build()
|
||||
.unwrap(),
|
||||
concat!(
|
||||
"#EXT-X-MEDIA:",
|
||||
"TYPE=CLOSED-CAPTIONS,",
|
||||
"GROUP-ID=\"cc\",",
|
||||
"LANGUAGE=\"sp\",",
|
||||
"NAME=\"CC2\",",
|
||||
"AUTOSELECT=YES,",
|
||||
"INSTREAM-ID=\"CC2\""
|
||||
)
|
||||
},
|
||||
{
|
||||
ExtXMedia::new(MediaType::Audio, "foo", "bar"),
|
||||
"#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=\"foo\",NAME=\"bar\""
|
||||
},
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Reference in a new issue