Use $HOME rather than hard-coded user name.
[dcpomatic.git] / test / render_subtitles_test.cc
index 02323756802c2ca21c7464463183c6b980338098..e3034def01f209d7bab87914163bbe653d20eed4 100644 (file)
 #include "lib/image_png.h"
 #include "lib/render_text.h"
 #include "lib/string_text.h"
+#include "test.h"
 #include <dcp/subtitle_string.h>
 #include <boost/test/unit_test.hpp>
 
 
+using std::make_shared;
 using std::shared_ptr;
 
 
@@ -62,7 +64,8 @@ add(std::vector<StringText>& s, std::string text, bool italic, bool bold, bool u
                                dcp::Colour (0, 0, 0),
                                dcp::Time (),
                                dcp::Time (),
-                               0
+                               0,
+                               std::vector<dcp::Ruby>()
                                ),
                        2,
                        std::shared_ptr<dcpomatic::Font>(),
@@ -120,6 +123,56 @@ BOOST_AUTO_TEST_CASE (marked_up_test6)
 }
 
 
+BOOST_AUTO_TEST_CASE(render_text_with_newline_test)
+{
+       std::list<dcp::SubtitleString> ss = {
+               {
+                       {}, true, false, false, dcp::Colour(255, 255, 255), 42, 1.0,
+                       dcp::Time(0, 0, 0, 0, 24), dcp::Time(0, 0, 1, 0, 24),
+                       0.5, dcp::HAlign::CENTER,
+                       0.5, dcp::VAlign::CENTER,
+                       0.0,
+                       dcp::Direction::LTR,
+                       "Hello                     world",
+                       dcp::Effect::NONE, dcp::Colour(0, 0, 0),
+                       {}, {},
+                       0,
+                       std::vector<dcp::Ruby>()
+               },
+               {
+                       {}, true, false, false, dcp::Colour(255, 255, 255), 42, 1.0,
+                       dcp::Time(0, 0, 0, 0, 24), dcp::Time(0, 0, 1, 0, 24),
+                       0.5, dcp::HAlign::CENTER,
+                       0.5, dcp::VAlign::CENTER,
+                       0.0,
+                       dcp::Direction::LTR,
+                       "\n",
+                       dcp::Effect::NONE, dcp::Colour(0, 0, 0),
+                       {}, {},
+                       0,
+                       std::vector<dcp::Ruby>()
+               }
+       };
+
+       std::vector<StringText> st;
+       for (auto i: ss) {
+               st.push_back({i, 0, make_shared<dcpomatic::Font>("foo"), dcp::SubtitleStandard::SMPTE_2014});
+       }
+
+       auto images = render_text(st, dcp::Size(1998, 1080), {}, 24);
+
+       BOOST_CHECK_EQUAL(images.size(), 1U);
+       image_as_png(Image::ensure_alignment(images.front().image, Image::Alignment::PADDED)).write("build/test/render_text_with_newline_test.png");
+#if defined(DCPOMATIC_OSX)
+       check_image("test/data/mac/render_text_with_newline_test.png", "build/test/render_text_with_newline_test.png");
+#elif defined(DCPOMATIC_WINDOWS)
+       check_image("test/data/windows/render_text_with_newline_test.png", "build/test/render_text_with_newline_test.png");
+#else
+       check_image("test/data/render_text_with_newline_test.png", "build/test/render_text_with_newline_test.png");
+#endif
+}
+
+
 #if 0
 
 BOOST_AUTO_TEST_CASE (render_text_test)