Index: LayoutTests/crypto/digest.html |
diff --git a/LayoutTests/crypto/digest.html b/LayoutTests/crypto/digest.html |
index 3544599f9159ffcb071fc2f35d446ad75cd8ba54..21704006bea4221abc74c19cfe0bae4d535b3fea 100644 |
--- a/LayoutTests/crypto/digest.html |
+++ b/LayoutTests/crypto/digest.html |
@@ -13,82 +13,50 @@ description("Tests cypto.subtle.digest."); |
jsTestIsAsync = true; |
-// Each sub-test run in this file is asynchronous. Chaining them together |
-// manually leads to very unreadable code, due to having closures within |
-// closures within closures. Instead of doing that, each subtest calls |
-// "startNextTest()" once it has completed. |
- |
-currentTestIndex = 0; |
- |
-function startNextTest() |
-{ |
- var currentTest = allTests[currentTestIndex++]; |
- |
- if (!currentTest) { |
- finishJSTest(); |
- return; |
- } |
- |
- currentTest(); |
-} |
- |
-function rejectHandler(value, justPrint) |
+function printRejectedResult(value) |
{ |
debug(" rejected with value of " + value); |
- if (!justPrint) |
- startNextTest(); |
} |
-function resultHandler(buffer, justPrint) |
+function printAcceptedResult(result) |
{ |
- debug(" = " + byteArrayToHexString(new Uint8Array(buffer))); |
- if (!justPrint) |
- startNextTest(); |
+ debug(" = " + byteArrayToHexString(new Uint8Array(result))); |
} |
-function failHandler(value) |
-{ |
- testFailed(value); |
- startNextTest(); |
-} |
- |
-allTests = [ |
- function() |
- { |
- debug("SHA1 of []") |
- crypto.subtle.digest({name: 'sha-1'}, new Uint8Array([])).then(resultHandler, rejectHandler); |
- }, |
- |
- function() |
- { |
- debug("SHA1 of [0x0]") |
- crypto.subtle.digest({name: 'sha-1'}, new Uint8Array([0])).then(resultHandler, rejectHandler); |
- }, |
- |
- function() |
- { |
- debug("SHA-256 rejects (dummy implementation)"); |
- crypto.subtle.digest({name: 'sha-256'}, new Uint8Array([])).then(resultHandler, rejectHandler); |
- }, |
- |
- function() |
- { |
- debug("Error (dummy implementation rejects this input)"); |
- var data = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |
- crypto.subtle.digest({name: 'sha-1'}, data).then(resultHandler, rejectHandler); |
- }, |
- |
- function() |
- { |
- shouldThrow("crypto.subtle.digest({name: 'sha-1'})"); |
- shouldThrow("crypto.subtle.digest({name: 'sha-1'}, null)"); |
- shouldThrow("crypto.subtle.digest({name: 'sha-1'}, 10)"); |
- startNextTest(); |
- }, |
-]; |
- |
-// Begin! |
-startNextTest(); |
+Promise.fulfill(null).then(function() { |
+ debug("SHA1 of []"); |
+ return crypto.subtle.digest({name: 'sha-1'}, new Uint8Array([])); |
+}).then(function(result) { |
+ printAcceptedResult(result); |
+ |
+ debug("SHA1 of [0x0]") |
+ return crypto.subtle.digest({name: 'sha-1'}, new Uint8Array([0])); |
+}).then(function(result) { |
+ printAcceptedResult(result); |
+ |
+ debug("SHA-256 rejects (dummy implementation)"); |
+ return crypto.subtle.digest({name: 'sha-256'}, new Uint8Array([])); |
+ |
+}).then(undefined, function(result) { |
+ printRejectedResult(result); |
+ |
+ debug("Error (dummy implementation rejects this input)"); |
+ var data = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |
+ return crypto.subtle.digest({name: 'sha-1'}, data); |
+}).then(undefined, function(result) { |
+ printRejectedResult(result); |
+ |
+ // Pass invalid data to digeset() |
+ shouldThrow("crypto.subtle.digest({name: 'sha-1'})"); |
+ shouldThrow("crypto.subtle.digest({name: 'sha-1'}, null)"); |
+ shouldThrow("crypto.subtle.digest({name: 'sha-1'}, 10)"); |
+ |
+ // Pass invalid algorithmIdentifiers to digest() |
+ data = new Uint8Array([0]); |
+ shouldThrow("crypto.subtle.digest({name: 'sha'}, data)"); |
+ shouldThrow("crypto.subtle.digest(null, data)"); |
+ shouldThrow("crypto.subtle.digest({}, data)"); |
+}).then(finishJSTest, failAndFinishJSTest); |
</script> |