*/
+/** @file test/subrip_test.cc
+ * @brief Various tests of the subrip code.
+ */
+
#include <boost/test/unit_test.hpp>
#include <dcp/subtitle_content.h>
#include "lib/subrip.h"
/** Test parsing of full SubRip file content */
BOOST_AUTO_TEST_CASE (subrip_parse_test)
{
- shared_ptr<SubRipContent> content (new SubRipContent (shared_ptr<Film> (), "test/data/subrip.srt"));
+ shared_ptr<Film> film = new_test_film ("subrip_parse_test");
+ shared_ptr<SubRipContent> content (new SubRipContent (film, "test/data/subrip.srt"));
content->examine (shared_ptr<Job> ());
BOOST_CHECK_EQUAL (content->full_length(), DCPTime::from_seconds ((3 * 60) + 56.471));
/** Test rendering of a SubRip subtitle */
BOOST_AUTO_TEST_CASE (subrip_render_test)
{
- shared_ptr<SubRipContent> content (new SubRipContent (shared_ptr<Film> (), "test/data/subrip.srt"));
+ shared_ptr<Film> film = new_test_film ("subrip_render_test");
+ shared_ptr<SubRipContent> content (new SubRipContent (film, "test/data/subrip.srt"));
content->examine (shared_ptr<Job> ());
BOOST_CHECK_EQUAL (content->full_length(), DCPTime::from_seconds ((3 * 60) + 56.471));
- shared_ptr<Film> film = new_test_film ("subrip_render_test");
-
shared_ptr<SubRipDecoder> decoder (new SubRipDecoder (content));
- shared_ptr<DecodedTextSubtitle> dts = dynamic_pointer_cast<DecodedTextSubtitle> (decoder->peek ());
-
- shared_ptr<Image> image;
- Position<int> position;
- render_subtitles (dts->subs, dcp::Size (1998, 1080), image, position);
- write_image (image, "build/test/subrip_render_test.png");
+ list<shared_ptr<ContentTextSubtitle> > cts = decoder->get_text_subtitles (
+ ContentTimePeriod (
+ ContentTime::from_seconds (109), ContentTime::from_seconds (110)
+ )
+ );
+ BOOST_CHECK_EQUAL (cts.size(), 1);
+
+ PositionImage image = render_subtitles (cts.front()->subs, dcp::Size (1998, 1080));
+ write_image (image.image, "build/test/subrip_render_test.png");
check_file ("build/test/subrip_render_test.png", "test/data/subrip_render_test.png");
}