extern crate env_logger;
extern crate glob;
#[macro_use]
extern crate log;
extern crate vobsub;
use std::fs;
use std::io::prelude::*;
use std::path::Path;
#[test]
#[ignore]
fn private_corpus() {
let _ = env_logger::init();
let options = glob::MatchOptions {
case_sensitive: true,
require_literal_separator: true,
require_literal_leading_dot: true,
};
for entry in glob::glob_with("../private/**/*.sub", &options).unwrap() {
let entry = entry.unwrap();
process_file(&entry, false);
}
}
#[test]
fn error_corpus() {
let _ = env_logger::init();
let options = glob::MatchOptions {
case_sensitive: true,
require_literal_separator: true,
require_literal_leading_dot: true,
};
for entry in glob::glob_with("../fixtures/invalid/*", &options).unwrap() {
let entry = entry.unwrap();
process_file(&entry, true);
}
}
fn process_file(path: &Path, expect_err: bool) {
debug!("Processing {}", path.display());
let mut f = fs::File::open(path).unwrap();
let mut buffer = vec![];
f.read_to_end(&mut buffer).unwrap();
let count = vobsub::subtitles(&buffer)
.map(|s| {
assert_eq!(s.is_err(), expect_err);
})
.count();
debug!("Found {} subtitles", count);
}