X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fconfig_test.cc;h=d78b9357b86dc8943fcb5021255392c813fa09ed;hb=39fb8198febde1937019db1c300ec363aab5aa56;hp=25e8c7d9dc6953ba03c4a43e7fd07813ff19fa71;hpb=ad59559fdd19f89852eebd94299691e6091ff02f;p=dcpomatic.git diff --git a/test/config_test.cc b/test/config_test.cc index 25e8c7d9d..d78b9357b 100644 --- a/test/config_test.cc +++ b/test/config_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2018 Carl Hetherington + Copyright (C) 2018-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,20 +18,25 @@ */ + #include "lib/config.h" +#include "test.h" #include #include + using std::ofstream; + static void rewrite_bad_config () { boost::system::error_code ec; - boost::filesystem::remove ("build/test/config.xml", ec); + boost::filesystem::remove ("build/test/bad_config/config.xml", ec); - Config::test_path = "build/test"; - ofstream f ("build/test/config.xml"); + Config::override_path = "build/test/bad_config"; + boost::filesystem::create_directories ("build/test/bad_config"); + ofstream f ("build/test/bad_config/config.xml"); f << "\n" << "\n" << "\n" @@ -42,49 +47,68 @@ rewrite_bad_config () BOOST_AUTO_TEST_CASE (config_backup_test) { + Config::override_path = "build/test/bad_config"; + Config::drop(); - boost::system::error_code ec; - boost::filesystem::remove ("build/test/config.xml.1", ec); - boost::filesystem::remove ("build/test/config.xml.2", ec); - boost::filesystem::remove ("build/test/config.xml.3", ec); - boost::filesystem::remove ("build/test/config.xml.4", ec); - boost::filesystem::remove ("build/test/config.xml.5", ec); - boost::filesystem::remove ("build/test/config.xml.5", ec); + boost::filesystem::remove_all ("build/test/bad_config"); rewrite_bad_config(); Config::instance(); - BOOST_CHECK ( boost::filesystem::exists ("build/test/config.xml.1")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/config.xml.2")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/config.xml.3")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/config.xml.4")); + BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.1")); + BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.2")); + BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.3")); + BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.4")); Config::drop(); rewrite_bad_config(); Config::instance(); - BOOST_CHECK ( boost::filesystem::exists ("build/test/config.xml.1")); - BOOST_CHECK ( boost::filesystem::exists ("build/test/config.xml.2")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/config.xml.3")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/config.xml.4")); + BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.1")); + BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.2")); + BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.3")); + BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.4")); Config::drop(); rewrite_bad_config(); Config::instance(); - BOOST_CHECK ( boost::filesystem::exists ("build/test/config.xml.1")); - BOOST_CHECK ( boost::filesystem::exists ("build/test/config.xml.2")); - BOOST_CHECK ( boost::filesystem::exists ("build/test/config.xml.3")); - BOOST_CHECK (!boost::filesystem::exists ("build/test/config.xml.4")); + BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.1")); + BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.2")); + BOOST_CHECK ( boost::filesystem::exists ("build/test/bad_config/config.xml.3")); + BOOST_CHECK (!boost::filesystem::exists ("build/test/bad_config/config.xml.4")); Config::drop(); rewrite_bad_config(); Config::instance(); - BOOST_CHECK (boost::filesystem::exists ("build/test/config.xml.1")); - BOOST_CHECK (boost::filesystem::exists ("build/test/config.xml.2")); - BOOST_CHECK (boost::filesystem::exists ("build/test/config.xml.3")); - BOOST_CHECK (boost::filesystem::exists ("build/test/config.xml.4")); + BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.1")); + BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.2")); + BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.3")); + BOOST_CHECK (boost::filesystem::exists ("build/test/bad_config/config.xml.4")); + + /* This test has called Config::set_defaults(), so take us back + to the config that we want for our tests. + */ + setup_test_config (); } + + +BOOST_AUTO_TEST_CASE (config_write_utf8_test) +{ + boost::filesystem::remove_all ("build/test/config.xml"); + boost::filesystem::copy_file ("test/data/utf8_config.xml", "build/test/config.xml"); + Config::override_path = "build/test"; + Config::drop (); + Config::instance()->write(); + + check_text_file ("test/data/utf8_config.xml", "build/test/config.xml"); + + /* This test has called Config::set_defaults(), so take us back + to the config that we want for our tests. + */ + setup_test_config (); +} +