summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-10-06 11:59:55 +0100
committerCarl Hetherington <cth@carlh.net>2014-10-06 11:59:55 +0100
commit082eb865bbae0ea4350b7dffbf43f1c21b6b4c82 (patch)
treea9302f49fe9db3ea5ff5065e3a5e5a9781903304
parentae10bb2a702ab08c497b940d43f0d6e85ae26970 (diff)
Copy another test over from DCP-o-matic.
-rw-r--r--src/reader.h4
-rw-r--r--src/subrip_reader.h4
-rw-r--r--test/subrip_reader_test.cc63
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 ();
+}