test(spec.timeout): try to improve against timeout failures (#356)
* test(spec.timeout): improve safe complete for before and after each spec
* test(spec.timeout): add done to success callback
* test(spec.timeout): set DEFAULT_TIMEOUT_INTERVAL to ACTUAL_PLAYBACK_TEST_TIMEOUT
diff --git a/tests/tests.js b/tests/tests.js
index f62b24e..0cfcc59 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -24,6 +24,7 @@
// increased timeout for actual playback to give device chance to download and play mp3 file
// some emulators can be REALLY slow at this, so two minutes
var ACTUAL_PLAYBACK_TEST_TIMEOUT = 2 * 60 * 1000;
+jasmine.DEFAULT_TIMEOUT_INTERVAL = ACTUAL_PLAYBACK_TEST_TIMEOUT;
var WEB_MP3_FILE = 'https://cordova.apache.org/static/downloads/BlueZedEx.mp3';
var WEB_MP3_STREAM = 'https://cordova.apache.org/static/downloads/BlueZedEx.mp3';
@@ -234,14 +235,22 @@
describe('actual playback', function () {
var checkInterval, media;
- afterEach(function () {
- clearInterval(checkInterval);
+ // Ensure interval and media is cleared out before and after each test
+ var safeDone = function () {
+ if (checkInterval) {
+ clearInterval(checkInterval);
+ checkInterval = null;
+ }
+
if (media) {
media.stop();
media.release();
media = null;
}
- });
+ };
+
+ afterEach(function () { safeDone(); });
+ beforeEach(function () { safeDone(); });
it(
'media.spec.19 position should be set properly',
@@ -256,7 +265,9 @@
// Some information about this kind of behaviour can be found at JIRA: CB-7099.
var context = this;
var mediaFile = WEB_MP3_FILE;
- var successCallback = function () {};
+ var successCallback = function () {
+ done();
+ };
var statusChange = function (statusCode) {
if (!context.done && statusCode === Media.MEDIA_RUNNING) {
checkInterval = setInterval(function () {
@@ -294,7 +305,9 @@
// Some information about this kind of behaviour can be found at JIRA: CB-7099.
var context = this;
var mediaFile = WEB_MP3_FILE;
- var successCallback = function () {};
+ var successCallback = function () {
+ done();
+ };
var statusChange = function (statusCode) {
if (!context.done && statusCode === Media.MEDIA_RUNNING) {
checkInterval = setInterval(function () {
@@ -347,7 +360,9 @@
var context = this;
var resumed = false;
var mediaFile = WEB_MP3_FILE;
- var successCallback = function () {};
+ var successCallback = function () {
+ done();
+ };
var statusChange = function (statusCode) {
if (context.done) return;
@@ -412,7 +427,9 @@
// Some information about this kind of behaviour can be found at JIRA: CB-7099.
var context = this;
var mediaFile = WEB_MP3_FILE;
- var successCallback = function () {};
+ var successCallback = function () {
+ done();
+ };
var statusChange = function (statusCode) {
if (!context.done && statusCode === Media.MEDIA_RUNNING) {
checkInterval = setInterval(function () {