Files
Zos/Skills/@be/be/node_modules/icecast/test/reader.js

76 lines
2.0 KiB
JavaScript

/**
* Module dependencies.
*/
var fs = require('fs');
var path = require('path');
var icecast = require('../');
var assert = require('assert');
describe('Reader', function () {
it('should work with a "metaint" of 1', function (done) {
var data = 'h\0e\0l\0l\u0001hello world\0\0\0\0\0o\0 \0w\0o\0r\0l\0d';
var r = new icecast.Reader(1);
var called = false;
r.on('metadata', function (metadata) {
assert(Buffer.isBuffer(metadata));
assert.equal(16, metadata.length);
assert.equal('hello world\0\0\0\0\0', metadata.toString('utf8'));
called = true;
});
var output = [];
r.on('data', function (b) {
output.push(b);
});
r.on('end', function () {
assert(called);
assert.equal('hello world', Buffer.concat(output).toString());
done();
});
r.end(data);
});
describe('4EverFloyd-1-8192.mp3', function () {
var metaint = 8192;
var fixture = path.resolve(__dirname, 'fixtures', '4EverFloyd-1-8192.mp3');
it('should emit one "metadata" event', function (done) {
var file = fs.createReadStream(fixture);
var reader = new icecast.Reader(8192);
var called = false;
reader.on('metadata', function (metadata) {
assert(!called);
assert(Buffer.isBuffer(metadata));
assert(metadata.length < 4096);
called = true;
done();
});
file.pipe(reader);
});
});
describe('4EverFloyd-2-8192.mp3', function () {
var metaint = 8192;
var fixture = path.resolve(__dirname, 'fixtures', '4EverFloyd-2-8192.mp3');
it('should emit one "metadata" event', function (done) {
var file = fs.createReadStream(fixture);
var reader = new icecast.Reader(8192);
var called = false;
reader.on('metadata', function (metadata) {
assert(!called);
assert(Buffer.isBuffer(metadata));
assert(metadata.length < 4096);
called = true;
done();
});
file.pipe(reader);
});
});
});