CB-8428 Fix multiple `done()` calls in media plugin test on devices where audio is not configured
github close #44
diff --git a/tests/tests.js b/tests/tests.js
index 4424b39..ea8826d 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -24,6 +24,7 @@
var info = typeof msg == 'undefined' ? 'Unexpected error callback' : msg;
expect(true).toFailWithMessage(info + '\n' + JSON.stringify(error));
done();
+ this.done = true;
};
var succeed = function (done, msg) {
@@ -179,6 +180,7 @@
});
it("media.spec.16 position should be set properly", function (done) {
+ var self = this;
var mediaFile = 'http://cordova.apache.org/downloads/BlueZedEx.mp3',
mediaState = Media.MEDIA_STOPPED,
successCallback,
@@ -194,16 +196,19 @@
expect(position).toBeGreaterThan(0.0);
media1.stop();
media1.release();
- done();
- }, failed.bind(null, done, 'media1.getCurrentPosition - Error getting media current position'));
+ if (!self.done) {
+ done();
+ }
+ }, failed.bind(self, done, 'media1.getCurrentPosition - Error getting media current position'));
}, 1000);
}
},
- media1 = new Media(mediaFile, successCallback, failed.bind(null, done, 'media1 = new Media - Error creating Media object. Media file: ' + mediaFile), statusChange);
+ media1 = new Media(mediaFile, successCallback, failed.bind(self, done, 'media1 = new Media - Error creating Media object. Media file: ' + mediaFile), statusChange);
media1.play();
});
it("media.spec.17 duration should be set properly", function (done) {
+ var self = this;
if (cordova.platformId === 'blackberry10') {
expect(true).toFailWithMessage('Platform does not supported this feature');
done();
@@ -222,11 +227,13 @@
expect(media1.getDuration()).toBeGreaterThan(0.0);
media1.stop();
media1.release();
- done();
+ if (!self.done) {
+ done();
+ }
}, 1000);
}
},
- media1 = new Media(mediaFile, successCallback, failed.bind(null, done, 'media1 = new Media - Error creating Media object. Media file: ' + mediaFile), statusChange);
+ media1 = new Media(mediaFile, successCallback, failed.bind(self, done, 'media1 = new Media - Error creating Media object. Media file: ' + mediaFile), statusChange);
media1.play();
});
});
@@ -572,9 +579,9 @@
table.setAttribute("id", tableId);
return table;
}
-
+
//Audio && Record Elements
- var elementsResultsAudio=
+ var elementsResultsAudio=
[{
id : "statusTag",
content : "Status:",
@@ -719,7 +726,7 @@
}
}
];
-
+
//Title audio results
var div = document.createElement('h2');
div.appendChild(document.createTextNode('Audio'));
@@ -727,7 +734,7 @@
contentEl.appendChild(div);
//Generate and add results table
contentEl.appendChild(generateTable('info', 3, 3, elementsResultsAudio));
-
+
//Title audio actions
div = document.createElement('h2');
div.appendChild(document.createTextNode('Actions'));
@@ -794,7 +801,7 @@
div.setAttribute("style", "background:#B0C4DE;border:1px solid #FFA07A;margin:15px 6px 0px;min-width:295px;max-width:97%;padding:4px 0px 2px 10px;min-height:160px;max-height:200px;overflow:auto");
div.appendChild(list);
contentEl.appendChild(div);
-
+
//Title Record Audio
div = document.createElement('h2');
div.appendChild(document.createTextNode('Record Audio'));