|
|
#!/usr/bin/env node |
|
|
|
|
|
var fs = require("fs"), |
|
|
queue = require("d3-queue").queue, |
|
|
rw = require("../"); |
|
|
|
|
|
var code = 0; |
|
|
|
|
|
queue(1) |
|
|
.defer(testRead, "utf8", "gréén\n") |
|
|
.defer(testRead, {encoding: "utf8"}, "gréén\n") |
|
|
.defer(testRead, "ascii", "grC)C)n\n") |
|
|
.defer(testRead, {encoding: "ascii"}, "grC)C)n\n") |
|
|
.defer(testWrite, "utf8", "gréén\n") |
|
|
.defer(testWrite, {encoding: "utf8"}, "gréén\n") |
|
|
.defer(testWrite, "ascii", "gr<EFBFBD><EFBFBD>n\n") |
|
|
.defer(testWrite, {encoding: "ascii"}, "gr<EFBFBD><EFBFBD>n\n") |
|
|
.await(done); |
|
|
|
|
|
function testRead(options, expected, callback) { |
|
|
rw.readFile("test/utf8.txt", options, function(error, actual) { |
|
|
if (error) return void callback(error); |
|
|
if (actual !== expected) console.warn(actual + " !== " + expected), code = 1; |
|
|
callback(null); |
|
|
}); |
|
|
} |
|
|
|
|
|
function testWrite(options, expected, callback) { |
|
|
rw.writeFile("test/encoding-async.out", "gréén\n", options, function(error) { |
|
|
if (error) return void callback(error); |
|
|
fs.readFile("test/encoding-async.out", "utf8", function(error, actual) { |
|
|
if (error) return void callback(error); |
|
|
if (actual !== expected) console.warn(actual + " !== " + expected), code = 1; |
|
|
callback(null); |
|
|
}); |
|
|
}); |
|
|
} |
|
|
|
|
|
function done(error) { |
|
|
if (error) throw error; |
|
|
process.exit(code); |
|
|
}
|
|
|
|