4 #include <pbd/gstdio_compat.h>
9 #ifdef PLATFORM_WINDOWS
13 #include <glibmm/miscutils.h>
14 #include <glibmm/fileutils.h>
15 #include <glibmm/convert.h>
17 #include <libxml/xpath.h>
19 #include "pbd/file_utils.h"
21 #include "test_common.h"
26 CPPUNIT_TEST_SUITE_REGISTRATION (XMLTest);
30 xmlChar* xml_version = xmlCharStrdup("1.0");
33 write_xml(const string& filename)
38 xmlKeepBlanksDefault(0);
39 doc = xmlNewDoc(xml_version);
41 result = xmlSaveFormatFileEnc(filename.c_str(), doc, "UTF-8", 1);
54 XMLTest::testXMLFilenameEncoding ()
56 vector<string> i18n_files;
58 Searchpath i18n_path(test_search_path());
59 i18n_path.add_subdirectory_to_paths("i18n_test");
61 PBD::find_files_matching_pattern (i18n_files, i18n_path, "*.tst");
63 CPPUNIT_ASSERT (i18n_files.size() == 8);
65 string output_dir = test_output_directory ("XMLFilenameEncodingUTF8");
67 // This is testing that libxml expects the filename encoding to be utf-8
68 // on Windows and that writing the xml files should be successful for all
69 // the filenames in the test data set but it should also work for other
71 for (vector<string>::iterator i = i18n_files.begin (); i != i18n_files.end ();
73 string input_path = *i;
74 string output_filename = Glib::path_get_basename (input_path);
75 string output_path = Glib::build_filename (output_dir, output_filename);
77 CPPUNIT_ASSERT (write_xml (output_path));