diff options
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/idbindex-multientry-big.htm')
-rw-r--r-- | testing/web-platform/tests/IndexedDB/idbindex-multientry-big.htm | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/idbindex-multientry-big.htm b/testing/web-platform/tests/IndexedDB/idbindex-multientry-big.htm new file mode 100644 index 0000000000..43eb4034e7 --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/idbindex-multientry-big.htm @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>IDBIndex.multiEntry - a 1000 entry multiEntry array</title> +<meta name="timeout" content="long"> +<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> +<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#key-construct"> +<link rel=assert title="XXX"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/support.js"></script> + +<script> + var db, + t_add = async_test("Adding one item with 1000 multiEntry keys"), + t_get = async_test("Getting the one item by 1000 indeced keys "); + + var open_rq = createdb(t_add); + var obj = { test: 'yo', idxkeys: [] }; + + for (var i = 0; i < 1000; i++) + obj.idxkeys.push('index_no_' + i); + + + open_rq.onupgradeneeded = function(e) { + db = e.target.result; + + db.createObjectStore('store') + .createIndex('index', 'idxkeys', { multiEntry: true }); + }; + open_rq.onsuccess = function(e) { + var tx = db.transaction('store', 'readwrite', {durability: 'relaxed'}); + tx.objectStore('store') + .put(obj, 1) + .onsuccess = t_add.step_func(function(e) + { + assert_equals(e.target.result, 1, "put'd key"); + this.done(); + }); + + tx.oncomplete = t_get.step_func(function() { + var idx = db.transaction('store', 'readonly', {durability: 'relaxed'}).objectStore('store').index('index') + + for (var i = 0; i < 1000; i++) + { + idx.get('index_no_' + i).onsuccess = t_get.step_func(function(e) { + assert_equals(e.target.result.test, "yo"); + }); + } + + idx.get('index_no_999').onsuccess = t_get.step_func(function(e) { + assert_equals(e.target.result.test, "yo"); + assert_equals(e.target.result.idxkeys.length, 1000); + this.done(); + }); + }); + }; +</script> + +<div id="log"></div> |