Added test for releasing camera, fixed code-style
parent
655bc6453a
commit
206a624edb
File diff suppressed because one or more lines are too long
@ -0,0 +1,74 @@
|
|||||||
|
define(['camera_access'], function(CameraAccess){
|
||||||
|
var originalURL,
|
||||||
|
originalUserMedia,
|
||||||
|
originalMediaStreamTrack,
|
||||||
|
video,
|
||||||
|
stream;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
var tracks = [{
|
||||||
|
stop: function() {}
|
||||||
|
}];
|
||||||
|
|
||||||
|
originalURL = window.URL;
|
||||||
|
originalUserMedia = window.getUserMedia;
|
||||||
|
originalMediaStreamTrack = window.MediaStreamTrack;
|
||||||
|
window.MediaStreamTrack = {};
|
||||||
|
window.URL = null;
|
||||||
|
|
||||||
|
|
||||||
|
stream = {
|
||||||
|
getVideoTracks: function() {
|
||||||
|
return tracks;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
sinon.spy(tracks[0], "stop");
|
||||||
|
navigator.getUserMedia = function(constraints, cb) {
|
||||||
|
cb(stream);
|
||||||
|
};
|
||||||
|
sinon.spy(navigator, "getUserMedia");
|
||||||
|
video = {
|
||||||
|
src: null,
|
||||||
|
addEventListener: function() {
|
||||||
|
|
||||||
|
},
|
||||||
|
play: function() {
|
||||||
|
|
||||||
|
},
|
||||||
|
videoWidth: 320,
|
||||||
|
videoHeight: 480
|
||||||
|
};
|
||||||
|
sinon.stub(video, "addEventListener", function(event, cb) {
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
sinon.stub(video, "play");
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(function() {
|
||||||
|
navigator.getUserMedia = originalUserMedia;
|
||||||
|
window.URL = originalURL;
|
||||||
|
window.MediaStreamTrack = originalMediaStreamTrack;
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('request', function() {
|
||||||
|
it('should request the camera', function(done) {
|
||||||
|
CameraAccess.request(video, function() {
|
||||||
|
expect(navigator.getUserMedia.calledOnce).to.equal(true);
|
||||||
|
expect(video.src).to.deep.equal(stream);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('release', function() {
|
||||||
|
it('should release the camera', function(done) {
|
||||||
|
CameraAccess.request(video, function() {
|
||||||
|
expect(video.src).to.deep.equal(stream);
|
||||||
|
CameraAccess.release();
|
||||||
|
expect(video.src.getVideoTracks()).to.have.length(1);
|
||||||
|
expect(video.src.getVideoTracks()[0].stop.calledOnce).to.equal(true);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue