Tone.js/test/core/Buffers.js
tambien ed71d8141b amd to es6 import/export
no longer using AMD (require.js) style imports, and beginning to move to es6 "import/export" statements everywhere.
2019-01-27 13:05:20 -05:00

150 lines
3.5 KiB
JavaScript

import Test from "helper/Test";
import Buffers from "Tone/core/Buffers";
import Buffer from "Tone/core/Buffer";
var testFile = "./audio/sine.wav";
var testFile2 = "./audio/hh.wav";
describe("Buffers", function(){
it("can be created and disposed", function(){
var buff = new Buffers(testFile);
buff.dispose();
Test.wasDisposed(buff);
});
it("loads a file from an object string", function(done){
var buffer = new Buffers({
"sine" : testFile
}, function(buff){
expect(buff).to.be.instanceof(Buffers);
buffer.dispose();
done();
});
});
it("loads a file from an array", function(done){
var buffer = new Buffers([testFile], function(buff){
expect(buff).to.be.instanceof(Buffers);
buffer.dispose();
done();
});
});
it("can get a buffer loaded from an object", function(done){
var buffer = new Buffers({
"sine" : testFile,
"kick" : testFile2
}, function(buff){
expect(buff.get("kick")).to.be.instanceof(Buffer);
buffer.dispose();
done();
});
});
it("tests if it has a buffer", function(done){
var buffer = new Buffers({
"sine" : testFile,
"kick" : testFile2
}, function(buff){
expect(buffer.has("kick")).to.be.true;
expect(buffer.has("sine")).to.be.true;
expect(buffer.has("nope")).to.be.false;
buffer.dispose();
done();
});
});
it("can pass in buffers as object and options object in second arg", function(done){
var buffer = new Buffers({
"sine" : "sine.wav"
}, {
"onload" : function(){
expect(buffer.has("sine")).to.be.true;
buffer.dispose();
done();
},
"baseUrl" : "./audio/"
});
});
it("reports itself as loaded", function(done){
var buffer = new Buffers({
"sine" : testFile,
"kick" : testFile2
}, function(buff){
expect(buffer.loaded).to.be.true;
buffer.dispose();
done();
});
expect(buffer.loaded).to.be.false;
});
it("can get a buffer loaded from an array", function(done){
var buffer = new Buffers([testFile, testFile2], function(buff){
expect(buff.get(0)).to.be.instanceof(Buffer);
expect(buff.get(1)).to.be.instanceof(Buffer);
buffer.dispose();
done();
});
});
it("can load from a base url", function(done){
var buffer = new Buffers(["hh.wav"], function(buff){
expect(buff.get(0)).to.be.instanceof(Buffer);
buffer.dispose();
done();
}, "./audio/");
});
it("can add a buffer", function(done){
var buffer = new Buffers();
buffer.add("name", testFile, function(){
expect(buffer.get("name")).to.be.instanceof(Buffer);
buffer.dispose();
done();
});
});
it("can add a buffer url", function(done){
var buffer = new Buffers();
buffer.add("name", testFile, function(){
expect(buffer.get("name")).to.be.instanceof(Buffer);
buffer.dispose();
done();
});
});
it("throws an error if no buffer exists with that name or index", function(){
var buffer = new Buffers();
expect(function(){
buffer.get("nope");
}).to.throw(Error);
buffer.dispose();
});
it("can add a Tone.Buffer", function(){
var buff = new Buffer();
var buffer = new Buffers();
buffer.add("name", buff);
expect(buffer.get("name")).to.equal(buff);
});
it("can add an AudioBuffer", function(done){
Buffer.load(testFile, function(buff){
var buffer = new Buffers();
buffer.add("name", buff);
expect(buffer.get("name").get()).to.equal(buff);
done();
});
});
it("can be constructed with Tone.Buffers", function(){
var buff = new Buffer();
var buffer = new Buffers({
"buff" : buff
});
expect(buffer.get("buff")).to.equal(buff);
});
});