Fix tests again on Windows.
[libdcp.git] / test / smpte_subtitle_test.cc
index b59d60208a7bf5e6b3364e545c54f3bc1dc2ac99..b271b02c1c0dd2a23639aacf277c5b5f1ef80574 100644 (file)
 #include <boost/test/unit_test.hpp>
 
 
-using std::make_shared;
-using std::string;
-using std::shared_ptr;
 using std::dynamic_pointer_cast;
+using std::shared_ptr;
+using std::string;
 using std::vector;
 using boost::optional;
 
@@ -54,7 +53,7 @@ BOOST_AUTO_TEST_CASE (smpte_subtitle_id_test)
 {
        dcp::SMPTESubtitleAsset subs;
        subs.add(
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        optional<string>(),
                        false, false, false,
                        dcp::Colour(),
@@ -181,7 +180,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
        c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
 
        c.add (
-               make_shared<dcp::SubtitleString> (
+               std::make_shared<dcp::SubtitleString> (
                        string ("Frutiger"),
                        false,
                        false,
@@ -207,7 +206,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        boost::optional<string> (),
                        true,
                        true,
@@ -233,7 +232,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        boost::optional<string> (),
                        true,
                        true,
@@ -265,7 +264,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
                "<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
                "  <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
                "  <ContentTitleText>Test</ContentTitleText>\n"
-               "  <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+               "  <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
                "  <ReelNumber>1</ReelNumber>\n"
                "  <Language>en</Language>\n"
                "  <EditRate>24 1</EditRate>\n"
@@ -300,7 +299,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
        c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -326,7 +325,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        true,
                        false,
@@ -352,7 +351,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -378,7 +377,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -404,7 +403,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        true,
                        false,
@@ -430,7 +429,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -463,7 +462,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                "<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
                "  <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
                "  <ContentTitleText>Test</ContentTitleText>\n"
-               "  <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+               "  <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
                "  <ReelNumber>1</ReelNumber>\n"
                "  <Language>en</Language>\n"
                "  <EditRate>24 1</EditRate>\n"
@@ -493,7 +492,7 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test3)
        boost::filesystem::path const sub_image = "test/data/sub.png";
 
        c.add (
-               make_shared<dcp::SubtitleImage>(
+               std::make_shared<dcp::SubtitleImage>(
                        dcp::ArrayData(sub_image),
                        dcp::Time (0, 4,  9, 22, 24),
                        dcp::Time (0, 4, 11, 22, 24),
@@ -544,7 +543,7 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_top_alignment)
        c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -570,7 +569,7 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_top_alignment)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -603,7 +602,7 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_top_alignment)
                "<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
                "  <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
                "  <ContentTitleText>Test</ContentTitleText>\n"
-               "  <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+               "  <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
                "  <ReelNumber>1</ReelNumber>\n"
                "  <Language>en</Language>\n"
                "  <EditRate>24 1</EditRate>\n"
@@ -632,7 +631,7 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_bottom_alignment)
        c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -658,7 +657,7 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_bottom_alignment)
                );
 
        c.add (
-               make_shared<dcp::SubtitleString>(
+               std::make_shared<dcp::SubtitleString>(
                        string ("Arial"),
                        false,
                        false,
@@ -691,7 +690,7 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_bottom_alignment)
                "<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
                "  <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
                "  <ContentTitleText>Test</ContentTitleText>\n"
-               "  <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+               "  <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
                "  <ReelNumber>1</ReelNumber>\n"
                "  <Language>en</Language>\n"
                "  <EditRate>24 1</EditRate>\n"
@@ -709,3 +708,43 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_bottom_alignment)
                );
 }
 
+
+BOOST_AUTO_TEST_CASE(smpte_subtitle_standard_written_correctly)
+{
+       RNGFixer fixer;
+
+       boost::filesystem::path const ref = "test/data";
+       boost::filesystem::path const out = "build/test/smpte_subtitle_standard_written_correctly";
+
+       boost::filesystem::remove_all(out);
+       boost::filesystem::create_directories(out);
+
+       dcp::SMPTESubtitleAsset test_2014;
+       test_2014.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
+       test_2014.write(out / "2014.mxf");
+       BOOST_CHECK(dcp::SMPTESubtitleAsset(ref / "2014.mxf").raw_xml() == dcp::SMPTESubtitleAsset(out / "2014.mxf").raw_xml());
+
+       dcp::SMPTESubtitleAsset test_2010(dcp::SubtitleStandard::SMPTE_2010);
+       test_2010.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
+       test_2010.write(out / "2010.mxf");
+       BOOST_CHECK(dcp::SMPTESubtitleAsset(ref / "2010.mxf").raw_xml() == dcp::SMPTESubtitleAsset(out / "2010.mxf").raw_xml());
+
+       dcp::SMPTESubtitleAsset test_2007(dcp::SubtitleStandard::SMPTE_2007);
+       test_2007.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
+       test_2007.write(out / "2007.mxf");
+       BOOST_CHECK(dcp::SMPTESubtitleAsset(ref / "2007.mxf").raw_xml() == dcp::SMPTESubtitleAsset(out / "2007.mxf").raw_xml());
+}
+
+
+BOOST_AUTO_TEST_CASE(smpte_subtitle_standard_read_correctly)
+{
+       dcp::SMPTESubtitleAsset test_2007("test/data/2007.mxf");
+       BOOST_CHECK(test_2007.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2007);
+
+       dcp::SMPTESubtitleAsset test_2010("test/data/2010.mxf");
+       BOOST_CHECK(test_2010.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2010);
+
+       dcp::SMPTESubtitleAsset test_2014("test/data/2014.mxf");
+       BOOST_CHECK(test_2014.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2014);
+}
+