diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-10-06 11:59:55 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-10-06 11:59:55 +0100 |
| commit | 082eb865bbae0ea4350b7dffbf43f1c21b6b4c82 (patch) | |
| tree | a9302f49fe9db3ea5ff5065e3a5e5a9781903304 | |
| parent | ae10bb2a702ab08c497b940d43f0d6e85ae26970 (diff) | |
Copy another test over from DCP-o-matic.
| -rw-r--r-- | src/reader.h | 4 | ||||
| -rw-r--r-- | src/subrip_reader.h | 4 | ||||
| -rw-r--r-- | test/subrip_reader_test.cc | 63 |
3 files changed, 71 insertions, 0 deletions
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 <map> #include <string> +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<RawSubtitle> _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 ("<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 ("{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 ("<b>This is <i>nesting</i> of subtitles</b>", 0, sub::TimePair (), sub::TimePair ()); + BOOST_CHECK_EQUAL (r._subs.size(), 3); + list<sub::RawSubtitle>::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 (); +} |
