diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-02-14 00:16:45 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-02-14 00:25:35 +0100 |
| commit | 013f6aab443f5b7857871b6f0b6b41f7562bc870 (patch) | |
| tree | fc2187fb26c90b7ef6911c87b0b31c58c035cd77 /test/subrip_reader_test.cc | |
| parent | 257f325258866b9241fea68e5aae60adcd679701 (diff) | |
Support SSA tags in SRT files (DoM #938).
Diffstat (limited to 'test/subrip_reader_test.cc')
| -rw-r--r-- | test/subrip_reader_test.cc | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/test/subrip_reader_test.cc b/test/subrip_reader_test.cc index affdd75..87f7b51 100644 --- a/test/subrip_reader_test.cc +++ b/test/subrip_reader_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net> + Copyright (C) 2014-2020 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -61,6 +61,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK_EQUAL (b.bold, false); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK_EQUAL (b.underline, false); + BOOST_REQUIRE (j->vertical_position.line); BOOST_CHECK_EQUAL (j->vertical_position.line.get(), 0); BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP_OF_SUBTITLE); ++j; @@ -75,6 +76,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK_EQUAL (b.bold, false); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK_EQUAL (b.underline, false); + BOOST_REQUIRE (j->vertical_position.line); BOOST_CHECK_EQUAL (j->vertical_position.line.get(), 1); BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP_OF_SUBTITLE); ++i; @@ -563,3 +565,59 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test5) BOOST_CHECK_CLOSE (r._subs.front().colour.g, 2.0 / 255, 0.1); BOOST_CHECK_CLOSE (r._subs.front().colour.b, 3.0 / 255, 0.1); } + +/** Test alignment */ +BOOST_AUTO_TEST_CASE (subrip_reader_test6) +{ + sub::RawSubtitle rs; + rs.vertical_position.line = 0; + rs.vertical_position.reference = sub::TOP_OF_SUBTITLE; + sub::SubripReader r; + r.convert_line ("Hello world", rs); + BOOST_REQUIRE_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); + BOOST_REQUIRE (r._subs.front().vertical_position.line); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.line.get(), 0); + BOOST_REQUIRE (r._subs.front().vertical_position.reference); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.reference.get(), sub::TOP_OF_SUBTITLE); + r._subs.clear (); + + rs = sub::RawSubtitle (); + rs.vertical_position.line = 0; + r.convert_line ("{\\an1}Hello", rs); + BOOST_REQUIRE_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "Hello"); + BOOST_REQUIRE (r._subs.front().vertical_position.line); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.line.get(), 0); + BOOST_REQUIRE (r._subs.front().vertical_position.reference); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.reference.get(), sub::BOTTOM_OF_SCREEN); + BOOST_CHECK_EQUAL (r._subs.front().horizontal_position.proportional, 0); + BOOST_CHECK_EQUAL (r._subs.front().horizontal_position.reference, sub::LEFT_OF_SCREEN); + r._subs.clear (); + + rs = sub::RawSubtitle (); + rs.vertical_position.line = 0; + r.convert_line ("{\\an2}to", rs); + BOOST_REQUIRE_EQUAL (r._subs.size(), 1); + BOOST_CHECK_EQUAL (r._subs.front().text, "to"); + BOOST_REQUIRE (r._subs.front().vertical_position.line); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.line.get(), 0); + BOOST_REQUIRE (r._subs.front().vertical_position.reference); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.reference.get(), sub::BOTTOM_OF_SCREEN); + BOOST_CHECK_EQUAL (r._subs.front().horizontal_position.proportional, 0); + BOOST_CHECK_EQUAL (r._subs.front().horizontal_position.reference, sub::HORIZONTAL_CENTRE_OF_SCREEN); + r._subs.clear (); + + rs = sub::RawSubtitle (); + rs.vertical_position.line = 0; + r.convert_line ("{\\an3}you", rs); + BOOST_CHECK_EQUAL (r._subs.front().text, "you"); + BOOST_REQUIRE (r._subs.front().vertical_position.line); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.line.get(), 0); + BOOST_REQUIRE (r._subs.front().vertical_position.reference); + BOOST_CHECK_EQUAL (r._subs.front().vertical_position.reference.get(), sub::BOTTOM_OF_SCREEN); + BOOST_CHECK_EQUAL (r._subs.front().horizontal_position.proportional, 0); + BOOST_CHECK_EQUAL (r._subs.front().horizontal_position.reference, sub::RIGHT_OF_SCREEN); + r._subs.clear (); +} + |
