From 082eb865bbae0ea4350b7dffbf43f1c21b6b4c82 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 6 Oct 2014 11:59:55 +0100 Subject: Copy another test over from DCP-o-matic. --- src/reader.h | 4 +++ src/subrip_reader.h | 4 +++ test/subrip_reader_test.cc | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/src/reader.h b/src/reader.h index 989ad58..235fa81 100644 --- a/src/reader.h +++ b/src/reader.h @@ -25,6 +25,8 @@ #include #include +struct subrip_reader_convert_line_test; + namespace sub { /** @class Reader @@ -42,6 +44,8 @@ public: } protected: + friend struct ::subrip_reader_convert_line_test; + void warn (std::string) const; std::list _subs; diff --git a/src/subrip_reader.h b/src/subrip_reader.h index 2c69971..8824347 100644 --- a/src/subrip_reader.h +++ b/src/subrip_reader.h @@ -28,6 +28,10 @@ public: SubripReader (FILE* f); private: + /* For tests */ + friend struct ::subrip_reader_convert_line_test; + SubripReader () {} + TimePair convert_time (std::string t); void convert_line (std::string t, int line_number, TimePair from, TimePair to); void maybe_content (RawSubtitle& p); diff --git a/test/subrip_reader_test.cc b/test/subrip_reader_test.cc index e0ecc84..f294e55 100644 --- a/test/subrip_reader_test.cc +++ b/test/subrip_reader_test.cc @@ -209,3 +209,66 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test2) BOOST_CHECK (i == subs.end ()); } +/** Test SubripReader::convert_line */ +BOOST_AUTO_TEST_CASE (subrip_reader_convert_line_test) +{ + sub::SubripReader r; + + r.convert_line ("Hello world", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + r._subs.clear (); + + r.convert_line ("Hello world", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + BOOST_CHECK_EQUAL (r._subs.front().bold, true); + r._subs.clear (); + + r.convert_line ("Hello world", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + BOOST_CHECK_EQUAL (r._subs.front().italic, true); + r._subs.clear (); + + r.convert_line ("Hello world", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + BOOST_CHECK_EQUAL (r._subs.front().underline, true); + r._subs.clear (); + + r.convert_line ("{b}Hello world{/b}", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + BOOST_CHECK_EQUAL (r._subs.front().bold, true); + r._subs.clear (); + + r.convert_line ("{i}Hello world{/i}", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + BOOST_CHECK_EQUAL (r._subs.front().italic, true); + r._subs.clear (); + + r.convert_line ("{u}Hello world{/u}", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + BOOST_CHECK_EQUAL (r._subs.front().underline, true); + r._subs.clear (); + + r.convert_line ("This is nesting of subtitles", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 3); + list::iterator i = r._subs.begin (); + BOOST_CHECK_EQUAL (i->text, "This is "); + BOOST_CHECK_EQUAL (i->bold, true); + BOOST_CHECK_EQUAL (i->italic, false); + ++i; + BOOST_CHECK_EQUAL (i->text, "nesting"); + BOOST_CHECK_EQUAL (i->bold, true); + BOOST_CHECK_EQUAL (i->italic, true); + ++i; + BOOST_CHECK_EQUAL (i->text, " of subtitles"); + BOOST_CHECK_EQUAL (i->bold, true); + BOOST_CHECK_EQUAL (i->italic, false); + ++i; + r._subs.clear (); +} -- cgit v1.2.3