Comments.
[libdcp.git] / test / read_subtitle_test.cc
index 6ee59612a4db22794850bb47a33f740f7e98d435..4b2046a184a6cd32aa5f62c91b9f90fa0a27e48a 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
 */
 
-#include "interop_subtitle_content.h"
+#include "interop_subtitle_asset.h"
+#include "interop_load_font_node.h"
 #include "subtitle_string.h"
 #include <boost/test/unit_test.hpp>
 
 using std::list;
 using std::string;
 using boost::shared_ptr;
+using boost::dynamic_pointer_cast;
 
-/* Load some subtitle content from XML and check that it is read correctly */
+/** Load some subtitle content from Interop XML and check that it is read correctly */
 BOOST_AUTO_TEST_CASE (read_subtitle_test1)
 {
-       dcp::InteropSubtitleContent subs ("test/data/subs1.xml");
+       dcp::InteropSubtitleAsset subs ("test/data/subs1.xml");
 
+       BOOST_CHECK_EQUAL (subs.id(), "cab5c268-222b-41d2-88ae-6d6999441b17");
+       BOOST_CHECK_EQUAL (subs.movie_title(), "Movie Title");
+       BOOST_CHECK_EQUAL (subs.reel_number(), "1");
        BOOST_CHECK_EQUAL (subs.language(), "French");
 
+       list<shared_ptr<dcp::LoadFontNode> > lfn = subs.load_font_nodes ();
+       BOOST_REQUIRE_EQUAL (lfn.size(), 1);
+       shared_ptr<dcp::InteropLoadFontNode> interop_lfn = dynamic_pointer_cast<dcp::InteropLoadFontNode> (lfn.front ());
+       BOOST_REQUIRE (interop_lfn);
+       BOOST_CHECK_EQUAL (interop_lfn->id, "theFontId");
+       BOOST_CHECK_EQUAL (interop_lfn->uri, "arial.ttf");
+
        list<dcp::SubtitleString> s = subs.subtitles_during (dcp::Time (0, 0, 6, 1, 250), dcp::Time (0, 0, 6, 2, 250));
        BOOST_REQUIRE_EQUAL (s.size(), 1);
        BOOST_CHECK_EQUAL (s.front(), dcp::SubtitleString (
@@ -42,8 +54,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test1)
                                   1.0,
                                   dcp::Time (0, 0, 5, 198, 250),
                                   dcp::Time (0, 0, 7, 115, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.15,
-                                  dcp::BOTTOM,
+                                  dcp::VALIGN_BOTTOM,
                                   "My jacket was Idi Amin's",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -61,8 +75,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test1)
                                   1.0,
                                   dcp::Time (0, 0, 7, 177, 250),
                                   dcp::Time (0, 0, 11, 31, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.21,
-                                  dcp::BOTTOM,
+                                  dcp::VALIGN_BOTTOM,
                                   "My corset was H.M. The Queen's",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -77,8 +93,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test1)
                                   1.0,
                                   dcp::Time (0, 0, 7, 177, 250),
                                   dcp::Time (0, 0, 11, 31, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.15,
-                                  dcp::BOTTOM,
+                                  dcp::VALIGN_BOTTOM,
                                   "My large wonderbra",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -96,8 +114,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test1)
                                   1.0,
                                   dcp::Time (0, 0, 11, 94, 250),
                                   dcp::Time (0, 0, 13, 63, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.15,
-                                  dcp::BOTTOM,
+                                  dcp::VALIGN_BOTTOM,
                                   "Once belonged to the Shah",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -115,8 +135,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test1)
                                   1.0,
                                   dcp::Time (0, 0, 13, 104, 250),
                                   dcp::Time (0, 0, 15, 177, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.15,
-                                  dcp::BOTTOM,
+                                  dcp::VALIGN_BOTTOM,
                                   "And these are Roy Hattersley's jeans",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -128,7 +150,7 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test1)
 /** And similarly for another one */
 BOOST_AUTO_TEST_CASE (read_subtitle_test2)
 {
-       dcp::InteropSubtitleContent subs ("test/data/subs2.xml");
+       dcp::InteropSubtitleAsset subs ("test/data/subs2.xml");
 
        list<dcp::SubtitleString> s = subs.subtitles_during (dcp::Time (0, 0, 42, 100, 250), dcp::Time (0, 0, 42, 101, 250));
        BOOST_REQUIRE_EQUAL (s.size(), 2);
@@ -140,8 +162,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 0, 41, 62, 250),
                                   dcp::Time (0, 0, 43, 52, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "At afternoon tea with John Peel",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -156,8 +180,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 0, 41, 62, 250),
                                   dcp::Time (0, 0, 43, 52, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "I enquired if his accent was real",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -175,8 +201,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 0, 50, 42, 250),
                                   dcp::Time (0, 0, 52, 21, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "He said \"out of the house",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -191,8 +219,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 0, 50, 42, 250),
                                   dcp::Time (0, 0, 52, 21, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "I'm incredibly scouse",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -210,8 +240,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 2, 208, 250),
                                   dcp::Time (0, 1, 4, 10, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "At home it depends how I feel.\"",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -226,8 +258,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 2, 208, 250),
                                   dcp::Time (0, 1, 4, 10, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "I spent a long weekend in Brighton",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -245,8 +279,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 15, 42, 250),
                                   dcp::Time (0, 1, 16, 42, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "With the legendary Miss Enid Blyton",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -261,8 +297,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 15, 42, 250),
                                   dcp::Time (0, 1, 16, 42, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "She said \"you be Noddy",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -280,8 +318,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 27, 115, 250),
                                   dcp::Time (0, 1, 28, 208, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "That curious creature the Sphinx",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -296,8 +336,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 27, 115, 250),
                                   dcp::Time (0, 1, 28, 208, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "Is smarter than anyone thinks",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -315,8 +357,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 42, 229, 250),
                                   dcp::Time (0, 1, 45, 62, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "It sits there and smirks",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -331,8 +375,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 42, 229, 250),
                                   dcp::Time (0, 1, 45, 62, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "And you don't think it works",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -350,8 +396,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 45, 146, 250),
                                   dcp::Time (0, 1, 47, 94, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "Then when you're not looking, it winks.",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -366,8 +414,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 45, 146, 250),
                                   dcp::Time (0, 1, 47, 94, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "When it snows you will find Sister Sledge",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -385,8 +435,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 47, 146, 250),
                                   dcp::Time (0, 1, 48, 167, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "Out mooning, at night, on the ledge",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -401,8 +453,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 1, 47, 146, 250),
                                   dcp::Time (0, 1, 48, 167, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "One storey down",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -420,8 +474,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 2, 5, 208, 250),
                                   dcp::Time (0, 2, 7, 31, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.89,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "HELLO",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),
@@ -436,8 +492,10 @@ BOOST_AUTO_TEST_CASE (read_subtitle_test2)
                                   1.0,
                                   dcp::Time (0, 2, 5, 208, 250),
                                   dcp::Time (0, 2, 7, 31, 250),
+                                  0,
+                                  dcp::HALIGN_CENTER,
                                   0.95,
-                                  dcp::TOP,
+                                  dcp::VALIGN_TOP,
                                   "WORLD",
                                   dcp::BORDER,
                                   dcp::Colour (0, 0, 0),