From 2ec85e862024fd8820dab398bd1ca2989299c37b Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 16 Apr 2021 17:45:59 +0200 Subject: Move some tests from write_subtitle_test to smpte_subtitle_test. Cherry-picked from 9e3f8bfe9e274865590d49ad1e59e82f7894a12a in master. --- test/smpte_subtitle_test.cc | 328 ++++++++++++++++++++++++++++++++++++++++++++ test/write_subtitle_test.cc | 323 ------------------------------------------- 2 files changed, 328 insertions(+), 323 deletions(-) diff --git a/test/smpte_subtitle_test.cc b/test/smpte_subtitle_test.cc index e81a6313..b8232e9f 100644 --- a/test/smpte_subtitle_test.cc +++ b/test/smpte_subtitle_test.cc @@ -41,7 +41,9 @@ #include +using std::list; using std::string; +using std::vector; using boost::dynamic_pointer_cast; using boost::optional; using boost::shared_ptr; @@ -170,3 +172,329 @@ BOOST_AUTO_TEST_CASE (read_smpte_subtitle_test3) BOOST_REQUIRE (si); BOOST_CHECK (si->png_image() == dcp::Data("test/data/sub.png")); } + + +/* Write some subtitle content as SMPTE XML and check that it is right */ +BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test) +{ + dcp::SMPTESubtitleAsset c; + c.set_reel_number (1); + c.set_language ("en"); + c.set_content_title_text ("Test"); + c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); + + c.add ( + shared_ptr ( + new dcp::SubtitleString( + string ("Frutiger"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 4, 9, 22, 24), + dcp::Time (0, 4, 11, 22, 24), + 0, + dcp::HALIGN_CENTER, + 0.8, + dcp::VALIGN_TOP, + dcp::DIRECTION_LTR, + "Hello world", + dcp::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c.add ( + shared_ptr( + new dcp::SubtitleString( + boost::optional (), + true, + true, + true, + dcp::Colour (128, 0, 64), + 91, + 1.0, + dcp::Time (5, 41, 0, 21, 24), + dcp::Time (6, 12, 15, 21, 24), + 0, + dcp::HALIGN_CENTER, + 0.4, + dcp::VALIGN_BOTTOM, + dcp::DIRECTION_RTL, + "What's going on", + dcp::BORDER, + dcp::Colour (1, 2, 3), + dcp::Time (1, 2, 3, 4, 24), + dcp::Time (5, 6, 7, 8, 24) + ) + ) + ); + + c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; + + check_xml ( + "" + "" + "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" + "Test" + "2016-04-01T03:52:00.000+00:00" + "1" + "en" + "24 1" + "24" + "" + "" + "" + "Hello world" + "" + "" + "" + "" + "What's going on" + "" + "" + "" + "", + c.xml_as_string (), + list() + ); +} + +/* Write some subtitle content as SMPTE XML and check that it is right. + This includes in-line font changes. +*/ +BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2) +{ + dcp::SMPTESubtitleAsset c; + c.set_reel_number (1); + c.set_language ("en"); + c.set_content_title_text ("Test"); + c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); + + c.add ( + shared_ptr( + new dcp::SubtitleString( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HALIGN_CENTER, + 0.8, + dcp::VALIGN_TOP, + dcp::DIRECTION_LTR, + "Testing is ", + dcp::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c.add ( + shared_ptr( + new dcp::SubtitleString( + string ("Arial"), + true, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HALIGN_CENTER, + 0.8, + dcp::VALIGN_TOP, + dcp::DIRECTION_LTR, + "really", + dcp::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c.add ( + shared_ptr( + new dcp::SubtitleString( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HALIGN_CENTER, + 0.8, + dcp::VALIGN_TOP, + dcp::DIRECTION_LTR, + " fun", + dcp::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c.add ( + shared_ptr( + new dcp::SubtitleString( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HALIGN_CENTER, + 0.9, + dcp::VALIGN_TOP, + dcp::DIRECTION_LTR, + "This is the ", + dcp::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c.add ( + shared_ptr( + new dcp::SubtitleString( + string ("Arial"), + true, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HALIGN_CENTER, + 0.9, + dcp::VALIGN_TOP, + dcp::DIRECTION_LTR, + "second", + dcp::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c.add ( + shared_ptr( + new dcp::SubtitleString( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HALIGN_CENTER, + 0.9, + dcp::VALIGN_TOP, + dcp::DIRECTION_LTR, + " line", + dcp::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; + + check_xml ( + c.xml_as_string(), + "" + "" + "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" + "Test" + "2016-04-01T03:52:00.000+00:00" + "1" + "en" + "24 1" + "24" + "" + "" + "" + "" + "Testing is " + "really" + " fun" + "" + "" + "This is the " + "second" + " line" + "" + "" + "" + "" + "", + list() + ); +} + +/* Write some subtitle content as SMPTE using bitmaps and check that it is right */ +BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test3) +{ + dcp::SMPTESubtitleAsset c; + c.set_reel_number (1); + c.set_language ("en"); + c.set_content_title_text ("Test"); + + c.add ( + shared_ptr( + new dcp::SubtitleImage( + dcp::Data ("test/data/sub.png"), + dcp::Time (0, 4, 9, 22, 24), + dcp::Time (0, 4, 11, 22, 24), + 0, + dcp::HALIGN_CENTER, + 0.8, + dcp::VALIGN_TOP, + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ) + ); + + c._id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; + + boost::filesystem::create_directories ("build/test/write_smpte_subtitle_test3"); + c.write ("build/test/write_smpte_subtitle_test3/subs.mxf"); + + /* XXX: check this result when we can read them back in again */ +} + diff --git a/test/write_subtitle_test.cc b/test/write_subtitle_test.cc index c005a58c..c0cbcad0 100644 --- a/test/write_subtitle_test.cc +++ b/test/write_subtitle_test.cc @@ -379,326 +379,3 @@ BOOST_AUTO_TEST_CASE (write_interop_subtitle_test3) ); } -/* Write some subtitle content as SMPTE XML and check that it is right */ -BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test) -{ - dcp::SMPTESubtitleAsset c; - c.set_reel_number (1); - c.set_language ("EN"); - c.set_content_title_text ("Test"); - c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - string ("Frutiger"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 4, 9, 22, 24), - dcp::Time (0, 4, 11, 22, 24), - 0, - dcp::HALIGN_CENTER, - 0.8, - dcp::VALIGN_TOP, - dcp::DIRECTION_LTR, - "Hello world", - dcp::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - boost::optional (), - true, - true, - true, - dcp::Colour (128, 0, 64), - 91, - 1.0, - dcp::Time (5, 41, 0, 21, 24), - dcp::Time (6, 12, 15, 21, 24), - 0, - dcp::HALIGN_CENTER, - 0.4, - dcp::VALIGN_BOTTOM, - dcp::DIRECTION_RTL, - "What's going on", - dcp::BORDER, - dcp::Colour (1, 2, 3), - dcp::Time (1, 2, 3, 4, 24), - dcp::Time (5, 6, 7, 8, 24) - ) - ) - ); - - c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; - - check_xml ( - "" - "" - "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" - "Test" - "2016-04-01T03:52:00.000+00:00" - "1" - "EN" - "24 1" - "24" - "" - "" - "" - "Hello world" - "" - "" - "" - "" - "What's going on" - "" - "" - "" - "", - c.xml_as_string (), - list () - ); -} - -/* Write some subtitle content as SMPTE XML and check that it is right. - This includes in-line font changes. -*/ -BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2) -{ - dcp::SMPTESubtitleAsset c; - c.set_reel_number (1); - c.set_language ("EN"); - c.set_content_title_text ("Test"); - c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HALIGN_CENTER, - 0.8, - dcp::VALIGN_TOP, - dcp::DIRECTION_LTR, - "Testing is ", - dcp::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - string ("Arial"), - true, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HALIGN_CENTER, - 0.8, - dcp::VALIGN_TOP, - dcp::DIRECTION_LTR, - "really", - dcp::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HALIGN_CENTER, - 0.8, - dcp::VALIGN_TOP, - dcp::DIRECTION_LTR, - " fun", - dcp::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HALIGN_CENTER, - 0.9, - dcp::VALIGN_TOP, - dcp::DIRECTION_LTR, - "This is the ", - dcp::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - string ("Arial"), - true, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HALIGN_CENTER, - 0.9, - dcp::VALIGN_TOP, - dcp::DIRECTION_LTR, - "second", - dcp::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c.add ( - shared_ptr ( - new dcp::SubtitleString ( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HALIGN_CENTER, - 0.9, - dcp::VALIGN_TOP, - dcp::DIRECTION_LTR, - " line", - dcp::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; - - check_xml ( - c.xml_as_string (), - "" - "" - "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" - "Test" - "2016-04-01T03:52:00.000+00:00" - "1" - "EN" - "24 1" - "24" - "" - "" - "" - "" - "Testing is " - "really" - " fun" - "" - "" - "This is the " - "second" - " line" - "" - "" - "" - "" - "", - list () - ); -} - -/* Write some subtitle content as SMPTE using bitmaps and check that it is right */ -BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test3) -{ - dcp::SMPTESubtitleAsset c; - c.set_reel_number (1); - c.set_language ("EN"); - c.set_content_title_text ("Test"); - - c.add ( - shared_ptr ( - new dcp::SubtitleImage ( - dcp::Data ("test/data/sub.png"), - dcp::Time (0, 4, 9, 22, 24), - dcp::Time (0, 4, 11, 22, 24), - 0, - dcp::HALIGN_CENTER, - 0.8, - dcp::VALIGN_TOP, - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ) - ); - - c._id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; - - boost::filesystem::create_directories ("build/test/write_smpte_subtitle_test3"); - c.write ("build/test/write_smpte_subtitle_test3/subs.mxf"); - - /* XXX: check this result when we can read them back in again */ -} -- cgit v1.2.3