54 lines
		
	
	
	
		
			1.6 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.6 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
describe("Zotero.File", function () {
 | 
						|
	describe("#getContentsAsync()", function () {
 | 
						|
		it("should handle an empty file", function* () {
 | 
						|
			var path = OS.Path.join(getTestDataDirectory().path, "empty");
 | 
						|
			assert.equal((yield Zotero.File.getContentsAsync(path)), "");
 | 
						|
		})
 | 
						|
		
 | 
						|
		it("should handle an extended character", function* () {
 | 
						|
			var contents = yield Zotero.File.getContentsAsync(
 | 
						|
				OS.Path.join(getTestDataDirectory().path, "utf8Char.txt")
 | 
						|
			);
 | 
						|
			assert.lengthOf(contents, 3);
 | 
						|
			assert.equal(contents, "A\u72acB");
 | 
						|
		})
 | 
						|
		
 | 
						|
		it("should handle an invalid character", function* () {
 | 
						|
			var contents = yield Zotero.File.getContentsAsync(
 | 
						|
				OS.Path.join(getTestDataDirectory().path, "invalidChar.txt")
 | 
						|
			);
 | 
						|
			assert.lengthOf(contents, 3);
 | 
						|
			assert.equal(contents, "A\uFFFDB");
 | 
						|
		})
 | 
						|
	})
 | 
						|
	
 | 
						|
	describe("#copyDirectory()", function () {
 | 
						|
		it("should copy all files within a directory", function* () {
 | 
						|
			var tmpDir = Zotero.getTempDirectory().path;
 | 
						|
			var tmpCopyDir = OS.Path.join(tmpDir, "copyDirectory")
 | 
						|
			var source = OS.Path.join(tmpCopyDir, "1");
 | 
						|
			var target = OS.Path.join(tmpCopyDir, "2");
 | 
						|
			yield OS.File.makeDir(source, {
 | 
						|
				from: tmpDir
 | 
						|
			});
 | 
						|
			
 | 
						|
			yield Zotero.File.putContentsAsync(OS.Path.join(source, "A"), "Test 1");
 | 
						|
			yield Zotero.File.putContentsAsync(OS.Path.join(source, "B"), "Test 2");
 | 
						|
			
 | 
						|
			yield OS.File.removeDir(target, {
 | 
						|
				ignoreAbsent: true
 | 
						|
			});
 | 
						|
			
 | 
						|
			yield Zotero.File.copyDirectory(source, target);
 | 
						|
			
 | 
						|
			assert.equal(
 | 
						|
				(yield Zotero.File.getContentsAsync(OS.Path.join(target, "A"))),
 | 
						|
				"Test 1"
 | 
						|
			);
 | 
						|
			assert.equal(
 | 
						|
				(yield Zotero.File.getContentsAsync(OS.Path.join(target, "B"))),
 | 
						|
				"Test 2"
 | 
						|
			);
 | 
						|
		})
 | 
						|
	})
 | 
						|
})
 |