Bv2.1 8.1: CPL must have <AnnotationText>.
[libdcp.git] / test / verify_test.cc
index 1789aafede67c01d46509038e88dbd7a05beb197..98a28cbc3635d960b0f39478612b9a342a9750c4 100644 (file)
@@ -1452,7 +1452,7 @@ BOOST_AUTO_TEST_CASE (verify_text_not_too_short)
 
 BOOST_AUTO_TEST_CASE (verify_too_many_subtitle_lines1)
 {
-       auto const dir = boost::filesystem::path ("verify_too_many_subtitle_lines1");
+       auto const dir = boost::filesystem::path ("build/test/verify_too_many_subtitle_lines1");
        dcp_with_text<dcp::ReelSubtitleAsset> (
                dir,
                {
@@ -1467,7 +1467,7 @@ BOOST_AUTO_TEST_CASE (verify_too_many_subtitle_lines1)
 
 BOOST_AUTO_TEST_CASE (verify_not_too_many_subtitle_lines1)
 {
-       auto const dir = boost::filesystem::path ("verify_not_too_many_subtitle_lines1");
+       auto const dir = boost::filesystem::path ("build/test/verify_not_too_many_subtitle_lines1");
        dcp_with_text<dcp::ReelSubtitleAsset> (
                dir,
                {
@@ -1482,7 +1482,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_subtitle_lines1)
 
 BOOST_AUTO_TEST_CASE (verify_too_many_subtitle_lines2)
 {
-       auto const dir = boost::filesystem::path ("verify_too_many_subtitle_lines2");
+       auto const dir = boost::filesystem::path ("build/test/verify_too_many_subtitle_lines2");
        dcp_with_text<dcp::ReelSubtitleAsset> (
                dir,
                {
@@ -1497,7 +1497,7 @@ BOOST_AUTO_TEST_CASE (verify_too_many_subtitle_lines2)
 
 BOOST_AUTO_TEST_CASE (verify_not_too_many_subtitle_lines2)
 {
-       auto const dir = boost::filesystem::path ("verify_not_too_many_subtitle_lines2");
+       auto const dir = boost::filesystem::path ("build/test/verify_not_too_many_subtitle_lines2");
        dcp_with_text<dcp::ReelSubtitleAsset> (
                dir,
                {
@@ -1513,7 +1513,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_subtitle_lines2)
 
 BOOST_AUTO_TEST_CASE (verify_subtitle_lines_too_long1)
 {
-       auto const dir = boost::filesystem::path ("verify_subtitle_lines_too_long1");
+       auto const dir = boost::filesystem::path ("build/test/verify_subtitle_lines_too_long1");
        dcp_with_text<dcp::ReelSubtitleAsset> (
                dir,
                {
@@ -1525,7 +1525,7 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_lines_too_long1)
 
 BOOST_AUTO_TEST_CASE (verify_subtitle_lines_too_long2)
 {
-       auto const dir = boost::filesystem::path ("verify_subtitle_lines_too_long2");
+       auto const dir = boost::filesystem::path ("build/test/verify_subtitle_lines_too_long2");
        dcp_with_text<dcp::ReelSubtitleAsset> (
                dir,
                {
@@ -1537,7 +1537,7 @@ BOOST_AUTO_TEST_CASE (verify_subtitle_lines_too_long2)
 
 BOOST_AUTO_TEST_CASE (verify_too_many_closed_caption_lines1)
 {
-       auto const dir = boost::filesystem::path ("verify_too_many_closed_caption_lines1");
+       auto const dir = boost::filesystem::path ("build/test/verify_too_many_closed_caption_lines1");
        dcp_with_text<dcp::ReelClosedCaptionAsset> (
                dir,
                {
@@ -1552,7 +1552,7 @@ BOOST_AUTO_TEST_CASE (verify_too_many_closed_caption_lines1)
 
 BOOST_AUTO_TEST_CASE (verify_not_too_many_closed_caption_lines1)
 {
-       auto const dir = boost::filesystem::path ("verify_not_too_many_closed_caption_lines1");
+       auto const dir = boost::filesystem::path ("build/test/verify_not_too_many_closed_caption_lines1");
        dcp_with_text<dcp::ReelClosedCaptionAsset> (
                dir,
                {
@@ -1567,7 +1567,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_closed_caption_lines1)
 
 BOOST_AUTO_TEST_CASE (verify_too_many_closed_caption_lines2)
 {
-       auto const dir = boost::filesystem::path ("verify_too_many_closed_caption_lines2");
+       auto const dir = boost::filesystem::path ("build/test/verify_too_many_closed_caption_lines2");
        dcp_with_text<dcp::ReelClosedCaptionAsset> (
                dir,
                {
@@ -1582,7 +1582,7 @@ BOOST_AUTO_TEST_CASE (verify_too_many_closed_caption_lines2)
 
 BOOST_AUTO_TEST_CASE (verify_not_too_many_closed_caption_lines2)
 {
-       auto const dir = boost::filesystem::path ("verify_not_too_many_closed_caption_lines2");
+       auto const dir = boost::filesystem::path ("build/test/verify_not_too_many_closed_caption_lines2");
        dcp_with_text<dcp::ReelClosedCaptionAsset> (
                dir,
                {
@@ -1598,7 +1598,7 @@ BOOST_AUTO_TEST_CASE (verify_not_too_many_closed_caption_lines2)
 
 BOOST_AUTO_TEST_CASE (verify_closed_caption_lines_too_long1)
 {
-       auto const dir = boost::filesystem::path ("verify_closed_caption_lines_too_long1");
+       auto const dir = boost::filesystem::path ("build/test/verify_closed_caption_lines_too_long1");
        dcp_with_text<dcp::ReelClosedCaptionAsset> (
                dir,
                {
@@ -1610,7 +1610,7 @@ BOOST_AUTO_TEST_CASE (verify_closed_caption_lines_too_long1)
 
 BOOST_AUTO_TEST_CASE (verify_sound_sampling_rate_must_be_48k)
 {
-       boost::filesystem::path const dir("verify_sound_sampling_rate_must_be_48k");
+       boost::filesystem::path const dir("build/test/verify_sound_sampling_rate_must_be_48k");
        prepare_directory (dir);
 
        auto picture = simple_picture (dir, "foo");
@@ -1628,3 +1628,26 @@ BOOST_AUTO_TEST_CASE (verify_sound_sampling_rate_must_be_48k)
 
        check_verify_result ({dir}, {{ dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::INVALID_SOUND_FRAME_RATE }});
 }
+
+
+BOOST_AUTO_TEST_CASE (verify_cpl_must_have_annotation_text)
+{
+       boost::filesystem::path const dir("build/test/verify_cpl_must_have_annotation_text");
+       auto dcp = make_simple (dir);
+       dcp->write_xml (dcp::SMPTE);
+       BOOST_REQUIRE_EQUAL (dcp->cpls().size(), 1U);
+
+       {
+               BOOST_REQUIRE (dcp->cpls()[0]->file());
+               Editor e(dcp->cpls()[0]->file().get());
+               e.replace("<AnnotationText>A Test DCP</AnnotationText>", "");
+       }
+
+       check_verify_result (
+               {dir},
+               {
+                       { dcp::VerificationNote::VERIFY_BV21_ERROR, dcp::VerificationNote::MISSING_ANNOTATION_TEXT_IN_CPL },
+                       { dcp::VerificationNote::VERIFY_ERROR, dcp::VerificationNote::CPL_HASH_INCORRECT }
+               });
+}
+