Omit vposition property when it's 0.
[libdcp.git] / test / shared_subtitle_test.cc
index 9c841f90a2fe0016c5fa326c63dc1758c1dddccc..7ac20e1071bf04f9e74b438db15b90e8a85f7769 100644 (file)
 #include <boost/test/unit_test.hpp>
 
 
-using std::string;
+using std::make_shared;
 using std::shared_ptr;
+using std::string;
 using std::vector;
-using std::make_shared;
 using boost::optional;
 
 
@@ -108,7 +108,7 @@ BOOST_AUTO_TEST_CASE (pull_fonts_test1)
        auto root = make_shared<dcp::order::Part>(shared_ptr<dcp::order::Part>());
        auto sub1 = make_shared<dcp::order::Subtitle>(root, dcp::Time(), dcp::Time(), dcp::Time(), dcp::Time());
        root->children.push_back (sub1);
-       auto text1 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR);
+       auto text1 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR, std::vector<dcp::Ruby>());
        sub1->children.push_back (text1);
        text1->font._values["font"] = "Inconsolata";
        text1->font._values["size"] = "42";
@@ -127,11 +127,11 @@ BOOST_AUTO_TEST_CASE (pull_fonts_test2)
        auto root = make_shared<dcp::order::Part>(shared_ptr<dcp::order::Part> ());
        auto sub1 = make_shared<dcp::order::Subtitle>(root, dcp::Time(), dcp::Time(), dcp::Time(), dcp::Time());
        root->children.push_back (sub1);
-       auto text1 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR);
+       auto text1 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR, std::vector<dcp::Ruby>());
        sub1->children.push_back (text1);
        text1->font._values["font"] = "Inconsolata";
        text1->font._values["size"] = "42";
-       auto text2 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR);
+       auto text2 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR, std::vector<dcp::Ruby>());
        sub1->children.push_back (text2);
        text2->font._values["font"] = "Inconsolata";
        text2->font._values["size"] = "48";
@@ -152,7 +152,7 @@ BOOST_AUTO_TEST_CASE (pull_fonts_test3)
        auto root = make_shared<dcp::order::Part>(shared_ptr<dcp::order::Part> ());
        auto sub1 = make_shared<dcp::order::Subtitle>(root, dcp::Time(), dcp::Time(), dcp::Time(), dcp::Time());
        root->children.push_back (sub1);
-       auto text1 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR);
+       auto text1 = make_shared<dcp::order::Text>(sub1, dcp::HAlign::CENTER, 0, dcp::VAlign::TOP, 0, 0, dcp::Direction::LTR, std::vector<dcp::Ruby>());
        sub1->children.push_back (text1);
        dcp::order::Font font;
        font._values["font"] = "Inconsolata";
@@ -183,9 +183,9 @@ BOOST_AUTO_TEST_CASE (format_xml_test1)
        fred->add_child_text("Fred");
        fred->add_child("Text")->add_child_text("Jim");
        fred->add_child_text("Sheila");
-       BOOST_REQUIRE_EQUAL (dcp::SubtitleAsset::format_xml(doc, { {"", "fred"}, {"jim", "sheila"} }),
+       BOOST_REQUIRE_EQUAL (dcp::SubtitleAsset::format_xml(doc, make_pair(string{}, string{"fred"})),
 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<Foo xmlns=\"fred\" xmlns:jim=\"sheila\">\n"
+"<Foo xmlns=\"fred\">\n"
 "  <Empty/>\n"
 "  <Text>Hello world</Text>\n"
 "  <Font>\n"
@@ -217,3 +217,12 @@ BOOST_AUTO_TEST_CASE (format_xml_entities_test)
 "  <Bar>Don't panic &amp;amp; xml \"is\" 'great' &amp; &lt; &gt; —</Bar>\n"
 "</Foo>\n");
 }
+
+
+BOOST_AUTO_TEST_CASE(ruby_round_trip_test)
+{
+       dcp::InteropSubtitleAsset asset("test/data/ruby1.xml");
+       check_xml(dcp::file_to_string("test/data/ruby1.xml"), asset.xml_as_string(), {}, false);
+}
+
+