apache/cordova-plugin-media — pull request #20 by martincgg (2014-07-08 22:48:09+00:00)
Title: CB-6963 Port Media automated tests for cordova-plugin-test-framework

Ported 17 Media automated tests from mobilespec.

Jasmine version: ported from v1.3 to v2.0

Features:
-No spies.
-Tests failing faster, when a error callback or unexpected success callback is received, the test fails immediately.
-Jasmine report with more information about the failed operation, which contains the operation and a description about it.
-Jasmine reports include error callback object.
-Two timeout statement to just wait until the a media file is reproduced, there are no more timeouts than those.
-Added a control variable to ensure that a callback is reached only once.

Bugs:
There are two bugs reported as direct result of this porting activity.

CB-7092
https://github.com/martincgg/cordova-plugin-media/blob/9fab60a8a3de2b68cb96fdcdd36cbdbfff73ce8e/test/tests.js#L158

This one it's about a conditional added in case that the platform is windows phone, on that platform it has an unexpected behavior at the error callback. If the platform is windows phone the test is going to fail, until the bug is fixed, this specific problem causes a mess with the rest of the test.
All details related to this: https://issues.apache.org/jira/browse/CB-7092

CB-7099
https://github.com/martincgg/cordova-plugin-media/blob/9fab60a8a3de2b68cb96fdcdd36cbdbfff73ce8e/test/tests.js#L188

https://github.com/martincgg/cordova-plugin-media/blob/9fab60a8a3de2b68cb96fdcdd36cbdbfff73ce8e/test/tests.js#L215

A variable it was added to ensure an extra security statement, the callback it will be processed only once,in case that for some reason the statusChange callback is reached more than one time with the same status code.
This kind of behavior it can be triggered by several variables, such as another media file been played, a busy resource and network connection(Online media resource).
An specific bug was reported for an specific behavior over Windows Phone related with this behavior. More information and details:
https://issues.apache.org/jira/browse/CB-7099