X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Fconfig_test.cc;h=6b35c595d0b60792b849056f7b66597ae1592c51;hp=0e6a05ac04e384e420ecbc2d900ba3415e989cda;hb=6d686ea45f5cd01a0d11f92a903ac77779ad8562;hpb=b502b5723f4516bfd33c17a6b71a72831933d212 diff --git a/test/config_test.cc b/test/config_test.cc index 0e6a05ac0..6b35c595d 100644 --- a/test/config_test.cc +++ b/test/config_test.cc @@ -19,13 +19,16 @@ */ +#include "lib/cinema.h" #include "lib/config.h" #include "test.h" #include #include +using std::list; using std::ofstream; +using std::make_shared; using std::string; using boost::optional; @@ -190,3 +193,28 @@ BOOST_AUTO_TEST_CASE (config_upgrade_test) BOOST_REQUIRE (!boost::filesystem::exists(dir / "2.16" / "cinemas.xml")); } + +BOOST_AUTO_TEST_CASE (config_keep_cinemas_if_making_new_config) +{ + ConfigRestorer cr; + + boost::filesystem::path dir = "build/test/config_keep_cinemas_if_making_new_config"; + Config::override_path = dir; + Config::drop (); + boost::filesystem::remove_all (dir); + boost::filesystem::create_directories (dir); + + Config::instance()->write(); + + Config::instance()->add_cinema(make_shared("My Great Cinema", list(), "", 0, 0)); + Config::instance()->write(); + + boost::filesystem::copy_file (dir / "cinemas.xml", dir / "backup_for_test.xml"); + + Config::drop (); + boost::filesystem::remove (dir / "2.16" / "config.xml"); + Config::instance(); + + check_text_file (dir / "backup_for_test.xml", dir / "cinemas.xml.1"); +} +