Support alpha blending 64-bit RGB onto things.
[dcpomatic.git] / test / file_naming_test.cc
index 4c29f1919de6ebf7ca91a9c39d55b6711b9a95b4..1b5871bd2c80d008dbc738a9fa1a885066fdefc4 100644 (file)
@@ -43,24 +43,6 @@ using std::make_shared;
 using std::string;
 
 
-class Keep
-{
-public:
-       Keep ()
-       {
-               _format = Config::instance()->dcp_asset_filename_format ();
-       }
-
-       ~Keep ()
-       {
-               Config::instance()->set_dcp_asset_filename_format (_format);
-       }
-
-private:
-       dcp::NameFormat _format;
-};
-
-
 static
 string
 mxf_regex(string part) {
@@ -76,7 +58,7 @@ mxf_regex(string part) {
 
 BOOST_AUTO_TEST_CASE (file_naming_test)
 {
-       Keep k;
+       ConfigRestorer cr;
        Config::instance()->set_dcp_asset_filename_format (dcp::NameFormat("%c"));
 
        auto film = new_test_film ("file_naming_test");
@@ -129,7 +111,8 @@ BOOST_AUTO_TEST_CASE (file_naming_test)
 
 BOOST_AUTO_TEST_CASE (file_naming_test2)
 {
-       Keep k;
+       ConfigRestorer cr;
+
        Config::instance()->set_dcp_asset_filename_format (dcp::NameFormat ("%c"));
 
        auto film = new_test_film ("file_naming_test2");
@@ -187,7 +170,7 @@ BOOST_AUTO_TEST_CASE (file_naming_test2)
 
 BOOST_AUTO_TEST_CASE (subtitle_file_naming)
 {
-       Keep keep;
+       ConfigRestorer cr;
 
        Config::instance()->set_dcp_asset_filename_format(dcp::NameFormat("%t ostrabagalous %c"));
 
@@ -214,3 +197,23 @@ BOOST_AUTO_TEST_CASE (subtitle_file_naming)
        BOOST_CHECK_EQUAL(got, 1);
 }
 
+
+BOOST_AUTO_TEST_CASE(remove_bad_characters_from_template)
+{
+       ConfigRestorer cr;
+
+       /* %z is not recognised, so the % should be discarded so it won't trip
+        * an invalid URI check in make_and_verify_dcp
+        */
+       Config::instance()->set_dcp_asset_filename_format(dcp::NameFormat("%c%z"));
+
+       auto content = content_factory("test/data/flat_red.png");
+       auto film = new_test_film2("remove_bad_characters_from_template", content);
+       make_and_verify_dcp(
+               film,
+               {
+                       dcp::VerificationNote::Code::MISSING_FFMC_IN_FEATURE,
+                       dcp::VerificationNote::Code::MISSING_FFEC_IN_FEATURE
+               });
+}
+