+
+
+BOOST_AUTO_TEST_CASE (file_naming_test2)
+{
+ Keep k;
+ Config::instance()->set_dcp_asset_filename_format (dcp::NameFormat ("%c"));
+
+ auto film = new_test_film ("file_naming_test2");
+ film->set_name ("file_naming_test2");
+ film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR"));
+
+#ifdef DCPOMATIC_WINDOWS
+ /* This is necessary so that the UTF8 string constant below gets converted properly */
+ std::locale::global(boost::locale::generator().generate(""));
+ boost::filesystem::path::imbue(std::locale());
+#endif
+
+ auto r = make_shared<FFmpegContent>("test/data/flät_red.png");
+ film->examine_and_add_content (r);
+ auto g = make_shared<FFmpegContent>("test/data/flat_green.png");
+ film->examine_and_add_content (g);
+ auto b = make_shared<FFmpegContent>("test/data/flat_blue.png");
+ film->examine_and_add_content (b);
+ BOOST_REQUIRE (!wait_for_jobs());
+
+ r->set_position (film, dcpomatic::DCPTime::from_seconds(0));
+ r->set_video_frame_rate (24);
+ r->video->set_length (24);
+ g->set_position (film, dcpomatic::DCPTime::from_seconds(1));
+ g->set_video_frame_rate (24);
+ g->video->set_length (24);
+ b->set_position (film, dcpomatic::DCPTime::from_seconds(2));
+ b->set_video_frame_rate (24);
+ b->video->set_length (24);
+
+ film->set_reel_type (ReelType::BY_VIDEO_CONTENT);
+ make_and_verify_dcp (
+ film,
+ {
+ dcp::VerificationNote::Code::MISSING_FFMC_IN_FEATURE,
+ dcp::VerificationNote::Code::MISSING_FFEC_IN_FEATURE
+ });
+
+ int got[3] = { 0, 0, 0 };
+ for (auto i: boost::filesystem::directory_iterator (film->file(film->dcp_name()))) {
+ if (boost::regex_match(i.path().string(), boost::regex(".*flat_red\\.png_.*\\.mxf"))) {
+ ++got[0];
+ } else if (boost::regex_match(i.path().string(), boost::regex(".*flat_green\\.png_.*\\.mxf"))) {
+ ++got[1];
+ } else if (boost::regex_match(i.path().string(), boost::regex(".*flat_blue\\.png_.*\\.mxf"))) {
+ ++got[2];
+ }
+ }
+
+ for (int i = 0; i < 3; ++i) {
+ BOOST_CHECK (got[i] == 2);
+ }
+}
+
+
+BOOST_AUTO_TEST_CASE (subtitle_file_naming)
+{
+ Keep keep;
+
+ Config::instance()->set_dcp_asset_filename_format(dcp::NameFormat("%t ostrabagalous %c"));
+
+ auto content = content_factory("test/data/15s.srt");
+ auto film = new_test_film2("subtitle_file_naming", { content.front() });
+ film->set_interop(false);
+
+ make_and_verify_dcp (
+ film,
+ {
+ dcp::VerificationNote::Code::MISSING_CPL_METADATA,
+ dcp::VerificationNote::Code::MISSING_SUBTITLE_LANGUAGE,
+ dcp::VerificationNote::Code::INVALID_SUBTITLE_FIRST_TEXT_TIME,
+ });
+
+ int got = 0;
+
+ for (auto i: boost::filesystem::directory_iterator(film->file(film->dcp_name()))) {
+ if (boost::regex_match(i.path().filename().string(), boost::regex("sub_ostrabagalous_15s.*\\.mxf"))) {
+ ++got;
+ }
+ }
+
+ BOOST_CHECK_EQUAL(got, 1);
+}
+