| Index: LayoutTests/crypto/resources/common.js
|
| diff --git a/LayoutTests/crypto/resources/common.js b/LayoutTests/crypto/resources/common.js
|
| index 0edef40925ef94e90c50bb673e20d782aca9a774..d2335ab63fe3ef8b8893551e35c415ed5fd4b902 100644
|
| --- a/LayoutTests/crypto/resources/common.js
|
| +++ b/LayoutTests/crypto/resources/common.js
|
| @@ -87,3 +87,62 @@ function failAndFinishJSTest(error)
|
| debug(error);
|
| finishJSTest();
|
| }
|
| +
|
| +numOutstandingTasks = 0;
|
| +
|
| +function addTask(promise)
|
| +{
|
| + numOutstandingTasks++;
|
| +
|
| + function taskFinished()
|
| + {
|
| + numOutstandingTasks--;
|
| + completeTestWhenAllTasksDone();
|
| + }
|
| +
|
| + promise.then(taskFinished, taskFinished);
|
| +}
|
| +
|
| +function completeTestWhenAllTasksDone()
|
| +{
|
| + if (numOutstandingTasks == 0) {
|
| + finishJSTest();
|
| + }
|
| +}
|
| +
|
| +function shouldRejectPromiseWithNull(code)
|
| +{
|
| + var promise = eval(code);
|
| +
|
| + function acceptCallback(result)
|
| + {
|
| + debug("FAIL: '" + code + "' accepted with " + result + " but should have been rejected");
|
| + }
|
| +
|
| + function rejectCallback(result)
|
| + {
|
| + if (result == null)
|
| + debug("PASS: '" + code + "' rejected with null");
|
| + else
|
| + debug("FAIL: '" + code + "' rejected with " + result + " but was expecting null");
|
| + }
|
| +
|
| + addTask(promise.then(acceptCallback, rejectCallback));
|
| +}
|
| +
|
| +function shouldAcceptPromise(code)
|
| +{
|
| + var promise = eval(code);
|
| +
|
| + function acceptCallback(result)
|
| + {
|
| + debug("PASS: '" + code + "' accepted with " + result);
|
| + }
|
| +
|
| + function rejectCallback(result)
|
| + {
|
| + debug("FAIL: '" + code + "' rejected with " + result);
|
| + }
|
| +
|
| + addTask(promise.then(acceptCallback, rejectCallback));
|
| +}
|
|
|