From 017cd120af4c2827bc2a25615cc78e742a64e6fe Mon Sep 17 00:00:00 2001 From: mpizza Date: Thu, 14 Aug 2014 14:48:17 +0800 Subject: [PATCH] Bug 1053614 - [woodduck] repeatedly enter and leave camera app, then high chance camera will be black screen when entering camera. --- apps/camera/js/lib/camera/camera.js | 2 +- apps/camera/test/unit/lib/camera/camera_test.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/camera/js/lib/camera/camera.js b/apps/camera/js/lib/camera/camera.js index 98c79d4f4dab..392a0ef7b441 100644 --- a/apps/camera/js/lib/camera/camera.js +++ b/apps/camera/js/lib/camera/camera.js @@ -655,8 +655,8 @@ Camera.prototype.release = function(done) { function onSuccess() { debug('successfully released'); self.ready(); - self.emit('released'); self.releasing = false; + self.emit('released'); done(); } diff --git a/apps/camera/test/unit/lib/camera/camera_test.js b/apps/camera/test/unit/lib/camera/camera_test.js index 06d612f914d8..7f913cf469e5 100644 --- a/apps/camera/test/unit/lib/camera/camera_test.js +++ b/apps/camera/test/unit/lib/camera/camera_test.js @@ -998,6 +998,17 @@ suite('lib/camera/camera', function() { }); }); + test('Should change camera.releasing status before released fired', + function(done) { + var self = this; + this.camera.releasing = true; + this.camera.on('released', function() { + assert.isFalse(self.camera.releasing); + done(); + }); + this.camera.release(); + }); + test('Should call the callback with an error argument', function(done) { this.mozCamera.release = sinon.stub(); this.mozCamera.release.callsArgWithAsync(1, 'error');