diff --git a/chrome/content/zotero/xpcom/file.js b/chrome/content/zotero/xpcom/file.js index 237b1181b..b9289e700 100644 --- a/chrome/content/zotero/xpcom/file.js +++ b/chrome/content/zotero/xpcom/file.js @@ -381,13 +381,7 @@ Zotero.File = new function(){ path, data, { - // Note: this will fail on Windows if the temp - // directory is on a different drive from - // destination path - tmpPath: OS.Path.join( - Zotero.getTempDirectory().path, - OS.Path.basename(path) + ".tmp" - ), + tmpPath: path + ".tmp", encoding: charset ? charset.toLowerCase() : 'utf-8' } )); diff --git a/test/tests/fileTest.js b/test/tests/fileTest.js index d8c2cc99c..939076c52 100644 --- a/test/tests/fileTest.js +++ b/test/tests/fileTest.js @@ -82,6 +82,20 @@ describe("Zotero.File", function () { }); }); + describe("#putContentsAsync()", function () { + it("should save via .tmp file", function* () { + var tmpDir = yield getTempDirectory(); + var destFile = OS.Path.join(tmpDir, 'test.txt') + var tmpFile = destFile + ".tmp"; + yield Zotero.File.putContentsAsync(tmpFile, 'A'); + assert.isTrue(yield OS.File.exists(tmpFile)); + yield Zotero.File.putContentsAsync(destFile, 'B'); + assert.isFalse(yield OS.File.exists(tmpFile)); + // Make sure .tmp file created when creating temp file was deleted too + assert.isFalse(yield OS.File.exists(tmpFile + '.tmp')); + }); + }); + describe("#copyDirectory()", function () { it("should copy all files within a directory", function* () { var tmpDir = Zotero.getTempDirectory().path;