diff options
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/idb_binary_key_conversion.htm')
-rw-r--r-- | testing/web-platform/tests/IndexedDB/idb_binary_key_conversion.htm | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/idb_binary_key_conversion.htm b/testing/web-platform/tests/IndexedDB/idb_binary_key_conversion.htm new file mode 100644 index 000000000..b55e6324b --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/idb_binary_key_conversion.htm @@ -0,0 +1,79 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Verify the coversion of various types of BufferSource</title> +<link rel="author" title="Mozilla" href="https://www.mozilla.org"> +<link rel="help" href="http://w3c.github.io/IndexedDB/#key-construct"> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> + +<script> + test(function() { + let binary = new ArrayBuffer(0); + let key = IDBKeyRange.lowerBound(binary).lower; + + assert_true(key instanceof ArrayBuffer); + assert_equals(key.byteLength, 0); + assert_equals(key.byteLength, binary.byteLength); + }, "Empty ArrayBuffer"); + + test(function() { + let binary = new ArrayBuffer(4); + let dataView = new DataView(binary); + dataView.setUint32(0, 1234567890); + + let key = IDBKeyRange.lowerBound(binary).lower; + + assert_true(key instanceof ArrayBuffer); + assert_equals(key.byteLength, 4); + assert_equals(dataView.getUint32(0), new DataView(key).getUint32(0)); + }, "ArrayBuffer"); + + test(function() { + let binary = new ArrayBuffer(4); + let dataView = new DataView(binary); + dataView.setUint32(0, 1234567890); + + let key = IDBKeyRange.lowerBound(dataView).lower; + + assert_true(key instanceof ArrayBuffer); + assert_equals(key.byteLength, 4); + assert_equals(dataView.getUint32(0), new DataView(key).getUint32(0)); + }, "DataView"); + + test(function() { + let binary = new ArrayBuffer(4); + let dataView = new DataView(binary); + let int8Array = new Int8Array(binary); + int8Array.set([16, -32, 64, -128]); + + let key = IDBKeyRange.lowerBound(int8Array).lower; + let keyInInt8Array = new Int8Array(key); + + assert_true(key instanceof ArrayBuffer); + assert_equals(key.byteLength, 4); + for(let i = 0; i < int8Array.length; i++) { + assert_equals(keyInInt8Array[i], int8Array[i]); + } + }, "TypedArray(Int8Array)"); + + test(function() { + let binary = new ArrayBuffer(4); + let dataView = new DataView(binary); + let int8Array = new Int8Array(binary); + int8Array.set([16, -32, 64, -128]); + + let key = IDBKeyRange.lowerBound([int8Array]).lower; + + assert_true(key instanceof Array); + assert_true(key[0] instanceof ArrayBuffer); + assert_equals(key[0].byteLength, 4); + + let keyInInt8Array = new Int8Array(key[0]); + + for(let i = 0; i < int8Array.length; i++) { + assert_equals(keyInInt8Array[i], int8Array[i]); + } + }, "Array of TypedArray(Int8Array)"); +</script> + +<div id=log></div> |