Use boost::random for make_random_file to make it repeatable across platforms.
[dcpomatic.git] / test / dcp_subtitle_test.cc
index d923448d3afffa418a608454edcd0d2a21d79e92..679325a91ef158462549309abedfd2dbaa69a654 100644 (file)
@@ -186,8 +186,8 @@ BOOST_AUTO_TEST_CASE (dcp_subtitle_test4)
        auto film = new_test_film2 ("dcp_subtitle_test4", {content, content2});
        film->set_interop (true);
 
-       content->only_text()->add_font (shared_ptr<Font> (new Font ("font1")));
-       content2->only_text()->add_font (shared_ptr<Font> (new Font ("font2")));
+       content->only_text()->add_font(make_shared<Font>("font1"));
+       content2->only_text()->add_font(make_shared<Font>("font2"));
 
        make_and_verify_dcp (film, { dcp::VerificationNote::Code::INVALID_STANDARD });
 
@@ -228,3 +228,19 @@ BOOST_AUTO_TEST_CASE (dcp_subtitle_test5)
 
        check_font_tags (doc.node_children());
 }
+
+
+/** Check that fonts specified in the DoM content are used in the output and not ignored (#2074) */
+BOOST_AUTO_TEST_CASE (test_font_override)
+{
+       auto content = make_shared<DCPSubtitleContent>("test/data/dcp_sub4.xml");
+       auto film = new_test_film2("test_font_override", {content});
+       film->set_interop(true);
+
+       BOOST_REQUIRE_EQUAL(content->text.size(), 1U);
+       content->text.front()->get_font("theFontId")->set_file("test/data/Inconsolata-VF.ttf");
+
+       make_and_verify_dcp (film, { dcp::VerificationNote::Code::INVALID_STANDARD });
+       check_file (subtitle_file(film).parent_path() / "font_0.ttf", "test/data/Inconsolata-VF.ttf");
+}
+