summaryrefslogtreecommitdiff
path: root/test/subrip_reader_test.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-10-06 11:51:32 +0100
committerCarl Hetherington <cth@carlh.net>2014-10-06 11:51:32 +0100
commitae10bb2a702ab08c497b940d43f0d6e85ae26970 (patch)
treef3dfcd5aeec554b9924e9967216b4bc0acbfe3aa /test/subrip_reader_test.cc
parent06f29a8090d5bff27ae2f5078a815a2111c28ad5 (diff)
Copy in a test from dcpomatic.
Diffstat (limited to 'test/subrip_reader_test.cc')
-rw-r--r--test/subrip_reader_test.cc57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/subrip_reader_test.cc b/test/subrip_reader_test.cc
index fc6a6db..e0ecc84 100644
--- a/test/subrip_reader_test.cc
+++ b/test/subrip_reader_test.cc
@@ -151,4 +151,61 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test)
BOOST_CHECK (k == l.blocks.end ());
}
+/* Test reading of another Subrip file */
+BOOST_AUTO_TEST_CASE (subrip_reader_test2)
+{
+ FILE* f = fopen ("test/data/test2.srt", "r");
+ sub::SubripReader reader (f);
+ fclose (f);
+ list<sub::Subtitle> subs = sub::collect (reader.subtitles ());
+
+ list<sub::Subtitle>::const_iterator i = subs.begin();
+
+ BOOST_CHECK (i != subs.end ());
+ BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 49, 200));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 52, 351));
+ BOOST_CHECK_EQUAL (i->lines.size(), 2);
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "This is a subtitle, and it goes ");
+ BOOST_CHECK_EQUAL (i->lines.back().blocks.front().text, "over two lines.");
+
+ ++i;
+ BOOST_CHECK (i != subs.end ());
+ BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 52, 440));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 54, 351));
+ BOOST_CHECK_EQUAL (i->lines.size(), 1);
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "We have emboldened this");
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().bold, true);
+
+ ++i;
+ BOOST_CHECK (i != subs.end ());
+ BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 54, 440));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 56, 590));
+ BOOST_CHECK_EQUAL (i->lines.size(), 1);
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "And italicised this.");
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().italic, true);
+
+ ++i;
+ BOOST_CHECK (i != subs.end ());
+ BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 56, 680));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 58, 955));
+ BOOST_CHECK_EQUAL (i->lines.size(), 1);
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "Shall I compare thee to a summers' day?");
+
+ ++i;
+ BOOST_CHECK (i != subs.end ());
+ BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 2, 0, 840));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 2, 3, 400));
+ BOOST_CHECK_EQUAL (i->lines.size(), 1);
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "Is this a dagger I see before me?");
+
+ ++i;
+ BOOST_CHECK (i != subs.end ());
+ BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 3, 54, 560));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 3, 56, 471));
+ BOOST_CHECK_EQUAL (i->lines.size(), 1);
+ BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "Hello world.");
+
+ ++i;
+ BOOST_CHECK (i == subs.end ());
+}