unicode tests and ok test coverage. closes #1
This commit is contained in:
parent
7377142d9d
commit
52100cdb45
6 changed files with 99 additions and 3 deletions
|
@ -279,7 +279,7 @@ test('long-name', function(t) {
|
||||||
mode: 0644,
|
mode: 0644,
|
||||||
uid: 501,
|
uid: 501,
|
||||||
gid: 20,
|
gid: 20,
|
||||||
size: 15,
|
size: 16,
|
||||||
mtime: new Date(1387580181000),
|
mtime: new Date(1387580181000),
|
||||||
type: 'file',
|
type: 'file',
|
||||||
linkname: null,
|
linkname: null,
|
||||||
|
@ -291,7 +291,7 @@ test('long-name', function(t) {
|
||||||
|
|
||||||
stream.pipe(concat(function(data) {
|
stream.pipe(concat(function(data) {
|
||||||
noEntries = true;
|
noEntries = true;
|
||||||
t.same(data.toString(), 'hello long name');
|
t.same(data.toString(), 'hello long name\n');
|
||||||
callback();
|
callback();
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
@ -301,5 +301,76 @@ test('long-name', function(t) {
|
||||||
});
|
});
|
||||||
|
|
||||||
extract.end(fs.readFileSync(fixtures.LONG_NAME_TAR));
|
extract.end(fs.readFileSync(fixtures.LONG_NAME_TAR));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('unicode-bsd', function(t) { // can unpack a bsdtar unicoded tarball
|
||||||
|
t.plan(3);
|
||||||
|
|
||||||
|
var extract = tar.extract();
|
||||||
|
var noEntries = false;
|
||||||
|
|
||||||
|
extract.on('entry', function(header, stream, callback) {
|
||||||
|
t.deepEqual(header, {
|
||||||
|
name: 'høllø.txt',
|
||||||
|
mode: 0644,
|
||||||
|
uid: 501,
|
||||||
|
gid: 20,
|
||||||
|
size: 4,
|
||||||
|
mtime: new Date(1387588646000),
|
||||||
|
type: 'file',
|
||||||
|
linkname: null,
|
||||||
|
uname: 'maf',
|
||||||
|
gname: 'staff',
|
||||||
|
devmajor: 0,
|
||||||
|
devminor: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
stream.pipe(concat(function(data) {
|
||||||
|
noEntries = true;
|
||||||
|
t.same(data.toString(), 'hej\n');
|
||||||
|
callback();
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
|
||||||
|
extract.on('finish', function() {
|
||||||
|
t.ok(noEntries);
|
||||||
|
});
|
||||||
|
|
||||||
|
extract.end(fs.readFileSync(fixtures.UNICODE_BSD_TAR));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('unicode', function(t) { // can unpack a bsdtar unicoded tarball
|
||||||
|
t.plan(3);
|
||||||
|
|
||||||
|
var extract = tar.extract();
|
||||||
|
var noEntries = false;
|
||||||
|
|
||||||
|
extract.on('entry', function(header, stream, callback) {
|
||||||
|
t.deepEqual(header, {
|
||||||
|
name: 'høstål.txt',
|
||||||
|
mode: 0644,
|
||||||
|
uid: 501,
|
||||||
|
gid: 20,
|
||||||
|
size: 8,
|
||||||
|
mtime: new Date(1387580181000),
|
||||||
|
type: 'file',
|
||||||
|
linkname: null,
|
||||||
|
uname: 'maf',
|
||||||
|
gname: 'staff',
|
||||||
|
devmajor: 0,
|
||||||
|
devminor: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
stream.pipe(concat(function(data) {
|
||||||
|
noEntries = true;
|
||||||
|
t.same(data.toString(), 'høllø\n');
|
||||||
|
callback();
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
|
||||||
|
extract.on('finish', function() {
|
||||||
|
t.ok(noEntries);
|
||||||
|
});
|
||||||
|
|
||||||
|
extract.end(fs.readFileSync(fixtures.UNICODE_TAR));
|
||||||
});
|
});
|
2
test/fixtures/index.js
vendored
2
test/fixtures/index.js
vendored
|
@ -4,3 +4,5 @@ exports.ONE_FILE_TAR = path.join(__dirname, 'one-file.tar');
|
||||||
exports.MULTI_FILE_TAR = path.join(__dirname, 'multi-file.tar');
|
exports.MULTI_FILE_TAR = path.join(__dirname, 'multi-file.tar');
|
||||||
exports.TYPES_TAR = path.join(__dirname, 'types.tar');
|
exports.TYPES_TAR = path.join(__dirname, 'types.tar');
|
||||||
exports.LONG_NAME_TAR = path.join(__dirname, 'long-name.tar');
|
exports.LONG_NAME_TAR = path.join(__dirname, 'long-name.tar');
|
||||||
|
exports.UNICODE_BSD_TAR = path.join(__dirname, 'unicode-bsd.tar');
|
||||||
|
exports.UNICODE_TAR = path.join(__dirname, 'unicode.tar');
|
||||||
|
|
BIN
test/fixtures/long-name.tar
vendored
BIN
test/fixtures/long-name.tar
vendored
Binary file not shown.
BIN
test/fixtures/unicode-bsd.tar
vendored
Normal file
BIN
test/fixtures/unicode-bsd.tar
vendored
Normal file
Binary file not shown.
BIN
test/fixtures/unicode.tar
vendored
Normal file
BIN
test/fixtures/unicode.tar
vendored
Normal file
Binary file not shown.
25
test/pack.js
25
test/pack.js
|
@ -110,7 +110,7 @@ test('long-name', function(t) {
|
||||||
gname:'staff',
|
gname:'staff',
|
||||||
uid:501,
|
uid:501,
|
||||||
gid:20
|
gid:20
|
||||||
}, 'hello long name');
|
}, 'hello long name\n');
|
||||||
|
|
||||||
pack.finalize();
|
pack.finalize();
|
||||||
|
|
||||||
|
@ -119,3 +119,26 @@ test('long-name', function(t) {
|
||||||
t.deepEqual(data, fs.readFileSync(fixtures.LONG_NAME_TAR));
|
t.deepEqual(data, fs.readFileSync(fixtures.LONG_NAME_TAR));
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('unicode', function(t) {
|
||||||
|
t.plan(2);
|
||||||
|
var pack = tar.pack();
|
||||||
|
|
||||||
|
pack.entry({
|
||||||
|
name:'høstål.txt',
|
||||||
|
mtime:new Date(1387580181000),
|
||||||
|
type:'file',
|
||||||
|
mode:0644,
|
||||||
|
uname:'maf',
|
||||||
|
gname:'staff',
|
||||||
|
uid:501,
|
||||||
|
gid:20
|
||||||
|
}, 'høllø\n');
|
||||||
|
|
||||||
|
pack.finalize();
|
||||||
|
|
||||||
|
pack.pipe(concat(function(data) {
|
||||||
|
t.equal(data.length & 511, 0);
|
||||||
|
t.deepEqual(data, fs.readFileSync(fixtures.UNICODE_TAR));
|
||||||
|
}));
|
||||||
|
});
|
Loading…
Reference in a new issue