michael@0: const Ci = Components.interfaces; michael@0: const Cc = Components.classes; michael@0: michael@0: var nameArray = [ michael@0: "ascii", // ASCII michael@0: "fran\u00E7ais", // Latin-1 michael@0: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439", // Cyrillic michael@0: "\u65E5\u672C\u8A9E", // Japanese michael@0: "\u4E2D\u6587", // Chinese michael@0: "\uD55C\uAD6D\uC5B4", // Korean michael@0: "\uD801\uDC0F\uD801\uDC2D\uD801\uDC3B\uD801\uDC2B" // Deseret michael@0: ]; michael@0: michael@0: function getTempDir() michael@0: { michael@0: var dirService = Cc["@mozilla.org/file/directory_service;1"] michael@0: .getService(Ci.nsIProperties); michael@0: return dirService.get("TmpD", Ci.nsILocalFile); michael@0: } michael@0: michael@0: function create_file(fileName) michael@0: { michael@0: var outFile = getTempDir(); michael@0: outFile.append(fileName); michael@0: outFile.createUnique(outFile.NORMAL_FILE_TYPE, 0600); michael@0: michael@0: var stream = Cc["@mozilla.org/network/file-output-stream;1"] michael@0: .createInstance(Ci.nsIFileOutputStream); michael@0: stream.init(outFile, 0x02 | 0x08 | 0x20, 0600, 0); michael@0: stream.write("foo", 3); michael@0: stream.close(); michael@0: michael@0: do_check_eq(outFile.leafName.substr(0, fileName.length), fileName); michael@0: michael@0: return outFile; michael@0: } michael@0: michael@0: function test_create(fileName) michael@0: { michael@0: var file1 = create_file(fileName); michael@0: var file2 = create_file(fileName); michael@0: file1.remove(false); michael@0: file2.remove(false); michael@0: } michael@0: michael@0: function run_test() michael@0: { michael@0: for (var i = 0; i < nameArray.length; ++i) { michael@0: test_create(nameArray[i]); michael@0: } michael@0: }