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 | |
| parent | 257f325258866b9241fea68e5aae60adcd679701 (diff) | |
Support SSA tags in SRT files (DoM #938).
Diffstat (limited to 'test')
| -rw-r--r-- | test/ssa_reader_test.cc | 12 | ||||
| -rw-r--r-- | test/subrip_reader_test.cc | 60 |
2 files changed, 65 insertions, 7 deletions
diff --git a/test/ssa_reader_test.cc b/test/ssa_reader_test.cc index 4aa8ff5..589ef92 100644 --- a/test/ssa_reader_test.cc +++ b/test/ssa_reader_test.cc @@ -227,7 +227,7 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test3) /* Alignments */ SUB_START (sub::Time::from_hms (0, 0, 9, 230), sub::Time::from_hms (0, 0, 11, 560)); - LINE (0, sub::BOTTOM_OF_SCREEN, 0, sub::HORIZONTAL_CENTRE_OF_SCREEN); + LINE (0, sub::BOTTOM_OF_SCREEN, 0, sub::LEFT_OF_SCREEN); BLOCK("bottom left", "Arial", 20, false, false, false); SUB_END (); @@ -237,12 +237,12 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test3) SUB_END (); SUB_START (sub::Time::from_hms (0, 0, 9, 250), sub::Time::from_hms (0, 0, 11, 560)); - LINE (0, sub::BOTTOM_OF_SCREEN, 0, sub::HORIZONTAL_CENTRE_OF_SCREEN); + LINE (0, sub::BOTTOM_OF_SCREEN, 0, sub::RIGHT_OF_SCREEN); BLOCK("bottom right", "Arial", 20, false, false, false); SUB_END (); SUB_START (sub::Time::from_hms (0, 0, 9, 260), sub::Time::from_hms (0, 0, 11, 560)); - LINE (0, sub::VERTICAL_CENTRE_OF_SCREEN, 0, sub::HORIZONTAL_CENTRE_OF_SCREEN); + LINE (0, sub::VERTICAL_CENTRE_OF_SCREEN, 0, sub::LEFT_OF_SCREEN); BLOCK("middle left", "Arial", 20, false, false, false); SUB_END (); @@ -252,12 +252,12 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test3) SUB_END (); SUB_START (sub::Time::from_hms (0, 0, 9, 280), sub::Time::from_hms (0, 0, 11, 560)); - LINE (0, sub::VERTICAL_CENTRE_OF_SCREEN, 0, sub::HORIZONTAL_CENTRE_OF_SCREEN); + LINE (0, sub::VERTICAL_CENTRE_OF_SCREEN, 0, sub::RIGHT_OF_SCREEN); BLOCK("middle right", "Arial", 20, false, false, false); SUB_END (); SUB_START (sub::Time::from_hms (0, 0, 9, 290), sub::Time::from_hms (0, 0, 11, 560)); - LINE (0, sub::TOP_OF_SCREEN, 0, sub::HORIZONTAL_CENTRE_OF_SCREEN); + LINE (0, sub::TOP_OF_SCREEN, 0, sub::LEFT_OF_SCREEN); BLOCK("top left", "Arial", 20, false, false, false); SUB_END (); @@ -267,7 +267,7 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test3) SUB_END (); SUB_START (sub::Time::from_hms (0, 0, 9, 310), sub::Time::from_hms (0, 0, 11, 560)); - LINE (0, sub::TOP_OF_SCREEN, 0, sub::HORIZONTAL_CENTRE_OF_SCREEN); + LINE (0, sub::TOP_OF_SCREEN, 0, sub::RIGHT_OF_SCREEN); BLOCK("top right", "Arial", 20, false, false, false); SUB_END (); 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 (); +} + |
