diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-10-03 19:40:11 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-10-03 19:40:11 +0100 |
| commit | 6b4fdbdabeb7b6010b5d558fb231e5d4e69487fc (patch) | |
| tree | 8386e0e13f1d2b81c1a2a528365781e6c8e32e2a | |
| parent | c6c082c4a8016f85ba4207f4b8ccee1d5770e4a4 (diff) | |
Add another .srt test; remove checking of .srt subtitle indices as the strict sequence (1, 2, 3...) does not appear to be strictly adhered to.
| -rw-r--r-- | src/lib/subrip.cc | 23 | ||||
| -rw-r--r-- | test/subrip_test.cc | 17 |
2 files changed, 17 insertions, 23 deletions
diff --git a/src/lib/subrip.cc b/src/lib/subrip.cc index 11ad3302d..6c9cef916 100644 --- a/src/lib/subrip.cc +++ b/src/lib/subrip.cc @@ -49,20 +49,19 @@ SubRip::SubRip (shared_ptr<const SubRipContent> content) } state = COUNTER; char buffer[256]; - int next_count = 1; boost::optional<SubRipSubtitle> current; list<string> lines; - + while (!feof (f)) { fgets (buffer, sizeof (buffer), f); if (feof (f)) { break; } - + string line (buffer); trim_right_if (line, boost::is_any_of ("\n\r")); - + switch (state) { case COUNTER: { @@ -70,21 +69,9 @@ SubRip::SubRip (shared_ptr<const SubRipContent> content) /* a blank line at the start is ok */ break; } - - int x = 0; - try { - x = lexical_cast<int> (line); - } catch (...) { - } - - if (x == next_count) { - state = METADATA; - ++next_count; - current = SubRipSubtitle (); - } else { - throw SubRipError (line, _("a subtitle count"), content->path (0)); - } + state = METADATA; + current = SubRipSubtitle (); } break; case METADATA: diff --git a/test/subrip_test.cc b/test/subrip_test.cc index 84ad7f25d..0827005c1 100644 --- a/test/subrip_test.cc +++ b/test/subrip_test.cc @@ -202,11 +202,18 @@ BOOST_AUTO_TEST_CASE (subrip_render_test) check_file ("build/test/subrip_render_test.png", "test/data/subrip_render_test.png"); } -/** Test of reading a typical .srt */ -BOOST_AUTO_TEST_CASE (subrip_read_test) +static void +test (boost::filesystem::path p) { - shared_ptr<Film> film = new_test_film ("subrip_read_test"); - boost::filesystem::path p = private_data / "sintel_en.srt"; - shared_ptr<SubRipContent> s (new SubRipContent (film, p)); + shared_ptr<Film> film = new_test_film ("subrip_read_test_" + p.string ()); + boost::filesystem::path t = private_data / p; + shared_ptr<SubRipContent> s (new SubRipContent (film, t)); s->examine (shared_ptr<Job> ()); } + +/** Test of reading some typical .srt files */ +BOOST_AUTO_TEST_CASE (subrip_read_test) +{ + test ("sintel_en.srt"); + test ("Fight.Club.1999.720p.BRRip.x264-x0r.srt"); +} |
